oracle數據庫誤執行truncate命令導致數據丟失是一種常見情況。通常情況下,oracle數據庫誤操作刪除數據只需要通過備份恢復數據即可。也會碰到一些特殊情況,例如數據庫備份無法使用或者還原報錯等。下面和大家分享一例oracle數據庫誤執行truncate命令導致數據丟失的數據庫數據恢復過程。
Tips:oracle數據庫Truncate命令工作原理:oracle通過SegmentHeader及數據字典對表的DataObjectID進行更新,實際上存儲數據部分的塊并未被修改。oracle服務再次讀取全表數據時就會因為DataObjectID與實際存儲的數據塊內容不一致導致被truncate的內容記錄無法被讀取。
oracle數據庫數據恢復過程:
北亞企安數據恢復工程師模擬出現問題的oracle數據庫環境:
操作系統:win server;
數據庫版本:win_oracle_x64;
1、使用Scott用戶創建表emp1,復制emp表,連續復制多次。truncate表emp1。此時查詢該表,數據庫中該表的記錄為0條。

北亞企安數據恢復—oracle數據恢復
2、打開數據庫文件的底層數據,分析system表空間文件。通過解析system01.dbf文件,找到被truncate表的原始數據所在的位置。

北亞企安數據恢復—oracle數據恢復
3、解析被truncate表所在的數據庫數據文件,找到被truncate的數據。
4、將被truncate的數據庫插入到數據庫中。
5、在數據庫中查找被truncate的表,發現數據回來了,備份數據。

北亞企安數據恢復—oracle數據恢復
Exp導出scott用戶。

北亞企安數據恢復—oracle數據恢復
審核編輯 黃宇
-
數據恢復
+關注
關注
10文章
718瀏覽量
19013 -
數據庫
+關注
關注
7文章
4059瀏覽量
68441 -
Oracle
+關注
關注
2文章
305瀏覽量
38472
發布評論請先 登錄
Oracle和NVIDIA合作加速向量搜索和企業數據處理
Oracle軟件在主機平臺的應用
MySQL數據庫備份恢復方式對比
深度解讀MySQL數據庫備份恢復策略
mysql數據恢復—mysql數據庫表被truncate的數據恢復案例
數據庫數據恢復—服務器異常斷電導致Oracle數據庫故障的數據恢復案例
服務器數據恢復—raid5陣列多塊硬盤離線導致raid崩潰的數據恢復
MySQL數據庫是什么
分布式存儲數據恢復—虛擬機上hbase和hive數據庫數據恢復案例
服務器數據恢復—AIX小型機誤刪數據如何恢復!
數據庫數據恢復——MongoDB數據庫文件拷貝后服務無法啟動的數據恢復
oracle數據恢復—oracle數據庫誤執行錯誤truncate命令如何恢復數據?
評論