会计考友 发表于 2012-8-4 13:54:49

Oracle数据库回滚段的应用

Oracle数据库的回滚段用于对数据库修正时, 保留原有的数据, 以便稍后能够穿越利用ROLLBACK来还原到修正前的数据; 另外, 回滚段可感受数据库中的所有历程供给读统一性。 本文我们主要Oracle数据库的回滚段方面的知识,接下来就让我们来一起了解一下这部分内容吧。
   
    回滚段的种类
   
    回滚段可分为系统回滚段和非系统回滚段, 其中非系统回滚段又分为PUBLIC回滚段和PRIVATE回滚段。
   
    系统回滚段用于处理波及系统的CATALOG的事物(例如大多数的DDL), 它位于SYSTEM表空间, 由于只有SYSTEM表空间能够随时坚持可用, 因而, 不要把SYSTEM回滚段放在其他的表空间中。
   
    分寸1: 系统回滚段应放在SYSTEM表空间中, 并且该当永远坚持ONLINE事态。
   
    PUBLIC回滚段对于数据库的所有实例(INSTANCE)都是可用的, 除非将其显式设置为OFFLINE.
   
    PRIVATE回滚段是指对于数据库的某个实例是私有的, 为了利用PRIVATE回滚段, 某个实例该当在其INITsid.ORA的ROLLBACK_SEGMENTS中标明所有要利用的PRIVATE回滚段, 或穿越利用ALTER ROLLBACK SEGMENT XXX ONLINE来利用某一个回滚段。
   
    提倡1: 在单实例系统中,提倡将所有回滚段设为PUBLIC.
   
    提倡2: 在多实例系统中(如OPS), 提倡将每个实例的PRIVATE回滚段放置到拜会比拟快的本地装备上。
   
    回滚段的数量、大小及存储参数
   
    准确的回滚段的数量及大小的计算波及许多方面: 利用的种类(OLTP/OLAP/BATCH), 同时举行的事物的数量, DML语句的种类, 每个事物处理的数据量等等。
   
    分寸2: OLTP系统应利用小但较多的回滚段, OLAP系统/批处理系统应利用少量的大回滚段
   
    提倡3: OLTP/OLAP混杂型系统中, 应专程设置一个或几个大的回滚段, 平时设置为OFFLINE, 利用时穿越利用SET TRANSACTION USE ROLLBACK SEGMENT XXX来利用它。 这些回滚段应利用OPTIMAL参数,以便在不利用时,能够SHRINK到一个较小的尺寸。
   
    提倡4: 在很难计算准确的数量、大小时,可用"偏大不偏小"的分寸。
   
    分寸3: 所有的回滚段的INITIAL/NEXT参数应设为雷同, 只有提倡3中提到的大回滚段例外。
   
    分寸4: 不要将回滚段的MAXEXTENTS设为UNLIMITED, 回滚段所在表空间也不要设为AUTOEXTEND
   
    措施, 否则将会使得由于某个不正常的事务导致全副数据库处于失控事态。
   
    回滚段的维护及查询
   
    1.创立回滚段
   
    CREATE ROLLBACK SEGMENT RB01   TABLESPACE RBS1   STORAGE (   INITIAL 100K   NEXT 100K   MINEXTENTS 20   MAXEXTENTS 100   OPTIMAL 2000K );
   
    2. 改动ONLINE/OFFLINE事态
   
    ALTER ROLLBACK SEGMENT RB01 ONLINE;   ALTER ROLLBACK SEGMENT RB01 OFFLINE;
   
    3.改动OPTIMAL参数
   
    ALTER ROLLBACK SEGMENT RB01   STORAGE ( MAXEXTENTS 200   OPTIMAL 2048K );
   
    4.缩小回滚段
   
    ALTER ROLLBACK SEGMENT RB01 SHRINK;
   
    (有OPTIMAL参数时, 缩小到OPTIMAL值; 未曾OPTIMAL参数时, 缩小到MINEXTENTS所对应的尺寸)
   
    ALTER ROLLBACK SEGMENT RB01 SHRINK TO 2048K;
   
    5.修正INITIAL/NEXT参数
   
    提倡5: 依据分寸3, 修正NEXT时, 总该当同时修正INITIAL.
   
    INITIAL参数无法直接修正, 只能先DROP, 然后再CREATE.
   
    DROP ROLLBACK SEGMENT RB01;   CREATE ROLLBACK SEGMENT RB01   TABLESPACE RBS1   STORAGE ( INITIAL 100K   NEXT 100K   MINEXTENTS 20   MAXEXTENTS 121   OPTIMAL 2000K )
    考试用书
    6.在事务中利用特定的回滚段
   
    SET TRANSACTION USE ROLLBACK SEGMENT RB_LARGE1;
   
    7.常用的有关回滚段的系统数据字典
   
    DBA_ROLLBACK_SEGS (相干表:DBA_SEGMENTS)   V$ROLLNAME   V$ROLLSTAT   V$TRANSACTION (相干表: V$SESSION)

会计考友 发表于 2012-8-4 13:54:50

Oracle数据库回滚段的应用

关于Oracle数据库回滚段的知识就介绍到这里,希望能够带给您一些收获!
页: [1]
查看完整版本: Oracle数据库回滚段的应用