楼主: guoyJoe

【话题讨论】深入解析Oracle IMU模式下的REDO格式

[复制链接]
论坛徽章:
490
红宝石
日期:2014-04-05 19:53:18海蓝宝石
日期:2014-04-05 21:24:30数据库板块每日发贴之星
日期:2013-05-27 22:53:45生肖徽章:鸡
日期:2014-08-24 18:39:29青年奥林匹克运动会-羽毛球
日期:2014-09-24 08:37:59马上有房
日期:2015-01-03 10:23:28喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-06 18:09:28版主6段
日期:2014-05-27 02:19:57
81#
 楼主| 发表于 2014-1-8 13:47 | 只看该作者
遗忘的deny 发表于 2014-1-8 13:37
纯属个人意见,有错误,请指教:

步骤没问题,补充一点,通过IMU map将这些IMU node记录的undo信息写入undo buffer block除了COMMIT会发生,还有一个后台进程SMON每三秒也会去刷IMU node记录的undo信息写入undo buffer block,目的是为了减少COMMIT的工作量。

使用道具 举报

回复
论坛徽章:
4
2009新春纪念徽章
日期:2009-01-04 14:52:28咸鸭蛋
日期:2011-09-13 16:35:222012新春纪念徽章
日期:2012-01-04 11:54:46技术图书徽章
日期:2014-01-24 09:42:21
82#
发表于 2014-1-8 21:11 | 只看该作者
本帖最后由 nvlixue 于 2014-1-8 21:33 编辑

1、什么是IMU
    In Memory Undo

2、IMU模式下,申请IMU POOL时会产生 IMU latch,当latch不足是,那么oracle会使用非IMU模式管理

3、alter system set"_in_memory_undo"=false;
      startup force;
4、
      非IMU模式下当一条数据被更新的时候,会在buffer cahce中分配一个undo数据块,然后在log buffer中写入undo条目(undo的redo),如果一个事物更新多条数据,buffer cache中的undo数据块也会写入多条undo条目,同时这些undo的条目也会写入到log buffer中。
      IMU模式下的话,当更新一条数据的时候,前台进程会将修改后的数据拷贝到pga,pga会拷贝数据到IMU pool(分配自shared pool),buffer cache中仍然会为undo分配一个数据块,但是修改前的数据并不会立即被写入到buffer cache中的undo 块,而是写入到IMU pool中,当发生commit的时候,才会将IMU pool中的修改前的数据写入到buffer cache中的undo块中,而IMU pool中的这些信息会被一起写入到redo log buffer中,然后通过lgwr将redo log buffer 写入到redo log file中

实验:IMU模式下redo格式分析
1、11g模式时IMU模式,切换日志、查看当前日志的序列号和current日志组
SQL> alter system switch logfile;  
SQL> select group#,status,sequence# fromv$log;   
GROUP# STATUS           SEQUENCE#---------- ---------------- ----------         
1  CURRENT                   28         
2 INACTIVE                 26         
3 INACTIVE                 27
SQL> select group#,member fromv$logfile;
1             /u01/app/oracle/oradata/bxocp2/redo01.log
2、  查看做实验的表t,
SQL> select * from scott.t;
ID        NAME---------- ----------
1          BBBB
2          BBBB
3、更新2条数据,提交,dump日志文件,获取trace
SQL> UPDATE scott.t SET NAME='liHHHH'WHERE id='1';
1 row updated.
SQL> UPDATE scott.t SET NAME='WSSSH'WHERE id='2';
1 row updated.
SQL> commit
;Commit complete.
SQL> alter system dump logfile'/u01/app/oracle/oradata/bxocp2/redo01.log';
System altered.
SQL> select * from v$diag_info;
/u01/app/oracle/diag/rdbms/bxocp2/bxocp2/trace/bxocp2_ora_4952.trc 1、
查询表scott.t的对象id,以方便在trace文件中搜索
SQL> select object_id from user_objectswhere object_name='T';
OBJECT_ID----------     76933
1、  分析dump文件=================== redo record 头信息===========================
REDO RECORD - Thread:1 RBA:0x00001c.0000001d.0010 LEN: 0x0314 VLD: 0x0dSCN: 0x0000.001560a9 SUBSCN:  1 01/08/2014 09:25:43(LWN RBA: 0x00001c.0000001d.0010 LEN: 0002NST: 0001 SCN: 0x0000.001560a8)
RBA: 0x00001c.0000001d.0010  ( RBA = 序列号+块号+偏移量 组成)
select to_number('1c','XX') from dual;
select to_number('1d','XX') from dual;
select to_number('10','XX') from dual;
见图片1

Dump的日志文件时序列号是28,块号29,这与上面我们通过v$log查询的结果一致
=================== redo record 头信息=========================== ====================
=========== ===============================
CHANGE #1 TYP:2 CLS:1 AFN:4 DBA:0x0100021fOBJ:76933 SCN:0x0000.00156050 SEQ:4 OP:11.5 ENC:0 RBL:0KTB Redo op: 0x11 ver: 0x01  compat bit: 4 (post-11) padding: 1op: F xid:  0x0006.002.00000472    uba: 0x00c008a5.0112.01Block cleanout record, scn:  0x0000.0015609f ver: 0x01 opt: 0x02, entriesfollow... itli: 1  flg: 2  scn: 0x0000.00156050KDO Op code: URP row dependencies Disabled xtype: XA flags: 0x00000000  bdba:0x0100021f  hdba: 0x0100021aitli: 2 ispac: 0  maxfr: 4858tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2ckix: 0ncol: 2 nnew: 1 size: 2col 1: [ 6]  6c 69 48 48 48 48 OP:11.5 :
update修改数据,
Op code: URP :update操作OBJ:76933 这里可以看到这个obj就是我们刚才查询到的对象id
DBA:0x0100021f  ,data block address我们计算一下这个地址

见图片2
既然op操作时修改数据,那么我们第一条update语句是UPDATE scott.t SET NAME='liHHHH' WHEREid='1';
结果与dump出的文件时一致的,这也验证了我们的上边操作
  ========================================
CHANGE #2 TYP:0 CLS:27 AFN:3 DBA:0x00c000d0OBJ:4294967295 SCN:0x0000.00156079 SEQ:1 OP:5.2 ENC:0 RBL:0ktudh redo: slt: 0x0002 sqn: 0x00000472flg: 0x000a siz: 160 fbi: 0           uba: 0x00c008a5.0112.01   pxid:  0x0000.000.00000000                           
OP:5.2 UNDO段头的事务表写事务信息-事务开始
AFN:3  绝对文件号3号,这里也就是undo数据文件
Select * from v$dbfile;可以查出3号文件时undo数据文件
DBA:0x00c000d0  对dba同样使用上边的文件可以得出也是3号文件  
=========================================                                                           
====================================   change #3        
CHANGE #3 TYP:0 CLS:1 AFN:4 DBA:0x0100021fOBJ:76933 SCN:0x0000.001560a9 SEQ:1 OP:11.5 ENC:0 RBL:0KTB Redo op: 0x02 ver: 0x01  compat bit: 4 (post-11) padding: 1op: C uba: 0x00c008a5.0112.02KDO Op code: URP row dependencies Disabled xtype: XA flags: 0x00000000  bdba:0x0100021f  hdba: 0x0100021aitli: 2 ispac: 0  maxfr: 4858tabn: 0 slot: 1(0x1) flag: 0x2c lock: 2ckix: 0ncol: 2 nnew: 1 size: 1col 1: [ 5]  57 53 53 53 48
OP:11.5 修改数据这里的分析同 change#1,可以发现这里是对应的t表的第二条update语句
==================================  change #3  =======
===========================change #4
CHANGE #4 TYP:0 CLS:27 AFN:3 DBA:0x00c000d0OBJ:4294967295 SCN:0x0000.001560a9 SEQ:1 OP:5.4 ENC:0 RBL:0ktucm redo: slt: 0x0002 sqn: 0x00000472srt: 0 sta: 9 flg: 0x2 ktucf redo: uba: 0x00c008a5.0112.02 ext: 16 spc: 7894fbi: 0  
OP:5.4
== commit 提交产生的日志记录   =============================
===== change#4  =====================
=============CHANGE #5
CHANGE #5 TYP:1 CLS:28 AFN:3 DBA:0x00c008a5OBJ:4294967295 SCN:0x0000.0015609f SEQ:1 OP:5.1 ENC:0 RBL:0ktudb redo: siz: 160 spc: 0 flg: 0x000aseq: 0x0112 rec: 0x01           xid:  0x0006.002.00000472  ktubl redo: slt: 2 rci: 0 opc: 11.1 [objn:76933 objd: 76933 tsn: 4]Undo type: Regular undo        Begintrans    Last buffer split:  No Temp Object:  No Tablespace Undo:  No             0x00000000  prev ctl uba:0x00c008a4.0112.05 prev ctl max cmt scn:  0x0000.0014bf8a  prev tx cmt scn:  0x0000.0014bf94 txn start scn:  0x0000.00155ee6  logon user: 0 prev brb: 12585120  prev bcl: 0BuExt idx: 0 flg2: 0KDO undo record:KTB Redo op: 0x04 ver: 0x01  compat bit: 4 (post-11) padding: 1op: L itl: xid:  0x0004.001.00000312uba: 0x00c00632.008d.26                      flg: C---    lkc: 0     scn: 0x0000.00156040KDO Op code: URP row dependencies Disabled xtype: XA flags: 0x00000000  bdba:0x0100021f  hdba: 0x0100021aitli: 2 ispac: 0  maxfr: 4858tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0ckix: 0ncol: 2 nnew: 1 size: -2col 1: [ 4]  42 42 42 42
OP:5.1 记录的是修改前的数据
AFN:3 绝对文件号是3号文件,也就是undo data filecol  
1: [ 4] 42 42 42 42,这里可以看到也就是 BBBB,修改前的数据是BBBB,与我们之前查询t表时的数据是一致的。
==================================CHANGE #5 ========================
==================================CHANGE #6
CHANGE #6 TYP:0 CLS:28 AFN:3 DBA:0x00c008a5OBJ:4294967295 SCN:0x0000.001560a9 SEQ:1 OP:5.1 ENC:0 RBL:0ktudb redo: siz: 92 spc: 7988 flg: 0x0022seq: 0x0112 rec: 0x02           xid:  0x0006.002.00000472  ktubu redo: slt: 2 rci: 1 opc: 11.1 objn:76933 objd: 76933 tsn: 4Undo type: Regular undo       Undo type:  Last buffer split:  No Tablespace Undo:  No             0x00000000KDO undo record:KTB Redo op: 0x02 ver: 0x01  compat bit: 4 (post-11) padding: 1op: C uba: 0x00c008a5.0112.01KDO Op code: URP row dependencies Disabled xtype: XA flags: 0x00000000  bdba:0x0100021f  hdba: 0x0100021aitli: 2 ispac: 0  maxfr: 4858tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0ckix: 0ncol: 2 nnew: 1 size: -1col 1: [ 4]  42 42 42 42END OF REDO DUMP
Change #6 同5的分析
==================================CHANGE #6
总结:当对t表分别作了2个update+一个commit的时候,我们dump日志发现日志内容如下
REDO RECORD
CHANGE #1 ==update修改数据(第一条数据)
CHANGE #2 == 记录事物开始
CHANGE #3 ==update修改数据(第二条数据)
CHANGE #4 ==commit操作
CHANGE #5 == 记录修改前的数据
CHANGE #6 == 记录修改前的数据也就是产生了一个redo record 条目,6条改变向量,
修改数据(2条)+commit(1条)+修改前的数据(2条),在IMU的模式下是先记录修改的数据,commit后,在记录修改前的数据。
在非IMU模式下,产生一条redo record时:
产生一条REDO RECORD的步骤   
(1)  获取redo copylatch   
(2) 获取redoallocate latch   
(3) 申请到log buffer空间   
(4)释放redo allocatelatch   
(5)生成日志(从buffer cachecopy修改前的值,从pga中copy修改后的值),产生日志  
(6)释放redo copy latch   

而在IMU模式多个redo record合并成了一个 这样也就减少了以上操作,所以有利于于提高性能。


1.jpg (12.94 KB, 下载次数: 35)

1.jpg

使用道具 举报

回复
论坛徽章:
490
红宝石
日期:2014-04-05 19:53:18海蓝宝石
日期:2014-04-05 21:24:30数据库板块每日发贴之星
日期:2013-05-27 22:53:45生肖徽章:鸡
日期:2014-08-24 18:39:29青年奥林匹克运动会-羽毛球
日期:2014-09-24 08:37:59马上有房
日期:2015-01-03 10:23:28喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-06 18:09:28版主6段
日期:2014-05-27 02:19:57
83#
 楼主| 发表于 2014-1-8 21:41 | 只看该作者
本帖最后由 guoyJoe 于 2014-1-9 18:11 编辑
nvlixue 发表于 2014-1-8 21:11
1、什么是IMU    In Memory Undo
2、IMU模式下,申请IMU POOL时会产生 IMU latch,当latch不足是,那么ora ...

辉辉很捧,值的一读

使用道具 举报

回复
论坛徽章:
0
84#
发表于 2014-1-9 01:04 | 只看该作者
本帖最后由 tdhbking 于 2014-1-9 01:31 编辑

1.In Memory Undo.
2.10G后默认开启IMU,如下条件不会使用IMU.
开启DATABASE FLASHBACK ON(实验亲测)
事务过大,每个private redo区64KB,64位oracle版本为128KB.(详见oracle core 2.3 redo复杂度)
RAC
非AUM
3.alter system set "_in_memory_undo" = false;
4.
step 1:PGA保存修改值.
step 2:从buffer cache复制修改前值到IMU池。
step 3:从PGA复制修改后的值到私有redo区。
step 4:update修改值.
step 5:将修改前值复制到UNDO块作一致性读CR.
step 6,7:合并redo/undo改变向量为一条redo record
step 8:LGWR将日志写入log file.
step 9:当前块和undo块分别存盘写入相应数据文件.

DUMP实验
SQL> select * from test;
        ID NAME
---------- --------------------------------
         1 aaaaabbbbb
         2 bbbbbaaaaa
     48239 king48239
     48240 king48240
SQL> update test set name='xxxxxyyyyy' where id=1;
已更新 1 行。
SQL> update test set name='yyyyyxxxxx' where id=2;
已更新 1 行。
SQL> commit;
提交完成。
SQL> select * from test;
        ID NAME
---------- --------------------------------
         1 xxxxxyyyyy
         2 yyyyyxxxxx
     48239 king48239
     48240 king48240
select object_id from user_objects where object_name='TEST';
OBJECT_ID
----------
     78741

REDO RECORD - Thread:1 RBA: 0x00007d.0000eb9c.01ac LEN: 0x0370 VLD: 0x09
SCN: 0x0000.00308562 SUBSCN:  1 01/08/2014 23:26:05
CHANGE #1 TYP:2 CLS:1 AFN:7 DBA:0x01c000de OBJ:78741 SCN:0x0000.00305b17 SEQ:3 OP:11.19 ENC:0 RBL:0
KTB Redo
op: 0x11  ver: 0x01
compat bit: 4 (post-11) padding: 1
op: F  xid:  0x0007.01f.00000581    uba: 0x00c00da6.0140.1f
Block cleanout record, scn:  0x0000.00308556 ver: 0x01 opt: 0x02, entries follow...
  itli: 1  flg: 2  scn: 0x0000.00305b17
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code:  21 row dependencies Disabled
  xtype: XAxtype KDO_KDOM2 flags: 0x00000080  bdba: 0x01c000de  hdba: 0x01c0008a
itli: 2  ispac: 0  maxfr: 4858
vect = 3
col  1: [10]  78 78 78 78 78 79 79 79 79 79  ======修改后的值

CHANGE #2 TYP:0 CLS:29 AFN:3 DBA:0x00c000e0 OBJ:4294967295 SCN:0x0000.003084de SEQ:2 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x001f sqn: 0x00000581 flg: 0x0012 siz: 196 fbi: 0
            uba: 0x00c00da6.0140.1f    pxid:  0x0000.000.00000000

CHANGE #3 TYP:0 CLS:1 AFN:7 DBA:0x01c000de OBJ:78741 SCN:0x0000.00308562 SEQ:1 OP:11.19 ENC:0 RBL:0
KTB Redo
op: 0x02  ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C  uba: 0x00c00da6.0140.20
Array Update of 1 rows:
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 2 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code:  21 row dependencies Disabled
  xtype: XAxtype KDO_KDOM2 flags: 0x00000080  bdba: 0x01c000de  hdba: 0x01c0008a
itli: 2  ispac: 0  maxfr: 4858
vect = 3
col  1: [10]  79 79 79 79 79 78 78 78 78 78   ======修改后的值

CHANGE #4 TYP:0 CLS:29 AFN:3 DBA:0x00c000e0 OBJ:4294967295 SCN:0x0000.00308562 SEQ:1 OP:5.4 ENC:0 RBL:0
ktucm redo: slt: 0x001f sqn: 0x00000581 srt: 0 sta: 9 flg: 0x2 ktucf redo: uba: 0x00c00da6.0140.20 ext: 3 spc: 4094 fbi: 0
====commit提交
CHANGE #5 TYP:0 CLS:30 AFN:3 DBA:0x00c00da6 OBJ:4294967295 SCN:0x0000.003084de SEQ:3 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 196 spc: 4422 flg: 0x0012 seq: 0x0140 rec: 0x1f
            xid:  0x0007.01f.00000581
ktubl redo: slt: 31 rci: 0 opc: 11.1 [objn: 78741 objd: 78741 tsn: 7]
                                                                                                                                               
Tablespace Undo:  No
             0x00000000  prev ctl uba: 0x00c00da6.0140.1c
prev ctl max cmt scn:  0x0000.00307f13  prev tx cmt scn:  0x0000.00307f2c
txn start scn:  0x0000.0030851d  logon user: 94  prev brb: 12586743  prev bcl: 0 BuExt idx: 0 flg2: 0
KDO undo record:
KTB Redo
op: 0x04  ver: 0x01
compat bit: 4 (post-11) padding: 1
op: L  itl: xid:  0x0009.019.00000759 uba: 0x00c00e17.0151.04
                      flg: C---    lkc:  0     scn: 0x0000.003054b2
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code:  21 row dependencies Disabled
  xtype: XAxtype KDO_KDOM2 flags: 0x00000080  bdba: 0x01c000de  hdba: 0x01c0008a
itli: 2  ispac: 0  maxfr: 4858
vect = 3
col  1: [10]  61 61 61 61 61 62 62 62 62 62  ====undo块中ID=1的前映像

CHANGE #6 TYP:0 CLS:30 AFN:3 DBA:0x00c00da6 OBJ:4294967295 SCN:0x0000.00308562 SEQ:1 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 128 spc: 4224 flg: 0x0022 seq: 0x0140 rec: 0x20
            xid:  0x0007.01f.00000581
ktubu redo: slt: 31 rci: 31 opc: 11.1 objn: 78741 objd: 78741 tsn: 7
Undo type:  Regular undo       Undo type:  Last buffer split:  No
Tablespace Undo:  No
             0x00000000
KDO undo record:
KTB Redo
op: 0x02  ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C  uba: 0x00c00da6.0140.1f
Array Update of 1 rows:
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code:  21 row dependencies Disabled
  xtype: XAxtype KDO_KDOM2 flags: 0x00000080  bdba: 0x01c000de  hdba: 0x01c0008a
itli: 2  ispac: 0  maxfr: 4858
vect = 3
col  1: [10]  62 62 62 62 62 61 61 61 61 61     ====undo块中ID=2的前映像

一条记日志==》6个CHANGE VECTOR
CHANGE #1 ==>OP:11.9  修改后的ID=1的值
CHANGE #2 ==>OP:5.2   update rollback segment header
CHANGE #3 ==>OP:11.9  修改后的ID=2的值
CHANGE #4 ==>OP:5.4  --->COMMIT
CHANGE #5 ==>OP:5.1  --->undo块中ID=1的前映像
CHANGE #6 ==>OP:5.1  --->undo块中ID=2的前映像

IMU主要作用:
把多条日志条目合并成一条,减少REDO日志量;
用一个 IMU latch 代替 redo allocation latch 和 redo copy latch,减少LATCH急用.


使用道具 举报

回复
论坛徽章:
490
红宝石
日期:2014-04-05 19:53:18海蓝宝石
日期:2014-04-05 21:24:30数据库板块每日发贴之星
日期:2013-05-27 22:53:45生肖徽章:鸡
日期:2014-08-24 18:39:29青年奥林匹克运动会-羽毛球
日期:2014-09-24 08:37:59马上有房
日期:2015-01-03 10:23:28喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-06 18:09:28版主6段
日期:2014-05-27 02:19:57
85#
 楼主| 发表于 2014-1-9 09:30 | 只看该作者
本帖最后由 guoyJoe 于 2014-1-9 18:14 编辑
tdhbking 发表于 2014-1-9 01:04
1.In Memory Undo.
2.10G后默认开启IMU,如下条件不会使用IMU.
开启DATABASE FLASHBACK ON(实验亲测)

伯钦强大,字节级的分析,一个比一个牛

使用道具 举报

回复
论坛徽章:
0
86#
发表于 2014-1-9 10:39 | 只看该作者
guoyJoe 发表于 2014-1-8 12:16
写的蛮详细的,不错不错,期待你的  “REDO日志做DUMP分析: 过2天有空时再来分析吧”

郭总,你的日志分析都已经写的很清楚了,很详细了。
你的这些讨论题都挺好,顺便又复习了一遍private redo, IMU的知识点。

使用道具 举报

回复
论坛徽章:
0
87#
发表于 2014-1-9 10:48 | 只看该作者
guoyJoe 发表于 2014-1-8 12:29
没看懂你这语句?请详细说明?

我是说英文版第17 页, 他给出的那个流程5 & 6.  data block的更改应该是及时的,不会等到事务提交时才去更改,而redo确实是等到事务提交时去更改。

使用道具 举报

回复
论坛徽章:
0
88#
发表于 2014-1-9 10:56 | 只看该作者
guoyJoe 发表于 2014-1-8 13:47
步骤没问题,补充一点,通过IMU map将这些IMU node记录的undo信息写入undo buffer block除了COMMIT会发生 ...

没想到过smon尽然会每3秒去刷IMU到undo buffer block, 郭总,能不能用实验证明一下。怪不得我dump出来的undo block不能证明没commit前,undo change vector没有apply到undo block上,搞的我百撕不得骑姐。

使用道具 举报

回复
论坛徽章:
4
2013年新春福章
日期:2013-02-25 14:51:24技术图书徽章
日期:2014-01-24 09:42:212014年新春福章
日期:2014-02-18 16:48:49马上加薪
日期:2014-02-18 16:48:49
89#
发表于 2014-1-9 11:16 | 只看该作者
alter system switch logfile;

update bbb set name='AAAAAAAAA' WHERE ID=1;
UPDATE BBB SET NAME='BBBBBBBBB' WHERE ID=2;
COMMIT;

select * from v$log;
select * from v$logfile;
ALTER SYSTEM DUMP LOGFILE '/u01/oradata/orcl/redo02.log'




REDO RECORD - Thread:1 RBA: 0x0000b6.0000000d.0158 LEN: 0x00f0 VLD: 0x01
SCN: 0x0000.0044a24e SUBSCN:  1 01/08/2014 20:45:41
CHANGE #1 TYP:0 CLS:28 AFN:3 DBA:0x00c006c9 OBJ:4294967295 SCN:0x0000.0044a24e SEQ:4 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 104 spc: 3728 flg: 0x0022 seq: 0x0109 rec: 0x16
            xid:  0x0006.014.00002137  
ktubu redo: slt: 20 rci: 21 opc: 10.22 objn: 271 objd: 271 tsn: 1
Undo type:  Regular undo       Undo type:  Last buffer split:  No
Tablespace Undo:  No
             0x00000000
index undo for leaf key operations
KTB Redo
op: 0x04  ver: 0x01  
compat bit: 4 (post-11) padding: 1
op: L  itl: xid:  0x0003.017.00002150 uba: 0x00c00555.0130.13
                      flg: C---    lkc:  0     scn: 0x0000.0044a17a
/76418
...skipping
SCN: 0x0000.0044a266 SUBSCN:  1 01/08/2014 20:46:39
(LWN RBA: 0x0000b6.00000010.0010 LEN: 0002 NST: 0001 SCN: 0x0000.0044a263)
CHANGE #1 TYP:2 CLS:1 AFN:4 DBA:0x0100014b OBJ:76418 SCN:0x0000.00449fb0 SEQ:2 OP:11.5 ENC:0 RBL:0
KTB Redo
op: 0x01  ver: 0x01  
compat bit: 4 (post-11) padding: 1
op: F  xid:  0x0005.015.0000212d    uba: 0x00c0020e.010e.17
KDO Op code: URP row dependencies Disabled
  xtype: XA flags: 0x00000000  bdba: 0x0100014b  hdba: 0x0100014a
itli: 2  ispac: 0  maxfr: 4858
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2 ckix: 24
ncol: 2 nnew: 1 size: 6
col  1: [ 9]  41 41 41 41 41 41 41 41 41
CHANGE #2 TYP:0 CLS:25 AFN:3 DBA:0x00c000c0 OBJ:4294967295 SCN:0x0000.0044a103 SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x0015 sqn: 0x0000212d flg: 0x0012 siz: 160 fbi: 0
            uba: 0x00c0020e.010e.17    pxid:  0x0000.000.00000000
CHANGE #3 TYP:0 CLS:1 AFN:4 DBA:0x0100014b OBJ:76418 SCN:0x0000.0044a266 SEQ:1 OP:11.5 ENC:0 RBL:0
KTB Redo
op: 0x12  ver: 0x01  
compat bit: 4 (post-11) padding: 1
op: C  uba: 0x00c0020e.010e.18
Block cleanout record, scn:  0x0000.0044a265 ver: 0x01 opt: 0x02, entries follow...
  itli: 1  flg: 2  scn: 0x0000.00449fb0
KDO Op code: URP row dependencies Disabled
  xtype: XA flags: 0x00000000  bdba: 0x0100014b  hdba: 0x0100014a
itli: 2  ispac: 0  maxfr: 4858
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 2 ckix: 24
ncol: 2 nnew: 1 size: 6
col  1: [ 9]  42 42 42 42 42 42 42 42 42
CHANGE #4 TYP:0 CLS:25 AFN:3 DBA:0x00c000c0 OBJ:4294967295 SCN:0x0000.0044a266 SEQ:1 OP:5.4 ENC:0 RBL:0
ktucm redo: slt: 0x0015 sqn: 0x0000212d srt: 0 sta: 9 flg: 0x2 ktucf redo: uba: 0x00c0020e.010e.18 ext: 2 spc: 4706 fbi: 0
CHANGE #5 TYP:0 CLS:26 AFN:3 DBA:0x00c0020e OBJ:4294967295 SCN:0x0000.0044a102 SEQ:1 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 160 spc: 4962 flg: 0x0012 seq: 0x010e rec: 0x17
            xid:  0x0005.015.0000212d  
ktubl redo: slt: 21 rci: 0 opc: 11.1 [objn: 76418 objd: 76418 tsn: 4]
Undo type:  Regular undo        Begin trans    Last buffer split:  No
Temp Object:  No
Tablespace Undo:  No
             0x00000000  prev ctl uba: 0x00c0020e.010e.16
prev ctl max cmt scn:  0x0000.0044999a  prev tx cmt scn:  0x0000.00449a22
txn start scn:  0x0000.00449fb0  logon user: 85  prev brb: 12583441  prev bcl: 0 BuExt idx: 0 flg2: 0
KDO undo record:
KTB Redo
op: 0x04  ver: 0x01  
compat bit: 4 (post-11) padding: 1
op: L  itl: xid:  0x0001.003.00002136 uba: 0x00c003ee.0131.4d
                      flg: C---    lkc:  0     scn: 0x0000.00444280
KDO Op code: URP row dependencies Disabled
  xtype: XA flags: 0x00000000  bdba: 0x0100014b  hdba: 0x0100014a
itli: 2  ispac: 0  maxfr: 4858
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 24
ncol: 2 nnew: 1 size: -6
col  1: [ 3]  63 63 63
CHANGE #6 TYP:0 CLS:26 AFN:3 DBA:0x00c0020e OBJ:4294967295 SCN:0x0000.0044a266 SEQ:1 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 92 spc: 4800 flg: 0x0022 seq: 0x010e rec: 0x18
            xid:  0x0005.015.0000212d  
ktubu redo: slt: 21 rci: 23 opc: 11.1 objn: 76418 objd: 76418 tsn: 4
Undo type:  Regular undo       Undo type:  Last buffer split:  No
Tablespace Undo:  No
             0x00000000
KDO undo record:
KTB Redo
op: 0x02  ver: 0x01  
compat bit: 4 (post-11) padding: 1
op: C  uba: 0x00c0020e.010e.17
KDO Op code: URP row dependencies Disabled
  xtype: XA flags: 0x00000000  bdba: 0x0100014b  hdba: 0x0100014a
itli: 2  ispac: 0  maxfr: 4858
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0 ckix: 24
ncol: 2 nnew: 1 size: -6
col  1: [ 3]  7a 7a 7a



select chr(to_number(substr(replace('41 41 41 41 41 41 41 41 41',' '),rownum*2-1,2),'xxxxxxxxxxxxxxxxxxxxxxxx')) from v$dbfile;
select chr(to_number(substr(replace('42 42 42 42 42 42 42 42 42',' '),rownum*2-1,2),'xxxxxxxxxxxxxxxxxxxxxxxx')) from v$dbfile;

使用道具 举报

回复
论坛徽章:
10
2013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:44:08技术图书徽章
日期:2014-01-24 09:42:21优秀写手
日期:2013-12-18 09:29:08宝马
日期:2013-11-25 20:45:12阿斯顿马丁
日期:2013-11-13 22:54:13兰博基尼
日期:2013-08-31 23:11:36夏利
日期:2013-08-26 13:30:20双黄蛋
日期:2013-06-14 21:55:42马上有对象
日期:2014-02-18 16:44:08
90#
发表于 2014-1-9 12:42 | 只看该作者
miniid1 发表于 2014-1-9 10:56
没想到过smon尽然会每3秒去刷IMU到undo buffer block, 郭总,能不能用实验证明一下。怪不得我dump出来的u ...

  再撕过年没衣服穿了。。

http://blog.csdn.net/haibusuanyun/article/details/18037635   关于SMON每三秒从IMU中拷贝修改前值到BUFFER CACHE中构建一个CR块操作的验证

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表