ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Control SCN of Undo Segments

Control SCN of Undo Segments

原创 Linux操作系统 作者:liyijie78 时间:2011-01-16 10:54:57 0 删除 编辑
在回滚段头有一个重要的数据结构称为:Control SCN.
这个SCN是最近一个被重用的事务槽的SCN(重用是按事务的先后顺序重用的)。如果Control SCN比查询的Snapshot SCN新,那么Oracle不会试图去构造前镜像,而是马上返回ORA-01555错误,因为这个UNDO信息肯定已经被覆盖了。
这个Control SCN也会被用于delayed logging cleanout的提交SCN(仅当历史事务的UNDO信息已经被覆盖),在ITL中这个SCN被标记为U,代表"upper bound commit".
我们来看一下这个数据结构:
SQL> create table ud ( n number );

Table created

SQL> insert into ud values(1);

1 row inserted

SQL> insert into ud values(2);

1 row inserted

SQL> commit;

Commit complete

SQL> 
SQL> select * from ud;

         N
----------
         1
         2

SQL> update ud set n=1000 where n=2;

1 row updated

SQL> select * from ud;

         N
----------
         1
      1000

SQL> select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec from v$transaction;

    XIDUSN    XIDSLOT     XIDSQN     UBABLK     UBAFIL     UBAREC
---------- ---------- ---------- ---------- ---------- ----------
         2         30      11407        251          2         10

SQL> select usn,name from v$rollname where usn=2;

       USN NAME
---------- ------------------------------
         2 _SYSSMU2$

SQL> alter system dump undo header '_SYSSMU2$';

System altered

检查trace文件(摘录):
  TRN CTL:: seq: 0x02cd chd: 0x002e ctl: 0x0018 inc: 0x00000000 nfb: 0x0000
            mgc: 0x8201 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
            uba: 0x008000fb.02cd.0a scn: 0x0000.0e21169a
这里TRN CTL部分的scn就是前面我们所说的Contrl SCN.
- THE END -

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11417069/viewspace-683905/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 高级复制 <一>
下一篇: 2011年
请登录后发表评论 登录
全部评论

注册时间:2011-01-07

  • 博文量
    93
  • 访问量
    294461