【北亞資料恢復】oracle資料庫執行truncate table命令怎麼恢復資料?

北亞資料恢復發表於2022-03-07

誤操作導致資料庫資料丟失是最常見的資料庫故障。如果有最新備份的情況下,誤刪除資料後恢復備份資料即可。當然也

會有特殊狀況如:資料庫備份無法使用、還原報錯等。北亞資料恢復工程師為大家介紹的是一例oracle資料庫誤truncate

  table 後的資料庫恢復案例。如果您碰到誤操作導致資料丟失,備份又恰好無法使用的情況可以參考這個資料恢復方案。


Truncate工作原理:


正常情況下oracle會通過Segment Header及資料字典對錶的Data Object ID進行更新,具體到儲存資料部分的塊實際上

並未被修改。在oracle服務在進行全表資料讀取時,由於資料字典和Data Object ID與實際儲存的資料塊內容不一致,而

不會讀取到被truncate的內容記錄,這也就是資料庫恢復資料的關鍵。


資料庫資料恢復過程:


在本案例演示中,北亞資料恢復工程師構造了一個故障。


1、構造故障的軟硬體裝置如下:

Os:windows server;

資料庫版本:最新版本的64位的win_oracle。


2、Scott使用者建立表emp1,複製emp表,連續複製多次,總記錄數為:7340032條。隨後truncate表emp1。此時查詢

該表,資料庫中該表的記錄為0條。見下圖:


3、北亞資料恢復工程師開啟資料庫檔案的底層資料,對system表空間檔案進行分析,找到truncate表的原始資料所在的

位置,見下圖:



4、解析表所在的資料檔案資料庫,找到truncate的資料;


5、將truncate的資料庫插入到資料庫中。


資料恢復結果 :  


通過解析system01.dbf檔案,北亞資料恢復工程師找到truncate的資料所在的位置,找到被刪除的資料。解析表所在的數

據檔案,將truncate的資料插入到資料庫中。


在資料庫中,查詢被truncate,發現資料回來了,直接備份資料。見下圖:



Exp匯出scott使用者;見下圖:



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2865517/,如需轉載,請註明出處,否則將追究法律責任。

相關文章