当前位置:  数据库>oracle

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

    来源: 互联网  发布时间:2017-05-11

    本文导语: 一、什么是回滚段? 1.  回滚段表空间,Oracle的官方叫法为“还原表空间”: 还原表空间可以有多个,但在任意一个时刻,只能有一个是当前还原表空间(也可以称为活动还原表空间)。可以使用如下声明随时转换活动还原表...

一、什么是回滚段?

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

还原表空间可以有多个,但在任意一个时刻,只能有一个是当前还原表空间(也可以称为活动还原表空间)。可以使用如下声明随时转换活动还原表空间:alter system set undo_tablespace='还原表空间';

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个。

在切换还原表空间后,新还原表空间中的回滚段状态变为ONLINE,原还原表空间回滚段状态变为OFFLINE。可以在 dba_rollback_segs.status列看到这个变化。而v$rollstat.status列则显示非OFFLINE的回滚段的状态。如果发现某回滚段的V$rollstat.status列值为PENDING OFFLINE,说明此回滚段在切换前的还原表空间中,尚有末决事务。待到末决事务提交后,状态自然会变为OFFLINE。

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

3、观察UNDOTBS3回滚段:

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

sys@MYTWO> select * from dba_undo_extents where segment_name='_SYSSMU25$';(省去部分列)

OWN SEGMENT_NAME  TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS

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

SYS _SYSSMU25$          UNDOTBS3          0            14        82        61440      15

SYS _SYSSMU25$          UNDOTBS3          1            14        97        65536      16

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

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

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


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle认证基本介绍:获得OCP认证的好处
  • 全套OCP视频(Oracle认证专家)教程之一
  • Oracle OCP带来的光荣与梦想
  • Oracle认证心得:OCP DBA过关


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,