28_bbed實戰(1)_delete操作恢復
下面的示例演示如何恢復已刪除的行。當Oracle中的行被刪除時,資料實際上並沒有被刪除。行被簡單地標記為已刪除,空閒空間計數器和指標也相應地進行了調整。行狀態儲存在行頭中,行頭佔用每一行的前幾個位元組。
行頭由Row Flag、Lock Byte(ITL entry) and Column Count組成。行頭由一個位元組大小的 the Row Flag開始,它持有一個位掩碼來顯示行狀態。位掩碼解碼如下:
因此,適合單個塊的列,沒有被連結、遷移或叢集表的一部分,也沒有被刪除,將具有以下屬性:
- Head of Row Piece
- First Data Piece
- Last Data Piece
因此行標記為32 + 8 + 4 = 44 or 0x2c.使用命令dump alter system dump datafile N block Y,
以上格式會顯示為 --H-FL--.例如,
SQL> alter system dump datafile 5 block 1551; System altered. Block header dump: 0x0140060f Object id on Block? Y seg/obj: 0x15720 csc: 0x00.111e90 itc: 2 flg: E typ: 1 - DATA brn: 0 bdba: 0x1400608 ver: 0x01 opc: 0 inc: 0 exflg: 0 Itl Xid Uba Flag Lck Scn/Fsc 0x01 0x0002.00a.0000039c 0x00c000fd.00c0.13 --U- 1 fsc 0x0000.00111e92 0x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000 bdba: 0x0140060f data_block_dump,data header at 0x7fa17e07f264 =============== tsiz: 0x1f98 hsiz: 0x14 pbl: 0x7fa17e07f264 76543210 flag=-------- ntab=1 nrow=1 frre=-1 fsbo=0x14 fseo=0x1f8d avsp=0x1f79 tosp=0x1f79 0xe:pti[0]nrow=1offs=0 0x12:pri[0]offs=0x1f8d block_row_dump: tab 0, row 0, @0x1f8d tl: 11 fb: --H-FL-- lb: 0x1 cc: 1 col 0: [ 7] 78 78 78 73 74 61 72 end_of_block_dump
當一行被刪除時,行標誌被更新,第5(
16)位被設定為高。這意味著對於一個典型的行,標誌值現在是32 + 16 +8 +4=60或0x3c。
在下面的示例中,我們從表中刪除orastar的記錄。然後使用find命令,查詢被刪除的行,並轉儲塊的內容:
BBED> find /c star File: /oradata/epmsn/hsql01.dbf (5) Block: 1551 Offsets: 8184 to 8191 Dba:0x0140060f ------------------------------------------------------------------------ 73746172 0106921e <32 bytes per line> BBED> p *kdbr[0] rowdata[0] ---------- ub1 rowdata[0] @8177 0x2c BBED> d /v dba 5,1551 offset 8177 File: /oradata/epmsn/hsql01.dbf (5) Block: 1551 Offsets: 8177 to 8191 Dba:0x0140060f ------------------------------------------------------- 2c010107 78787873 74617201 06921e l ,...xxxstar.... <16 bytes per line> BBED> d /v dba 5,1551 offset 8177 File: /oradata/epmsn/hsql01.dbf (5) Block: 1551 Offsets: 8177 to 8191 Dba:0x0140060f ------------------------------------------------------- 2c010107 78787873 74617201 06921e l ,...xxxstar.... <16 bytes per line> ************************************************刪除資料 SQL> select * from hsql.test4; CONS_NAME ------------------------------ xxxstar SQL> delete from hsql.test4; 1 row deleted. SQL> commit; Commit complete. SQL> select * from hsql.test4; no rows selected ********************************end 刪除資料 BBED> d /v dba 5,1551 offset 8177 File: /oradata/epmsn/hsql01.dbf (5) Block: 1551 Offsets: 8177 to 8191 Dba:0x0140060f ------------------------------------------------------- 3c020107 78787873 74617201 06a028 l <...xxxstar...( <16 bytes per line> BBED> modify /x 2c offset 8177 File: /oradata/epmsn/hsql01.dbf (5) Block: 1551 Offsets: 8177 to 8191 Dba:0x0140060f ------------------------------------------------------------------------ 2c020107 78787873 74617201 06a028 <32 bytes per line> BBED> sum dba 5,1551 apply Check value for File 5, Block 1551: current = 0x9ec9, required = 0x9ec9 *********************查詢un-delete的資料 SQL> select * from hsql.test4; no rows selected SQL> alter system flush buffer_cache; System altered. SQL> select * from hsql.test4; CONS_NAME ------------------------------ xxxstar SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31442014/viewspace-2682162/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle delete誤運算元據恢復(BBED)Oracledelete
- Shift + Delete刪除的檔案如何恢復?delete
- 【北亞資料恢復】誤操作導致雲伺服器表被truncate,表內資料被delete的資料恢復資料恢復伺服器delete
- Kubernetes備份恢復之velero實戰
- DFL資料恢復實際操作案例資料恢復
- Mysql update誤操作恢復MySql
- win10 shift delete刪除的檔案如何恢復Win10delete
- 基於 Vuex 的時移操作(撤回/恢復)實現Vue
- Mysql資料庫delete刪除後資料恢復報告MySql資料庫delete資料恢復
- MySQL備份與恢復操作解析MySql
- raid1資料恢復AI資料恢復
- RMAN恢復實踐
- 實戰:xfs檔案系統的備份和恢復
- redis cluster 叢集故障恢復操作思路Redis
- 伺服器資料恢復—雲伺服器mysql資料庫表資料被delete的資料恢復案例伺服器資料恢復MySql資料庫delete
- 【儲存資料恢復案例】Netapp誤操作刪除lun的資料恢復資料恢復APP
- NoSQL 資料庫案例實戰 -- MongoDB資料備份、恢復SQL資料庫MongoDB
- git reset --hard 操作後的資料恢復Git資料恢復
- 物理冷備份與恢復的操作命令
- MySQL5.7下面,誤操作導致的drop table db1.tb1; 的恢復方法:MySql
- 【北亞資料庫資料恢復】使用delete未加where子句刪除全表資料的Mysql資料庫資料恢復資料庫資料恢復deleteMySql
- JS物件操作(in、instanceof、delete)運算子JS物件delete
- [20181031]truncate IDL_UB1$恢復.txt
- innobackup遠端流式備份及其恢復主要操作
- 伺服器資料恢復—NTFS誤操作刪除/格式化的資料恢復案例伺服器資料恢復
- 【伺服器資料恢復】伺服器RAID0+1資料恢復案例伺服器資料恢復AI
- git操作實戰指南Git
- Go操作Redis實戰GoRedis
- 雲伺服器論壇搬家實戰操作及故障修復流程伺服器
- Mysql備份與恢復(1)---物理備份MySql
- 詳解NetAppFAS3220資料恢復操作方法APPS3資料恢復
- 恢復oracle的scott使用者初始狀態操作Oracle
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- OPPO K1怎麼恢復出廠設定?OPPO K1恢復出廠設定詳細教程
- OceanBase物理備份恢復實踐
- MySQL備份與恢復——實操MySql
- 表空間TSPITR恢復-實驗
- 【Oracle 恢復表空間】 實驗Oracle