使用ODU恢復被truncate表的資料
ODU是國內Oracle資料庫大牛老熊的一個資料恢復工具。下載了一個windows版本,玩了一下恢復被truncate表的資料
建立測試用的表空間:
create tablespace mytbs datafile 'C:\ORACLE\ORADATA\ORCL\mytbs.dbf' size 10m autoextend off;
建立測試表以及資料:
create table test_recovery tablespace mytbs as
select rownum rn, dbms_random.value(1, 200000) col from dual connect by rownum <= 100;
將表truncate:
truncate table test_recovery;
觸發檢查點,將資料寫入資料檔案:
alter system checkpoint;
將表空間offline
alter tablespace mytbs offline;
將system表空間資料檔案以及測試所用表空間資料檔案拷貝至ODU的data目錄
以下是ODU的control.txt檔案的內容:
#ts #fno #rfno filename block_size bigfile
0 1 1 C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF 8192
5 2 10 C:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF 8192
1 3 3 C:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF 8192
6 4 4 C:\ORACLE\ORADATA\ORCL\MYTBS.DBF 8192
2 5 5 C:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF 8192
4 6 6 C:\ORACLE\ORADATA\ORCL\USERS01.DBF 8192
這裡的資訊,可以查詢v$datafile檢視
開啟odu.exe
unload dict
--資料字典相關
scan extent tablespace 6
unload table sys.test_recovery object auto
ODU> scan extent tablespace 6
scan extent start: 2015-05-13 14:23:10
scanning extent...
scanning extent finished.
scan extent completed: 2015-05-13 14:23:10
ODU> unload table sys.test_recovery object auto
Auto mode truncated table.
Unloading table: TEST_RECOVERY,object ID: 93118
Unloading segment,storage(Obj#=93118 DataObj#=93118 TS#=6 File#=4 Block#=130 Clu
ster=0)
100 rows unloaded
之後,資料會被生成在data資料夾之下,可以用sqlldr匯入
sqlldr匯入:
sqlldr userid='sys/sys as sysdba' control=SYS_TEST_RECOVERY.ctl
恢復完成
參考:
http://www.laoxiong.net/odu_recover_truncated_table.html
http://blog.csdn.net/tianlesoftware/article/details/6775394
建立測試用的表空間:
create tablespace mytbs datafile 'C:\ORACLE\ORADATA\ORCL\mytbs.dbf' size 10m autoextend off;
建立測試表以及資料:
create table test_recovery tablespace mytbs as
select rownum rn, dbms_random.value(1, 200000) col from dual connect by rownum <= 100;
將表truncate:
truncate table test_recovery;
觸發檢查點,將資料寫入資料檔案:
alter system checkpoint;
將表空間offline
alter tablespace mytbs offline;
將system表空間資料檔案以及測試所用表空間資料檔案拷貝至ODU的data目錄
以下是ODU的control.txt檔案的內容:
#ts #fno #rfno filename block_size bigfile
0 1 1 C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF 8192
5 2 10 C:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF 8192
1 3 3 C:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF 8192
6 4 4 C:\ORACLE\ORADATA\ORCL\MYTBS.DBF 8192
2 5 5 C:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF 8192
4 6 6 C:\ORACLE\ORADATA\ORCL\USERS01.DBF 8192
這裡的資訊,可以查詢v$datafile檢視
開啟odu.exe
unload dict
--資料字典相關
scan extent tablespace 6
unload table sys.test_recovery object auto
ODU> scan extent tablespace 6
scan extent start: 2015-05-13 14:23:10
scanning extent...
scanning extent finished.
scan extent completed: 2015-05-13 14:23:10
ODU> unload table sys.test_recovery object auto
Auto mode truncated table.
Unloading table: TEST_RECOVERY,object ID: 93118
Unloading segment,storage(Obj#=93118 DataObj#=93118 TS#=6 File#=4 Block#=130 Clu
ster=0)
100 rows unloaded
之後,資料會被生成在data資料夾之下,可以用sqlldr匯入
sqlldr匯入:
sqlldr userid='sys/sys as sysdba' control=SYS_TEST_RECOVERY.ctl
恢復完成
參考:
http://www.laoxiong.net/odu_recover_truncated_table.html
http://blog.csdn.net/tianlesoftware/article/details/6775394
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-1652634/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用ODU恢復oracle被truncate的表資料Oracle
- Oracle Truncate表恢復(ODU)Oracle
- Oracle中truncate table後的資料恢復(Oracle資料恢復工具-ODU)Oracle資料恢復
- 恢復被執行truncate table的表資料
- 使用hellodba的工具恢復truncate表的資料
- 【北亞資料恢復】誤操作導致雲伺服器表被truncate,表內資料被delete的資料恢復資料恢復伺服器delete
- Oracle Delete表恢復(ODU)Oracledelete
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- TRUNCATE資料恢復資料恢復
- Oracle Drop表(purge)恢復(ODU)Oracle
- 表資料被誤操作的恢復
- RMAN恢復單個表空間或被DROP/DELETE/TRUNCATE的表delete
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- oracle logminer恢復truncate table的資料Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- truncate表後恢復方法總結
- truncate table 誤刪除資料後的恢復
- 【北亞資料恢復】oracle資料庫執行truncate table命令怎麼恢復資料?資料恢復Oracle資料庫
- 伺服器資料恢復—雲伺服器mysql資料庫表資料被delete的資料恢復案例伺服器資料恢復MySql資料庫delete
- 使用logmnr分析歸檔日誌恢復被drop掉的資料表
- oracle恢復表delete/truncate/drop的方法總結Oracledelete
- 一次truncate table 後的資料恢復[轉帖]資料恢復
- 【北亞資料恢復】sqlserver資料庫被加密的資料恢復案例分享資料恢復SQLServer資料庫加密
- 使用Flashback Transaction方法來恢復資料表資料
- logminer來恢復在表DDL之前被刪除的資料
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- rman恢復資料檔案 恢復表空間
- 資料庫資料恢復—SQLserver資料庫中勒索病毒被加密怎麼恢復資料?資料庫資料恢復SQLServer加密
- 【北亞資料庫資料恢復】使用delete未加where子句刪除全表資料的Mysql資料庫資料恢復資料庫資料恢復deleteMySql
- 【備份恢復】不使用rman工具就能恢復被rm刪除的資料檔案案例
- 使用恢復建議恢復資料庫資料庫
- 循序漸進oracle第8章:Oracle的閃回特性之恢復truncate刪除表的資料Oracle
- 【資料庫資料恢復】HP-UX系統ORACLE資料庫被誤刪除的資料恢復資料庫資料恢復UXOracle
- 恢復 SQL 被注入後的資料程式碼SQL
- 如何徹底擦除資料 防止資料被恢復?
- 【北亞資料恢復】誤刪除oracle表和誤刪除oracle表資料的資料恢復方法資料恢復Oracle
- 伺服器資料恢復—EMC儲存資料卷被誤刪除如何恢復資料?伺服器資料恢復