Oracle數據庫數據恢復環境:
北京某國企客戶Oracle 11g R2數據庫誤truncate table CM_CHECK_ITEM_HIS,表數據丟失,業務查詢到該表時報錯,數據庫的備份不可用,無法查詢表數據。
Oracle數據庫執行Truncate命令的原理:在執行Truncate命令后ORACLE會在數據字典和SegmentHeader中更新表的DataObjectID,但不會修改實際數據部分的塊。由于數據字典與段頭的DATA_OBJECT_ID與后續的數據塊中的并不一致,所以ORACLE服務進程在讀取全表數據時不會讀取到已經被TRUNCATE的記錄,但是實際數據未被覆蓋。
Oracle數據庫數據恢復過程:
1、為保護用戶數據和重現故障的解決過程,北亞企安數據恢復工程師重構了與用戶相同的故障:
使用Scott用戶創建表emp1,連續多次復制emp表,多次復制后的總記錄數為7340032條。truncate表emp1,之后沒有進行任何操作。查詢該表,數據庫中該表的記錄為0條。
北亞企安數據恢復——Oracle數據恢復
注: Os:win server 2008R2。數據庫版本:win_oracle_11.2.0.1_x64;
2、對system表空間文件進行分析,找到truncate表的原始數據所在位置。
北亞企安數據恢復——Oracle數據恢復
3、解析表所在的數據文件,找到被truncate的數據。
4、將truncate的數據插入到數據庫中。
5、在Oracle數據庫中查看被truncate的表,發現數據回來了,直接備份數據。
北亞企安數據恢復——Oracle數據恢復
6、Exp導出scott用戶。
北亞企安數據恢復——Oracle數據恢復
審核編輯 黃宇
-
服務器
+關注
關注
14文章
10253瀏覽量
91490 -
數據恢復
+關注
關注
10文章
712瀏覽量
18983
發布評論請先 登錄
MySQL數據庫備份恢復方式對比
深度解讀MySQL數據庫備份恢復策略
服務器數據恢復—硬盤指示燈亮黃燈,RAID5崩潰數據這樣恢復
Mysql數據恢復—Windows Server下MySQL(InnoDB)全表誤刪數據恢復案例
mysql數據恢復—mysql數據庫表被truncate的數據恢復案例
數據庫數據恢復—服務器異常斷電導致Oracle數據庫故障的數據恢復案例
MySQL數據庫是什么
分布式存儲數據恢復—虛擬機上hbase和hive數據庫數據恢復案例
服務器數據恢復—AIX小型機誤刪數據如何恢復!
數據庫數據恢復——MongoDB數據庫文件拷貝后服務無法啟動的數據恢復
Oracle數據恢復—Oracle數據庫誤truncate表的數據恢復案例
評論