今天自己测试了一下工具AUL,在truncated表之后恢复数据,在此记录下来。
在AUL官方网站有详细步骤
http://www.dbatools.net/mydul/aul-example.html
1.建立测试用的表空间TEST,建表TEST,插入1000条数据。
2.TRUNCATE TABLE TEST后,TEST表数据全部清空。
3.在Oracle目录中,我本地是D:\oracle_db\product\10.2.0\oradata\orcl,拷贝出来两个文件
SYSTEM01.DBF--系统表空间数据文件,需要用它来确定哪个用户,哪个表
TEST01.DBF--这个是前面建的测试表空间TEST的数据文件,表TEST的数据还存在这里面
4.我们需要工具AUL来恢复TRUNCATE掉的数据,下载地址:
http://www.dbatools.net/software/aul5.zip
5.新建文件db10g.cfg,这个文件是为了告诉AUL具体的数据文件在哪里,内容为:
# FILE# RFILE# NAME
0 0 D:\oracle_db\product\10.2.0\oradata\orcl\SYSTEM01.DBF
0 0 D:\oracle_db\product\10.2.0\oradata\orcl\TEST1.DBF
0 0 D:\oracle_db\product\10.2.0\oradata\orcl\SYSTEM01.DBF
0 0 D:\oracle_db\product\10.2.0\oradata\orcl\TEST1.DBF
6.进入AUL所在目录(数据文件和AUL.EXE放在同一个目录下面),在命令行输入AUL.EXE,然后依次敲入:
UNLOAD TABLE USER$;
UNLOAD TABLE OBJ$;
UNLOAD TABLE TAB$;
UNLOAD TABLE TAB$;
UNLOAD TABLE COL$;
这样在目录下面会生成4个文件
7.然后就是你需要恢复哪个表了,我的是
unload table sunwei.test to test.txt(sunwei是数据库用户名,test是表名,test.txt是数据文件)
8,这样会在目录下面生成3个文件,分别是test.txt TEST_sqlldr.ctl TEST_syntax.sql
9,打开命令行敲入:sqlldr
sunwei/sunwei@//192.168.110.218:1521/orcl control=TEST_sqlldr.ctl,大功告成,再到数据库里查询,表test的数据已经恢复。
最后注意一点,测试版AUL能恢复的数据最大为256M。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24757413/viewspace-682380/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24757413/viewspace-682380/