[20211021]关于undo段头事务表.txt

来源:这里教程网 时间:2026-03-03 17:04:09 作者:

[20211021]关于undo段头事务表.txt --//写一个awk脚本,看看段头事务表是如何链接一起的。纯粹为了学习awk命令。 1.环境: SCOTT@book> @ ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 2.查看回滚段: SCOTT@book> select * from v$rollname ;          USN NAME ------------ ----------------------------------------            0 SYSTEM            1 _SYSSMU1_3724004606$            2 _SYSSMU2_2996391332$            3 _SYSSMU3_1723003836$            4 _SYSSMU4_1254879796$            5 _SYSSMU5_898567397$            6 _SYSSMU6_1263032392$            7 _SYSSMU7_2070203016$            8 _SYSSMU8_517538920$            9 _SYSSMU9_1650507775$           10 _SYSSMU10_1197734989$ 11 rows selected. SCOTT@book> @ tix New tracefile_identifier =  /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_48762_0001.trc SCOTT@book> alter system dump undo header "_SYSSMU2_2996391332$"; System altered. 3.查看转储:   TRN CTL:: seq: 0x07c5 chd: 0x000f ctl: 0x0021 inc: 0x00000000 nfb: 0x0002                         ~~~~~~~~~~~~~~~~~~~~~~~             mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)             uba: 0x00c0074a.07c5.14 scn: 0x0003.7fb71808 --//chd: 0x000f 表示头,ctl: 0x0021 尾。 --//hd => had , tl=>tail --//实际上通过uel指向的的slot位连接index串在一起的。 --//undo段头事务表是数组实际上又是一个链表结构。 Version: 0x01   FREE BLOCK POOL::     uba: 0x00c0074a.07c5.1c ext: 0x2  spc: 0x1156     uba: 0x00000000.07c5.0c ext: 0x2  spc: 0xd2e     uba: 0x00c0073c.07c5.08 ext: 0x2  spc: 0x93a     uba: 0x00000000.07bf.01 ext: 0x2  spc: 0x1f84     uba: 0x00000000.0635.01 ext: 0x2  spc: 0x1f84   TRN TBL::   index  state cflags  wrap#    uel         scn            dba            parent-xid    nub     stmt_num    cmt   ------------------------------------------------------------------------------------------------    0x00    9    0x00  0x0c5e  0x001b  0x0003.7fb72a98  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x01    9    0x00  0x0c63  0x0005  0x0003.7fb73bd3  0x00c0074a  0x0000.000.00000000  0x00000001   0x00000000  1634781901    0x02    9    0x00  0x0c5f  0x0000  0x0003.7fb72a92  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x03    9    0x00  0x0c60  0x0009  0x0003.7fb71cf1  0x00c00747  0x0000.000.00000000  0x00000001   0x00000000  1634776077    0x04    9    0x00  0x0c62  0x0008  0x0003.7fb73b3f  0x00c0074a  0x0000.000.00000000  0x00000001   0x00000000  1634781901    0x05    9    0x00  0x0c63  0x0011  0x0003.7fb73bdf  0x00c0074a  0x0000.000.00000000  0x00000001   0x00000000  1634781901    0x06    9    0x00  0x0c63  0x0015  0x0003.7fb72b3c  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x07    9    0x00  0x0c5f  0x001e  0x0003.7fb71dbd  0x00c00747  0x0000.000.00000000  0x00000001   0x00000000  1634776077    0x08    9    0x00  0x0c61  0x000e  0x0003.7fb73b5d  0x00c0074a  0x0000.000.00000000  0x00000001   0x00000000  1634781901    0x09    9    0x00  0x0c62  0x000c  0x0003.7fb71d11  0x00c00747  0x0000.000.00000000  0x00000001   0x00000000  1634776077    0x0a    9    0x00  0x0c60  0x0018  0x0003.7fb72a5c  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x0b    9    0x00  0x0c60  0x0020  0x0003.7fb72ac8  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x0c    9    0x00  0x0c61  0x001c  0x0003.7fb71d19  0x00c00747  0x0000.000.00000000  0x00000001   0x00000000  1634776077    0x0d    9    0x00  0x0c62  0x001a  0x0003.7fb71b69  0x00c00742  0x0000.000.00000000  0x00000001   0x00000000  1634776075    0x0e    9    0x00  0x0c60  0x0001  0x0003.7fb73b5f  0x00c0074a  0x0000.000.00000000  0x00000001   0x00000000  1634781901    0x0f    9    0x00  0x0c60  0x000d  0x0003.7fb71890  0x00c00742  0x0000.000.00000000  0x00000001   0x00000000  1634775474    0x10    9    0x00  0x0c61  0x0003  0x0003.7fb71c38  0x00c00747  0x0000.000.00000000  0x00000001   0x00000000  1634776077    0x11    9    0x00  0x0c5e  0x0021  0x0003.7fb73bf1  0x00c0074a  0x0000.000.00000000  0x00000001   0x00000000  1634781901    0x12    9    0x00  0x0c60  0x000b  0x0003.7fb72ab8  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x13    9    0x00  0x0c62  0x000a  0x0003.7fb72a0c  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x14    9    0x00  0x0c61  0x0016  0x0003.7fb73acf  0x00c0074a  0x0000.000.00000000  0x00000002   0x00000000  1634781901    0x15    9    0x00  0x0c61  0x001f  0x0003.7fb73915  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634781601    0x16    9    0x00  0x0c5d  0x0004  0x0003.7fb73b19  0x00c0074a  0x0000.000.00000000  0x00000001   0x00000000  1634781901    0x17    9    0x00  0x0c61  0x0013  0x0003.7fb7206c  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634776375    0x18    9    0x00  0x0c61  0x0002  0x0003.7fb72a82  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x19    9    0x00  0x0c60  0x0014  0x0003.7fb73ab9  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634781901    0x1a    9    0x00  0x0c61  0x0010  0x0003.7fb71bce  0x00c00747  0x0000.000.00000000  0x00000006   0x00000000  1634776076    0x1b    9    0x00  0x0c5e  0x0012  0x0003.7fb72aa0  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x1c    9    0x00  0x0c60  0x0007  0x0003.7fb71d69  0x00c00747  0x0000.000.00000000  0x00000001   0x00000000  1634776077    0x1d    9    0x00  0x0c60  0x0017  0x0003.7fb71ecd  0x00c00749  0x0000.000.00000000  0x00000003   0x00000000  1634776077    0x1e    9    0x00  0x0c61  0x001d  0x0003.7fb71e1e  0x00c00747  0x0000.000.00000000  0x00000001   0x00000000  1634776077    0x1f    9    0x00  0x0c61  0x0019  0x0003.7fb73a71  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634781901    0x20    9    0x00  0x0c60  0x0006  0x0003.7fb72ada  0x00c00749  0x0000.000.00000000  0x00000001   0x00000000  1634778476    0x21    9    0x00  0x0c63  0xffff  0x0003.7fb73c8b  0x00c0074a  0x0000.000.00000000  0x00000001   0x00000000  1634781901   EXT TRN CTL:: --//写一个脚本验证这个过程 4.继续: $ grep "^   0x..    9"  /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_48762_0001.trc | awk '{print $1,$5}' | sed "s/ 0x00/ 0x/;s/ 0xff/ 0x/" >| b2.txt $ cat b2.txt 0x00 0x1b 0x01 0x05 0x02 0x00 0x03 0x09 0x04 0x08 0x05 0x11 0x06 0x15 0x07 0x1e 0x08 0x0e 0x09 0x0c 0x0a 0x18 0x0b 0x20 0x0c 0x1c 0x0d 0x1a 0x0e 0x01 0x0f 0x0d 0x10 0x03 0x11 0x21 0x12 0x0b 0x13 0x0a 0x14 0x16 0x15 0x1f 0x16 0x04 0x17 0x13 0x18 0x02 0x19 0x14 0x1a 0x10 0x1b 0x12 0x1c 0x07 0x1d 0x17 0x1e 0x1d 0x1f 0x19 0x20 0x06 0x21 0xff $ cat f.awk {     a[$1]=$2 } END {     c=1     while ( h != "0xff" )     {         print h,a[h],c         h=a[h]         c++     } } $ awk -v h=0x0f -f f.awk b2.txt 0x0f 0x0d 1 0x0d 0x1a 2 0x1a 0x10 3 0x10 0x03 4 0x03 0x09 5 0x09 0x0c 6 0x0c 0x1c 7 0x1c 0x07 8 0x07 0x1e 9 0x1e 0x1d 10 0x1d 0x17 11 0x17 0x13 12 0x13 0x0a 13 0x0a 0x18 14 0x18 0x02 15 0x02 0x00 16 0x00 0x1b 17 0x1b 0x12 18 0x12 0x0b 19 0x0b 0x20 20 0x20 0x06 21 0x06 0x15 22 0x15 0x1f 23 0x1f 0x19 24 0x19 0x14 25 0x14 0x16 26 0x16 0x04 27 0x04 0x08 28 0x08 0x0e 29 0x0e 0x01 30 0x01 0x05 31 0x05 0x11 32 0x11 0x21 33 0x21 0xff 34 5.换一个段头测试: SCOTT@book> @ tix New tracefile_identifier =  /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_48762_0002.trc SCOTT@book> alter system dump undo header "_SYSSMU3_1723003836$"; System altered. $ grep "^   0x..    9"  /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_48762_0002.trc | awk '{print $1,$5}' | sed "s/ 0x00/ 0x/;s/ 0xff/ 0x/" |awk -v h=0x0f -f f.awk 0x0f 0x18 1 0x18 0x0a 2 0x0a 0x1d 3 0x1d 0x10 4 0x10 0x0b 5 0x0b 0x02 6 0x02 0x12 7 0x12 0x00 8 0x00 0x1a 9 0x1a 0x15 10 0x15 0x01 11 0x01 0x1c 12 0x1c 0x13 13 0x13 0x1b 14 0x1b 0x20 15 0x20 0x08 16 0x08 0x19 17 0x19 0x07 18 0x07 0x11 19 0x11 0x0d 20 0x0d 0x0e 21 0x0e 0x1f 22 0x1f 0x06 23 0x06 0x16 24 0x16 0x1e 25 0x1e 0x17 26 0x17 0x03 27 0x03 0x09 28 0x09 0x0c 29 0x0c 0x21 30 0x21 0x05 31 0x05 0xff 32 --//ok。我写的grep过滤有点问题,如果存在事务第2个字段不是9而是10的情况下存在问题。

相关推荐