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

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

SqlServer數據恢復—SqlServer數據庫數據恢復案例

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

oracle數據恢復—Oracle數據庫打開報錯的數據恢復案例

數據庫數據恢復—SQL Server數據庫出現823錯誤的數據恢復案例

評論