OCP知识点讲解 之 Undo回滚基础知识

WBOY
풀어 주다: 2016-06-07 17:41:02
원래의
1072명이 탐색했습니다.

一、什么是回滚段?1.回滚段表空间,Oracle的官方叫法为还原表空间:还原表空间可以有多个,但在任意一个时刻,只能有一个是当前还..

 

一、什么是回滚段?

 

     1.  回滚段表空间,Oracle的官方叫法为“还原表空间”:


     2.  回滚段:

     在Oracle中,虚拟主机,段是逻辑结构中最高一层。表就是段,我们称为表段,索引是索引段,等等。回滚段也是段,我们可以把它看作表,一种由系统自己创建的表。

     系统默认创建11个回滚段,当然,如果还原表空间太小,默认回滚段数量也可能小于这个数字,可如下查看它们的名字:

sys@MYTWO> select * from v$rollname;

       USN NAME

---------- ------------------------------

         0 SYSTEM

        11 _SYSSMU11$

        12 _SYSSMU12$

   :     :

   :     :

        19 _SYSSMU19$

        20 _SYSSMU20$

已选择11行。


将活动还原表空间切换到UNDOTBS3上再看:

sys@MYTWO> select * from v$rollname;

       USN NAME

---------- ------------------------------

         0 SYSTEM

        23 _SYSSMU23$

        24 _SYSSMU24$

        25 _SYSSMU25$


     因为UNDOTBS3只有512K,所以系统默认创建的回滚段只有3个。

还原表空间中回滚段的数量是会根据情况调整的。当繁忙时,系统将会自动创建更多的回滚段,空闲时系统也会自动回收回滚段。我们也可以从告警日志中看到回滚段的创建与回收。


3、观察UNDOTBS3回滚段:

     UNDOTBS3是我们后面的练习需要频繁使用的还原表空间,它共有512K字节,128个块。下面我们通过DBA_UNDO_EXTENTS观察一下UNDOTBS3中回滚段的区占用情况:

--- ------------------------------ ------------------------------ ---------- ---------- ---------- ---------- ---------- -----------


     从以上结果可以看到_SYSSMU25$回滚段占用两个区,0号区从第82号块开始到96号块,共15个块。1号区从97号块开始到112号块,共16个块。为什么1号区比0号区多一个块?这是因为第81块被作为了回滚段头,回滚段头要保存重要信息:事务表,下面马上就要讲到了。从第82号块开始才可以保存回滚记录。我们也可以从DBA_EXTENTS中得到同样的结果。

     用上面的命令观察一下UNDOTBS3中的每一个回滚段,画一个简要的关于每个回滚段空间占用情况的图,要对这些回滚段的区、块的分部有印象,这样才能更好的明白下面章节的内容。

UNDOTBS3中的回滚段,每个各占两个区,这是因为通常的回滚段,最小就是两个区。


 

 

二、相关参数介绍:

     1.UNDO_MANAGEMENT:这个参数确定了Undo空间的管理方式。该参数是个静态参数(不可以动态修改)。如果设置为MANUAL,则使用rollback-managed undo (RMU)管理模式;如果设置为AUTO,则使用system-managed undo (SMU) 或者automatically managed undo (AMU)管理模式。在Oracle 9i数据库中,AUTO是缺省值。


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿