[20211021]關於undo段頭事務表.txt
[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的情況下存在問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2838715/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 28、undo_1_2(undo引數、undo段、事務)
- [20210817]如何通過bbed確定undo段.txt
- 關於mysqldump備份非事務表的注意事項MySql
- [20191220]關於共享記憶體段相關問題.txt記憶體
- [20210527]rman與undo表空間備份.txt
- 關於oracle中的undoOracle
- 4.3.2.4 關於CDB UNDO模式模式
- [20191223]關於共享記憶體段相關問題3.txt記憶體
- 淺析MySQL事務中的redo與undoMySql
- [20211021]windows新建文字檔案帶日期(補充).txtWindows
- 關於事務補償機制
- 關於分散式事務的理解分散式
- 關於 MySQL 的巢狀事務MySql巢狀
- bbed修改undo段狀態
- T-SQL——關於時間段類報表SQL
- 12C關於CDB、PDB 回滾undo表空間的總結
- 關於事務回滾註解@Transactional
- 關於Spring Aop和事務記錄Spring
- vitess兩階段提交事務Vite
- [20190115]關於共享服務與專用模式.txt模式
- SQL Server 表的管理_關於事務操作的詳解(案例程式碼)SQLServer
- MySQL關於事務常見的問題MySql
- 關於流資料上的事務操作
- [20180423]關於閃回表與主外來鍵約束.txt
- 分散式事務對於兩階段提交的錯誤處理分散式
- [20210604]如何看到遞迴事務.txt遞迴
- [20181021]臨時表lob段建立在哪裡.txt
- T-SQL——關於事務回滾的方式SQL
- undo表空間容量
- 【UNDO】Oracle系統回滾段說明Oracle
- 2.5.5 使用自動Undo管理: 建立 Undo 表空間
- [20181207]12c bootstrap$段頭都會記錄在哪裡.txtboot
- 關於ORACLE大型事務回滾的幾個點Oracle
- 關於Delta Lake的ACID事務機制簡介
- 關於spring事務原始碼的一些小理解Spring原始碼
- 關於Rollup那些事
- [20191202]關於hugepages相關問題.txt
- 關於線段樹基礎