【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?

北亞資料恢復發表於2022-12-27

資料庫恢復環境:

作業系統:windows server;

資料庫:win_oracle_x64。


資料庫故障&分析:

oracle資料庫誤truncate  table,備份無法使用。

oracle資料庫誤操作導致資料丟失是比較常見的一種故障,如果有備份只需要恢復備份資料即可,我們中心資料恢復工程師

接到的case多是無備份或者備份無法使用、還原報錯等。

首先介紹下Truncate工作原理:正常情況下oracle會透過Segment Header及資料字典對錶更新Data Object ID,實際上存

儲資料部分的塊並未被修改,如果被truncate,那麼oracle在讀取全表資料時會因為資料字典和Data Object ID與實際儲存

的資料塊內容不一致而不會讀取被truncate的內容記錄。


資料庫資料恢復過程:

本次案例演示中,北亞資料恢復工程師構造了一個相同環境下的類似故障。

1、用Scott使用者建立表emp1,連續多次複製emp表,然後truncate表emp1。此時查詢該表,資料庫中該表的記錄為0條。



2、基於oracle資料庫檔案底層分析system表空間檔案,找到truncate表的原始資料所在的位置。



3、解析表所在的資料檔案資料庫,找到truncate的資料並將truncate的資料插入到資料庫中。透過解析system01.dbf檔案

,找到truncate的資料所在的位置,繼而找到被刪除的資料。解析表所在的資料檔案,然後將truncate的資料插入到資料庫

中。


4、在資料庫中查詢被truncate的資料,結果發現被truncate的資料已經恢復,備份資料。



5、Exp匯出scott使用者。



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

相關文章