Oracle數(shù)據(jù)庫故障&分析:
北京某單位Oracle 11g R2數(shù)據(jù)庫誤執(zhí)行truncate table CM_CHECK_ITEM_HIS,表數(shù)據(jù)丟失,查詢該表時報錯。數(shù)據(jù)庫備份無法使用,表數(shù)據(jù)無法查詢。
Oracle數(shù)據(jù)庫Truncate數(shù)據(jù)的機理:執(zhí)行Truncate命令后,ORACLE數(shù)據(jù)庫會在數(shù)據(jù)字典和SegmentHeader中更新表的DataObjectID,但是不會修改實際數(shù)據(jù)部分的塊。Truncate數(shù)據(jù)會導致數(shù)據(jù)字典和SegmentHeader的DATA_OBJECT_ID與后續(xù)的數(shù)據(jù)塊中的不一致,ORACLE服務進程在讀取全表數(shù)據(jù)時就不會讀取到已經(jīng)被TRUNCATE的記錄,實際數(shù)據(jù)其實并沒有被覆蓋。
Oracle數(shù)據(jù)庫數(shù)據(jù)恢復過程:
為了保護用戶隱私和數(shù)據(jù)安全,我們沒有將恢復該oracle數(shù)據(jù)庫數(shù)據(jù)的過程演示出來,北亞企安數(shù)據(jù)恢復工程師還原了和該案例相同的oracle故障環(huán)境,用來演示如何恢復Oracle數(shù)據(jù)庫Truncate數(shù)據(jù)。
1、通過Scott用戶創(chuàng)建表emp1,連續(xù)復制emp表多次,總記錄數(shù)為7340032條。truncate表emp1,之后沒有進行任何增刪改的操作。經(jīng)過查詢,Oracle數(shù)據(jù)庫中表emp1的記錄為0條。
北亞企安數(shù)據(jù)恢復——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復
2、分析system表空間文件,找到truncate表(表emp1)的原始數(shù)據(jù)所在的位置。
北亞企安數(shù)據(jù)恢復——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復
3、解析表emp1所在的數(shù)據(jù)文件,找到truncate的數(shù)據(jù)。
4、將truncate的數(shù)據(jù)插入到數(shù)據(jù)庫中。
Oracle數(shù)據(jù)庫數(shù)據(jù)恢復結果:
解析system01.dbf文件,找到truncate的數(shù)據(jù)所在的位置,找到被刪除的數(shù)據(jù)。解析truncate表所在的數(shù)據(jù)文件,將truncate的數(shù)據(jù)插入到數(shù)據(jù)庫中。
這時在oracle數(shù)據(jù)庫中查找被truncate的表,發(fā)現(xiàn)數(shù)據(jù)已經(jīng)回來了,備份數(shù)據(jù)。
北亞企安數(shù)據(jù)恢復——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復
Exp導出scott用戶。
北亞企安數(shù)據(jù)恢復——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復
審核編輯 黃宇
-
數(shù)據(jù)恢復
+關注
關注
10文章
526瀏覽量
17312 -
數(shù)據(jù)庫
+關注
關注
7文章
3737瀏覽量
64173
發(fā)布評論請先 登錄
相關推薦
評論