龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle数据库回滚段的应用

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
Oracle数据库 的 回滚段 用于对数据库修正时, 保留原有的数据, 以便稍后能够穿越利用ROLLBACK来还原到修正前的数据; 另外, 回滚段可感受数据库中的所有历程供给读统一性. 本文我们主要

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.创立回滚段

  1. CREATE ROLLBACK SEGMENT RB01  
  2.  
  3. TABLESPACE RBS1  
  4.  
  5. STORAGE (  
  6.  
  7. INITIAL 100K  
  8.  
  9. NEXT 100K  
  10.  
  11. MINEXTENTS 20  
  12.  
  13. MAXEXTENTS 100  
  14.  
  15. OPTIMAL 2000K ); 

2. 改动ONLINE/OFFLINE事态

  1. ALTER ROLLBACK SEGMENT RB01 ONLINE;  
  2.  
  3. ALTER ROLLBACK SEGMENT RB01 OFFLINE; 

3.改动OPTIMAL参数

  1. ALTER ROLLBACK SEGMENT RB01  
  2.  
  3. STORAGE ( MAXEXTENTS 200  
  4.  
  5. OPTIMAL 2048K ); 

4.缩小回滚段

  1. ALTER ROLLBACK SEGMENT RB01 SHRINK; 

(有OPTIMAL参数时, 缩小到OPTIMAL值; 未曾OPTIMAL参数时, 缩小到MINEXTENTS所对应的尺寸)

  1. ALTER ROLLBACK SEGMENT RB01 SHRINK TO 2048K; 

5.修正INITIAL/NEXT参数

提倡5: 依据分寸3, 修正NEXT时, 总该当同时修正INITIAL.

INITIAL参数无法直接修正, 只能先DROP, 然后再CREATE.

  1. DROP ROLLBACK SEGMENT RB01;  
  2.  
  3. CREATE ROLLBACK SEGMENT RB01  
  4.  
  5. TABLESPACE RBS1  
  6.  
  7. STORAGE ( INITIAL 100K  
  8.  
  9. NEXT 100K  
  10.  
  11. MINEXTENTS 20  
  12.  
  13. MAXEXTENTS 121  
  14.  
  15. OPTIMAL 2000K ) 

6.在事务中利用特定的回滚段

  1. SET TRANSACTION USE ROLLBACK SEGMENT RB_LARGE1; 

7.常用的有关回滚段的系统数据字典

  1. DBA_ROLLBACK_SEGS (相干表:DBA_SEGMENTS)  
  2.  
  3. V$ROLLNAME  
  4.  
  5. V$ROLLSTAT  
  6.  
  7. V$TRANSACTION (相干表: V$SESSION) 

关于Oracle数据库回滚段的知识就介绍到这里,希望能够带给您一些收获!

精彩图集

赞助商链接