「數據庫數據恢復」Oracle數據庫誤truncate table的數據恢復
數據恢復環(huán)境:
Oracle 11g R2數據庫。
數據庫故障情況:
數據庫管理員誤truncate table CM_CHECK_ITEM_HIS,表數據丟失,業(yè)務查詢到該表時報錯。數據庫備份不可用,表數據無法查詢。
*Oracle數據庫小知識:
Truncate原理:ORACLE會在數據字典和Segment Header中更新表的Data Object ID,而實際數據部分的塊則不會做修改。由于數據字典與段頭的DATA_OBJECT_ID與后續(xù)的數據塊中的并不一致,所以ORACLE服務進程在讀取全表數據時不會讀取到已經被TRUNCATE的記錄。
Oracle數據庫數據恢復過程:

1、為保護用戶的數據,本文檔模擬構建與用戶生產環(huán)境相同的故障。Scott用戶創(chuàng)建表emp1,復制emp表,連續(xù)復制多次,總記錄數為:7340032條。truncate表emp1,之后沒有進行任何操作。查詢該表,數據庫中該表的記錄為0條。
北亞數據恢復——Oracle數據庫數據恢復
注: Os:win server 2008R2。數據庫版本:win_oracle_11.2.0.1_x64;
2、對system表空間文件進行分析,找到truncate表的原始數據所在的位置。
北亞數據恢復——Oracle數據庫數據恢復
3、解析表所在的數據文件,找到truncate的數據。
4、將truncate的數據插入到數據庫中。
總結:通過解析system01.dbf文件,北亞數據恢復工程師找到truncate的數據所在的位置,找到被刪除的數據。解析表所在的數據文件,將truncate的數據插入到數據庫中。
在數據庫中,查找被truncate,發(fā)現數據回來了,直接備份數據。
北亞數據恢復——Oracle數據庫數據恢復
5、Exp導出scott用戶;
下一篇:「瞬馬科技」硬盤格式化后能恢復數據嗎?