數據庫恢復環(huán)境:
操作系統:windows server;
數據庫故障&分析:
oracle數據庫誤truncate table,備份無法使用。
oracle數據庫誤操作導致數據丟失是比較常見的一種故障,如果有備份只需要恢復備份數據即可,我們中心數據恢復工程師接到的case多是無備份或者備份無法使用、還原報錯等。
首先介紹下Truncate工作原理:正常情況下oracle會通過Segment Header及數據字典對表更新Data Object ID,實際上存儲數據部分的塊并未被修改,如果被truncate,那么oracle在讀取全表數據時會因為數據字典和Data Object ID與實際存儲的數據塊內容不一致而不會讀取被truncate的內容記錄。
數據庫數據恢復過程:
本次案例演示中,北亞數據恢復工程師構造了一個相同環(huán)境下的類似故障。
1、用Scott用戶創(chuàng)建表emp1,連續(xù)多次復制emp表,然后truncate表emp1。此時查詢該表,數據庫中該表的記錄為0條。
北亞數據恢復——oracle數據庫數據恢復
2、基于oracle數據庫文件底層分析system表空間文件,找到truncate表的原始數據所在的位置。
北亞數據恢復——oracle數據庫數據恢復
3、解析表所在的數據文件數據庫,找到truncate的數據并將truncate的數據插入到數據庫中。通過解析system01.dbf文件,找到truncate的數據所在的位置,繼而找到被刪除的數據。解析表所在的數據文件,然后將truncate的數據插入到數據庫中。
4、在數據庫中查找被truncate的數據,結果發(fā)現被truncate的數據已經恢復,備份數據。
北亞數據恢復——oracle數據庫數據恢復
5、Exp導出scott用戶。
北亞數據恢復——oracle數據庫數據恢復
審核編輯:湯梓紅
-
WINDOWS
+關注
關注
3文章
3523瀏覽量
88330 -
數據恢復
+關注
關注
10文章
541瀏覽量
17347 -
數據庫
+關注
關注
7文章
3752瀏覽量
64237 -
Oracle
+關注
關注
2文章
286瀏覽量
35086
發(fā)布評論請先 登錄
相關推薦
評論