Oracle数据库回滚段的应用

数据库 Oracle
本文我们主要介绍了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.创立回滚段

 

  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数据库回滚段的知识就介绍到这里,希望能够带给您一些收获!

【编辑推荐】

  1. Oracle数据库游标的类型及使用实例全解
  2. 关于Oracle利用UTL_INADDR注入的简单介绍
  3. Oracle数据库定时器Job在各个时间的写法总结篇
  4. 简单介绍一下Oracle数据库PL/SQL异常处理代码
  5. Oracle数据库中各种类型的文件损坏与修复过程详解
责任编辑:赵鹏 来源: 新浪博客
相关推荐

2009-11-16 17:15:12

Oracle减少回滚段

2009-11-16 13:41:18

Oracle分离回滚段

2010-04-16 17:31:22

ORACLE回滚段

2011-03-25 09:27:40

Oracle数据库回滚前退

2010-11-15 11:49:18

Oracle数据库的段

2011-03-17 16:19:42

Oracle数据库管理

2011-03-17 16:35:20

Oracle数据库段管理

2009-02-03 08:58:13

SQL*Net配置网络应用

2011-08-11 18:38:05

Oracle回滚段

2011-03-11 16:42:51

Oracle数据库视图

2010-04-15 11:41:21

Oracle 数据库

2020-11-18 08:32:07

数据库

2020-11-18 10:16:52

数据库回滚事务

2010-04-13 10:55:35

Oracle数据库

2011-04-12 13:44:17

CachéOracle数据库

2010-04-13 12:23:34

Oracle数据库

2010-04-15 11:33:39

Oracle数据库

2010-04-21 11:27:55

Oracle数据库

2010-04-15 12:43:06

Oracle数据库

2017-06-07 19:18:56

Oracle实例恢复前滚和回滚
点赞
收藏

51CTO技术栈公众号