Oracle數(shù)據(jù)庫故障:
北京某公司Oracle數(shù)據(jù)庫誤truncate table CM_CHECK_ITEM_HIS,表數(shù)據(jù)丟失,業(yè)務查詢到該表時報錯,數(shù)據(jù)庫備份也不可用,表數(shù)據(jù)無法查詢。
ORACLE數(shù)據(jù)庫Truncate原理:ORACLE會在數(shù)據(jù)字典和SegmentHeader中更新表的DataObjectID,實際數(shù)據(jù)部分的塊不會做修改。由于數(shù)據(jù)字典與段頭的DATA_OBJECT_ID與后續(xù)的數(shù)據(jù)塊中的并不一致,所以ORACLE服務進程在讀取全表數(shù)據(jù)時不會讀取到已經(jīng)被TRUNCATE的記錄(實際仍未被覆蓋)。
Oracle數(shù)據(jù)庫數(shù)據(jù)恢復過程:
1、為了保護用戶原Oracle數(shù)據(jù)庫中的數(shù)據(jù)不被二次破壞,我們通過構(gòu)造與用戶相同的環(huán)境和相同的故障對本案例的Oracle數(shù)據(jù)庫數(shù)據(jù)恢復的過程進行講解。
構(gòu)造環(huán)境: 用Scott用戶創(chuàng)建表emp1,多次連續(xù)復制emp表,總記錄數(shù)為7340032條。只做truncate表emp1的操作,查詢該表,Oracle數(shù)據(jù)庫中該表的記錄為0條。
北亞數(shù)據(jù)恢復——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復
2、通過對system表空間文件的分析,找到truncate數(shù)據(jù)表的原始數(shù)據(jù)所在的位置。
北亞數(shù)據(jù)恢復——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復
3、解析truncate數(shù)據(jù)表所在的數(shù)據(jù)文件,找到truncate的數(shù)據(jù)。
4、將truncate的數(shù)據(jù)表插入到數(shù)據(jù)庫中。
5、通過解析system01.dbf文件,北亞數(shù)據(jù)恢復工程師找到truncate的數(shù)據(jù)所在的位置,找到被刪除的數(shù)據(jù)。解析truncate數(shù)據(jù)表所在的數(shù)據(jù)文件,將truncate的數(shù)據(jù)插入到數(shù)據(jù)庫中。在Oracle數(shù)據(jù)庫中查找被truncate的數(shù)據(jù)表,發(fā)現(xiàn)數(shù)據(jù)已經(jīng)回來了,備份數(shù)據(jù)。
北亞數(shù)據(jù)恢復——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復
6、Exp導出scott用戶。
北亞數(shù)據(jù)恢復——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復
審核編輯 黃昊宇
-
數(shù)據(jù)恢復
+關注
關注
10文章
649瀏覽量
18142 -
數(shù)據(jù)庫
+關注
關注
7文章
3926瀏覽量
66200
發(fā)布評論請先 登錄
數(shù)據(jù)庫數(shù)據(jù)恢復—MongoDB數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復案例

oracle數(shù)據(jù)恢復—oracle數(shù)據(jù)庫誤執(zhí)行錯誤truncate命令如何恢復數(shù)據(jù)?

數(shù)據(jù)庫數(shù)據(jù)恢復——MongoDB數(shù)據(jù)庫文件拷貝后服務無法啟動的數(shù)據(jù)恢復

數(shù)據(jù)庫數(shù)據(jù)恢復—SQL Server附加數(shù)據(jù)庫提示“錯誤 823”的數(shù)據(jù)恢復案例

SqlServer數(shù)據(jù)恢復—SqlServer數(shù)據(jù)庫數(shù)據(jù)恢復案例

數(shù)據(jù)庫數(shù)據(jù)恢復—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復流程

數(shù)據(jù)庫數(shù)據(jù)恢復—ORACLE常見故障的數(shù)據(jù)恢復可行性分析
數(shù)據(jù)庫數(shù)據(jù)恢復—通過拼接數(shù)據(jù)庫碎片恢復SQLserver數(shù)據(jù)庫

數(shù)據(jù)庫數(shù)據(jù)恢復—Oracle ASM實例無法掛載的數(shù)據(jù)恢復案例

oracle數(shù)據(jù)恢復—Oracle數(shù)據(jù)庫打開報錯的數(shù)據(jù)恢復案例

Oracle數(shù)據(jù)恢復—異常斷電后Oracle數(shù)據(jù)庫啟庫報錯的數(shù)據(jù)恢復案例

數(shù)據(jù)庫數(shù)據(jù)恢復—Oracle數(shù)據(jù)庫文件system01.dbf損壞的數(shù)據(jù)恢復案例

數(shù)據(jù)庫數(shù)據(jù)恢復—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復案例

Oracle數(shù)據(jù)恢復—Oracle數(shù)據(jù)庫delete刪除的數(shù)據(jù)恢復方法
數(shù)據(jù)庫數(shù)據(jù)恢復—SqlServer數(shù)據(jù)庫底層File Record被截斷為0的數(shù)據(jù)恢復案例

評論