Oracle數(shù)據庫故障:
北京某國企服務器中部署的Oracle 11g R2數(shù)據庫被誤操作執(zhí)行了truncate table CM_CHECK_ITEM_HIS,表數(shù)據丟失,查詢該表時報錯,數(shù)據庫備份不可用,表數(shù)據無法查詢。
Truncate數(shù)據原理:表被Truncate后,ORACLE會在數(shù)據字典和SegmentHeader中更新表的DATA_OBJECT_ID,但是不會修改實際數(shù)據部分的塊。由于數(shù)據字典與段頭的DATA_OBJECT_ID與后續(xù)的數(shù)據塊中的并不一致,所以ORACLE服務進程在讀取全表數(shù)據時讀取不到已經被TRUNCATE但是實際未被覆蓋的數(shù)據。
Oracle數(shù)據庫恢復過程:
1、為了保護用戶的原始數(shù)據和更好演示truncate table的數(shù)據恢復過程,北亞企安數(shù)據恢復工程師構造了與用戶相同的故障環(huán)境。
用Scott用戶創(chuàng)建表emp1,連續(xù)復制emp表多次,總記錄數(shù)為:7340032條。truncate表emp1,沒有做其他任何操作。查詢該表,Oracle數(shù)據庫中該表的記錄為0條。
北亞企安數(shù)據恢復——Oracle數(shù)據恢復
注: Os:win server;Oracle數(shù)據庫版本:win_oracle_11.2.0.1_x64。
2、分析system表空間文件,找到truncate表的原始數(shù)據所在位置。
北亞企安數(shù)據恢復——Oracle數(shù)據恢復
3、解析truncate表所在的數(shù)據庫數(shù)據文件,找到truncate的數(shù)據。
4、將truncate的數(shù)據插入到數(shù)據庫中。
通過解析system01.dbf文件,找到truncate的數(shù)據所在的位置,找到被刪除的數(shù)據。解析表所在的數(shù)據文件,將truncate的數(shù)據插入到數(shù)據庫中。
在數(shù)據庫中,查找被truncate的表,發(fā)現(xiàn)數(shù)據回來了,備份數(shù)據。
北亞企安數(shù)據恢復——Oracle數(shù)據恢復
5、Exp導出scott用戶。
北亞企安數(shù)據恢復——Oracle數(shù)據恢復
審核編輯黃宇
-
數(shù)據恢復
+關注
關注
10文章
577瀏覽量
17489 -
數(shù)據庫
+關注
關注
7文章
3816瀏覽量
64465
發(fā)布評論請先 登錄
相關推薦
評論