使用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【北亞資料恢復】誤操作導致雲伺服器表被truncate,表內資料被delete的資料恢復資料恢復伺服器delete
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【北亞資料恢復】oracle資料庫執行truncate table命令怎麼恢復資料?資料恢復Oracle資料庫
- 伺服器資料恢復—雲伺服器mysql資料庫表資料被delete的資料恢復案例伺服器資料恢復MySql資料庫delete
- 【北亞資料恢復】sqlserver資料庫被加密的資料恢復案例分享資料恢復SQLServer資料庫加密
- [20180627]truncate table的另類恢復.txt
- 【北亞資料庫資料恢復】使用delete未加where子句刪除全表資料的Mysql資料庫資料恢復資料庫資料恢復deleteMySql
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 資料庫資料恢復—SQLserver資料庫中勒索病毒被加密怎麼恢復資料?資料庫資料恢復SQLServer加密
- 【資料庫資料恢復】HP-UX系統ORACLE資料庫被誤刪除的資料恢復資料庫資料恢復UXOracle
- 【北亞資料恢復】誤刪除oracle表和誤刪除oracle表資料的資料恢復方法資料恢復Oracle
- 如何徹底擦除資料 防止資料被恢復?
- [20181212]truncate的另類恢復5.txt
- 伺服器資料恢復—EMC儲存資料卷被誤刪除如何恢復資料?伺服器資料恢復
- 【伺服器資料恢復】Raid5丟失磁碟後被重建的資料恢復案例伺服器資料恢復AI
- MySQL使用mysqldump+binlog完整恢復被刪除的資料庫(轉)MySql資料庫
- 使用myloader恢復資料教程
- 資料恢復:AMDU資料抽取恢復資料恢復
- [20181031]truncate IDL_UB1$恢復.txt
- 【伺服器資料恢復】NetApp儲存中lun被誤刪除的資料恢復過程伺服器資料恢復APP
- 【伺服器資料恢復】VMFS分割槽被刪除並格式化的資料恢復案例伺服器資料恢復
- 【伺服器資料恢復】XenServer虛擬機器被誤操作刪除的資料恢復案例伺服器資料恢復Server虛擬機
- 【北亞資料恢復】輸入錯誤命令導致MySQL資料庫資料被刪除的資料恢復案例資料恢復MySql資料庫
- [20180630]truncate table的另類恢復2.txt
- 【伺服器資料恢復】伺服器RAID0的RAID資訊被破壞的資料恢復案例伺服器資料恢復AI
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 【儲存資料恢復】H3C FlexStorage儲存卷被刪如何恢復資料?資料恢復Flex
- oracle資料庫災難挽救應急方案之DDL誤操作恢復(truncate)Oracle資料庫
- (Les16 執行資料庫恢復)-表空間恢復資料庫
- 【伺服器資料恢復】掉線硬碟重新上線同步資料被中斷後資料丟失的資料恢復伺服器資料恢復硬碟
- 7_Oracle truncate異常恢復之plsql修復OracleSQL
- 6_Oracle truncate異常恢復之bbed修復Oracle
- 【虛擬機器資料恢復】ESXI虛擬機器被誤還原快照的資料恢復案例虛擬機資料恢復
- Vsan資料恢復—Vsan資料恢復案例資料恢復
- 【Vsan資料恢復】Vsan資料恢復案例資料恢復
- [Oracle]Oracle資料庫資料被修改或者刪除恢復資料Oracle資料庫