使用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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8520577/viewspace-1652634/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8520577/viewspace-1652634/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值