bbed修改undo段狀態
bbed 修改 undo$( 回滾段 ) 狀態
指定 undo$ 對應資料塊 (11g 1_225,10g 1_106)[ 具體時候需要查詢 ]
BBED> set file 1 block 225
FILE# 1
BLOCK# 225
查詢資料內容 , 主要關注 kdbr
BBED> map
File: /u01/oracle/oradata/ora11g/system01.dbf (1)
Block: 225 Dba:0x004000e1
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes @0
struct ktbbh, 48 bytes @20
struct kdbh, 14 bytes @68
struct kdbt[1], 4 bytes @82
sb2 kdbr[31] @86 <=== 表示 31 條記錄 , 從 0 開始
ub1 freespace[3644] @148
ub1 rowdata[4396] @3792
ub4 tailchk @8188
檢視 30 號回滾段內容 ( 列舉其中一個 )
BBED> p *kdbr[30]
rowdata[0]
----------
ub1 rowdata[0] @3792 0x2c
BBED> x /rncnnnnnnn
rowdata[0] @3792
----------
flag@3792: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@3793: 0x01
cols@3794: 17
col 0[2] @3795: 30
col 1[21] @3798: _SYSSMU30_3379578723$
col 2[2] @3820: 1
col 3[2] @3823: 3
col 4[3] @3826: 432
col 5[1] @3830: 0
col 6[1] @3832: 0
col 7[1] @3834: 0
col 8[1] @3836: 0
col 9[1] @3838: 0
col 10[2] @3840: 5 <=== 修改前對應值 undo$.status$
col 11[2] @3843: 6
col 12[0] @3846: *NULL*
col 13[0] @3847: *NULL*
col 14[0] @3848: *NULL*
col 15[0] @3849: *NULL*
col 16[2] @3850: 2
BBED> x /r
rowdata[0] @3792
----------
flag@3792: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@3793: 0x01
cols@3794: 17
col 0[2] @3795: 0xc1 0x1f
col 1[21] @3798: 0x5f 0x53 0x59 0x53 0x53 0x4d 0x55 0x33 0x30 0x5f
0x33 0x33 0x37 0x39 0x35 0x37 0x38 0x37 0x32 0x33 0x24
col 2[2] @3820: 0xc1 0x02
col 3[2] @3823: 0xc1 0x04
col 4[3] @3826: 0xc2 0x05 0x21
col 5[1] @3830: 0x80
col 6[1] @3832: 0x80
col 7[1] @3834: 0x80
col 8[1] @3836: 0x80
col 9[1] @3838: 0x80
col 10[2] @3840: 0xc1 0x06 <=== 修改前 16 進位制值
col 11[2] @3843: 0xc1 0x07
col 12[0] @3846: *NULL*
col 13[0] @3847: *NULL*
col 14[0] @3848: *NULL*
col 15[0] @3849: *NULL*
col 16[2] @3850: 0xc1 0x03
修改回滾段狀態
BBED> m /x 02 offset 3842 <=== 注意修改為 02
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /u01/oracle/oradata/ora11g/system01.dbf (1)
Block: 225 Offsets: 3842 to 4353 Dba:0x004000e1
------------------------------------------------------------------------
0202c107 ffffffff 02c1032c 001102c1
<32 bytes per line>
BBED> p *kdbr[30]
rowdata[0]
----------
ub1 rowdata[0] @3792 0x2c
BBED> x /r
rowdata[0] @3792
----------
flag@3792: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@3793: 0x01
cols@3794: 17
col 0[2] @3795: 0xc1 0x1f
col 1[21] @3798: 0x5f 0x53 0x59 0x53 0x53 0x4d 0x55 0x33 0x30 0x5f
0x33 0x33 0x37 0x39 0x35 0x37 0x38 0x37 0x32 0x33 0x24
col 2[2] @3820: 0xc1 0x02
col 3[2] @3823: 0xc1 0x04
col 4[3] @3826: 0xc2 0x05 0x21
col 5[1] @3830: 0x80
col 6[1] @3832: 0x80
col 7[1] @3834: 0x80
col 8[1] @3836: 0x80
col 9[1] @3838: 0x80
col 10[2] @3840: 0xc1 0x02 <=== 修改後 16 進位制值
col 11[2] @3843: 0xc1 0x07
col 12[0] @3846: *NULL*
col 13[0] @3847: *NULL*
col 14[0] @3848: *NULL*
col 15[0] @3849: *NULL*
col 16[2] @3850: 0xc1 0x03
BBED> x /rncnnnnnnn
rowdata[0] @3792
----------
flag@3792: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@3793: 0x01
cols@3794: 17
col 0[2] @3795: 30
col 1[21] @3798: _SYSSMU30_3379578723$
col 2[2] @3820: 1
col 3[2] @3823: 3
col 4[3] @3826: 432
col 5[1] @3830: 0
col 6[1] @3832: 0
col 7[1] @3834: 0
col 8[1] @3836: 0
col 9[1] @3838: 0
col 10[2] @3840: 1 <=== 實際展示值 undo$.status$
col 11[2] @3843: 6
col 12[0] @3846: *NULL*
col 13[0] @3847: *NULL*
col 14[0] @3848: *NULL*
col 15[0] @3849: *NULL*
col 16[2] @3850: 2
1. 修改為 02( 表示的實際值比修改值大 1[1:DELETE,2:OFFLINE, 3:ONLINE,4:UNDEFINED,5:NEEDS RECOVERY,6:PARTLY AVAILABLE, 其他表示 :UNDEFINED])
2.Offset 需要在 10 列漂移量上 +2( 或者 11 列偏移量 -1)
修改驗證值
BBED> sum apply
Check value for File 1, Block 225:
current = 0x9708, required = 0x9708
補充說明
1) 透過 dbms_metadata.get_ddl 分析 DBA_ROLLBACK_SEGS 可以知道 seg$.status$ 表示含義
2, 'OFFLINE'
3, 'ONLINE',
4, 'UNDEFINED'
5, 'NEEDS RECOVERY',
6, 'PARTLY AVAILABLE'
other, 'UNDEFINED'
2) 該方法一般出現在使用隱含引數遮蔽回滾段無效之後使用 , 一般不到最後 , 不建議使用該方法 , 可能引起不可預知的後果
3) 使用該方法啟動資料庫後 , 需要手工刪除 seg$ 中被 bbed 處理過的回滾段
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23825935/viewspace-2917442/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20210817]如何通過bbed確定undo段.txt
- 28、undo_1_2(undo引數、undo段、事務)
- [20231008]bbed探究lob段.txt
- Unity——有限狀態機FSM修改Unity
- [20181204]bbed修改問題.txt
- unity 動態修改當前橫豎屏狀態Unity
- [20190104]bbed手動修改資料.txt
- 【UNDO】Oracle系統回滾段說明Oracle
- 修改狀態列與導航欄顏色
- POJ 2777 Count Color (線段樹+狀態壓縮)
- [20211021]關於undo段頭事務表.txt
- [20180604]在記憶體修改資料(bbed).txt記憶體
- 【BBED】使用BBED修改資料檔案SCN,使該檔案從offline轉變為online
- 深入解析:段頭塊損壞bbed異常恢復
- 27_bbed實戰(1)_修改資料內容
- [20181122]bbed人為修改事務提交標誌.txt
- verilog學習筆記——三段式狀態機筆記
- 線上直播原始碼,單獨修改狀態列顏色原始碼
- erp 專案訂單重構--修改訂單狀態部分
- [重慶思莊每日技術分享]-在自動UNDO管理情況下,如何手工增加undo段
- 深入UNDO回滾段,檢視爭用以及回滾段使用量的估算
- 【常用命令】 Git 還原修改檔案到原始狀態Git
- POJ 3468 【區間修改+區間查詢 樹狀陣列 | 線段樹 | 分塊】陣列
- 【BBED】BBED基礎知識
- 前端狀態管理與有限狀態機前端
- 【kingsql分享】使用BBED修改Oracle資料檔案頭推進SCNSQLOracle
- React 狀態管理:狀態與生命週期React
- 狀態管理
- 狀態碼
- 狀態機
- 狀態列
- Tree樹狀圖的動態增刪查改(下)修改與刪除
- netdxf中修改多段線線寬
- Homestead 虛擬機器修改網段虛擬機
- 直播軟體搭建,修改狀態列、導航條顏色及文字顏色
- State Processor API:如何讀取,寫入和修改 Flink 應用程式的狀態API
- 【BBED】Oracle bbed常用命令參考Oracle
- Vuex 單狀態庫 與 多模組狀態庫Vue