`
fudehai001
  • 浏览: 497112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE 9I UNDO Tablespace

阅读更多
(9i以前称为Rollback segment;9i称为Undo segment/Undo Tablespace;10g及以后只有Undo Tablespace.)


一、UNDO数据的作用.

1、回退事务

当执行DML操作修改数据时,UNDO数据被存放到UNDO段,而新数据则被存放到数据段中,如果事务操作存在问题,旧需要回退事务,以取消事务变化.假定用户A执行了语句UPDATE emp SET sal=1000 WHERE empno=7788后发现,应该修改雇员7963的工资,而不是雇员7788的工资,那么通过执行ROLLBACK语句可以取消事务变化.当执行ROLLBACK命令时,oracle会将UNDO段的UNDO数据800写回的数据段中.

2、读一致性

用户检索数据库数据时,oracle总是使用用户只能看到被提交过的数据(读取提交)或特定时间点的数据(SELECT语句时间点).这样可以确保数据的一致性.例如,当用户A执行语句UPDATE emp SET sal=1000 WHERE empno=7788时,UNDO记录会被存放到回滚段中,而新数据则会存放到EMP段中;假定此时该数据尚未提交,并且用户B执行SELECT sal FROM emp WHERE empno=7788,此时用户B将取得UNDO数据800,而该数据正是在UNDO记录中取得的.

3、事务恢复

事务恢复是例程恢复的一部分,它是由oracle server自动完成的.如果在数据库运行过程中出现例程失败(如断电,内存故障,后台进程故障等),那么当重启oracle server时,后台进程SMON会自动执行例程恢复,执行例程恢复时,oracl会重新做所有未应用的记录.回退未提交事务.

4、倒叙查询(FlashBack Query)

倒叙查询用于取得特定时间点的数据库数据,它是9i新增加的特性,假定当前时间为上午11:00,某用户在上午10:00执行UPDATE emp SET sal=3500 WHERE empno=7788语句,修改并提交了事务(雇员原工资为3000),为了取得10:00之前的雇员工资,用户可以使用倒叙查询特征.

二、相关的Configuration Parameter:

1、UNDO_MANAGEMENT:值:Auto/Manual。指定UNDO数据的管理方式。在9I中默认设为AUTO。此参数不可动态调整。

2、UNDO_TABLESPACE:指定表空间的名称。如果没有指定表空间的名字,ORACLE会自动找一个默认的表空间。

3、UNDO_SUPPRESS_ERRORS:值:True/False。值为True的情况下,在UNDO_MANAGEMENT节= TRUE时,如果手动对UNDO进行修改,将会报错。错误如下:

ORA-30019: Illegal rollback Segment operation in Automatic Undo mode.

4、UNDO_RETENTION:设定UNDO data的最大保留时间。默认为900秒。

三、Sizing Undo Tablespace:

Undospace = [UR * (UPS * DBS)] + (DBS * 24)

UR: UNDO_RETENTION in seconds.

UPS: Number of undo data blocks generated per second.

To get this value:

select (sum(undoblks)/sum(((endtime - starttime)*86400))) from v$undostat;

DBS: the size of DB_BLOCK_SIZE.

四、To obtain undo segment information.

1、Data Dictionary View: DBA_ROLLBACK_SEGS

2、Dynamic Parameter Views:

(1) V$ROLLNAME

(2) V$ROLLSTAT v$rollname.USN = v$rollstat.USN

(3) V$UNDOSTAT

(4) V$SESSION

(5) V$TRANSACTION v$session.SADDR = v$transaction.SES_ADDR

--=============================

--占用回滚段
  SELECT    (select sa.module from v$sqlarea sa where sa.SQL_ID = s.SQL_ID) module, --RXGLVCJ ,CUXCAHST
            TO_CHAR(s.sid)||','||TO_CHAR(s.serial#) sid_serial,
            NVL(s.username, 'None') orauser,
            s.program,
            r.name undoseg,
            t.used_ublk * TO_NUMBER(x.value)/1024||'K' "Undo"
       FROM sys.v_$rollname    r,
            sys.v_$session     s,
            sys.v_$transaction t,
            sys.v_$parameter   x
      WHERE 1=1
        AND s.taddr = t.addr
        AND r.usn   = t.xidusn(+)
        AND x.name  = 'db_block_size';
分享到:
评论

相关推荐

    oracle 9i UNDO表空间数据文件丢失恢复

    ### Oracle 9i UNDO 表空间数据文件丢失恢复知识点详解 #### 一、概述 在Oracle数据库管理中,UNDO表空间是非常重要的组成部分之一,主要用于存储事务处理期间的回滚信息。当UNDO表空间的数据文件丢失时,可能会...

    手动创建oracle9i数据库步骤

    UNDO TABLESPACE "UNDOTBS" DATAFILE 'D:\oracle92\oradata\testdb\undotbs01.dbf' SIZE 200M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED CHARACTER SET ZHS16CGB231280 LOGFILE 'D:\oracle92\oradata\testdb\...

    Oracle9i学习笔记.doc

    Oracle9i是一款经典的数据库管理系统,由甲骨文公司(Oracle)发布。本笔记主要涵盖了创建数据库、数据字典管理、以及控制文件相关的操作,以下是详细的知识点解析: 1. 创建数据库: 在Oracle9i中,创建数据库是...

    oracle9i逻辑结构,oracle9i逻辑结构

    11. **回退表空间(UNDO TABLESPACE)**:回退表空间专门用于存储回滚段,这些回滚段记录了事务的修改历史,以便在回滚操作中使用。回滚表空间只能包含回滚段,且其扩展区通常是本地管理的。 12. **临时表空间...

    Oracle 9i 日常操作及维护手册

    Oracle 9i 是一款历史悠久但仍然广泛使用的数据库管理系统。本手册主要关注其日常操作和维护,对于数据库管理员(DBA)来说,理解并熟练掌握这些操作是至关重要的。以下是手册中涉及的一些关键知识点: 1. **Oracle...

    利用Oracle9i新特性简化数据库的创建和管理.pdf

    Oracle9i数据库的新特性Oracle Managed File(OMF)和System Managed Undo(SMU)极大地简化了数据库的创建和管理工作。OMF特性允许数据库管理员不再需要在创建数据库时明确指定数据文件和redo日志的位置及大小。...

    Oracle 9i充分利用自动撤销管理的优点

    5. **增强的监控和诊断**:Oracle 9i提供了新的视图,如V$UNDOSTAT、V$ROLLSTAT和V$TRANSACTION,以及DBA_UNDO_EXTENTS,以帮助DBA监控撤销空间的使用情况,进行性能调优和故障排查。 6. **资源优化**:自动撤销...

    Oracle 9i中自动撤销管理的优点分析

    此外,Oracle 9i提供了几个视图,如`V$UNDOSTAT`, `V$ROLLSTAT`, `V$TRANSACTION`和`DBA_UNDO_EXTENTS`,这些视图可以帮助DBA监控撤销表空间的使用情况,以及撤销信息的状态。 `V$UNDOSTAT`视图提供撤销表空间的...

    Oracle 9i数据库中自动Undo表空间管理 (2005年)

    ### Oracle 9i数据库中自动Undo表空间管理 #### 一、引言 随着数据库技术的发展,Oracle数据库作为业界领先的关系型数据库管理系统之一,不断推出新的功能和技术来提高其性能和易用性。Oracle 9i是Oracle公司推出...

    oracle9i系统性能监控文档

    ### Oracle9i系统性能监控知识点解析 #### 一、Oracle系统数据文件及表空间情况 在Oracle数据库中,数据文件是存储数据的基本物理单位,而表空间是逻辑存储单元,一个表空间可以包含一个或多个数据文件。了解数据...

    Oracle 12c Undo数据管理分析.pptx

    1. 在 Oracle 9i 之前,需要手工管理回滚段(Rollback Segments),这涉及到手动分配和管理存储空间。 2. Oracle 10g 引入了自动 Undo 保留(Autotune Undo Retention),系统会根据需要自动调整 Undo 的保留时间。 ...

    Oracle中重做undo表空间

    - 自动管理:Oracle 9i引入了自动 Undo 管理(Automatic Undo Management, AUM),默认情况下,数据库会自动管理undo表空间,包括分配和回收空间。 - 手动管理:在AUM之前,管理员需要手动创建和管理undo段,这...

    Oracle9i初始化参数中文说明.rar

    9. **UNDO_TABLESPACE**:回滚段表空间,存储事务的回滚信息,确保数据一致性。 10. **MAX_INSTANCES**:最大实例数,限制了同时可以启动的数据库实例。 11. **OPEN_CURSORS**:打开游标的最大数量,管理数据库的...

    Oracle9i rac手工建库步骤

    ### Oracle9i RAC 手工建库步骤详解 #### 一、背景介绍 Oracle Real Application Clusters (RAC) 是一种多实例集群数据库技术,它允许多个数据库实例同时访问一个共享数据库。这种架构提高了数据库系统的可用性、可...

    Oracle 9i Instance 的几个常用步骤

    ### Oracle 9i Instance 架构与管理的关键知识点 #### 一、Oracle 9i Instance 概览 Oracle 9i Instance 是指运行在数据库服务器上的一个实例,它由一系列内存结构和后台进程组成,用于管理和控制对数据库的访问。...

    Oracle 9i以上的闪回,用于误操作后的数据恢复

    ### Oracle 9i以上版本中的闪回功能及误操作后的数据恢复 在Oracle数据库系统中,数据的安全性和完整性至关重要。为了应对可能出现的数据误删除、更新等意外情况,Oracle自9i版本起引入了闪回技术(Flashback)。该...

    Windows Xp上手工创建数据库Oracle9i的完整步骤.doc

    - `undo_tablespace`: UNDO表空间名称。 3. **创建initmydb.ora文件** - 创建一个简单的文本文件 `initmydb.ora`,内容为 `ifile= c:\oracle\admin\mydb\pfile\init.ora`。该文件用于指定初始化参数文件的位置。 ...

    ORACLE9i脚本整理,工作中常用到得实用的

    根据提供的文件信息,我们可以归纳总结出Oracle 9i在日常维护工作中经常使用的脚本与命令。这些脚本和命令对于数据库管理员来说是非常重要的工具,能够帮助他们高效地管理Oracle数据库。 ### 创建数据库 创建...

    DBA数据库PPT_1

    在Oracle数据库管理中,"DBA数据库PPT_1"主要涵盖了自动还原管理和创建数据库时的UNDO TABLESPACE配置。自动还原管理是Oracle数据库提供的一种关键功能,它确保了数据库的事务一致性和数据的可恢复性。 首先,我们...

Global site tag (gtag.js) - Google Analytics