今天自己测试了一下工具AUL,在truncated表之后恢复数据,在此记录下来。
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的数据还存在这里面
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
6.进入AUL所在目录(数据文件和AUL.EXE放在同一个目录下面),在命令行输入AUL.EXE,然后依次敲入:
UNLOAD TABLE USER$;
UNLOAD TABLE OBJ$;
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
最后注意一点,测试版AUL能恢复的数据最大为256M。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24757413/viewspace-682380/
,如需转载,请注明出处,否则将追究法律责任。