热心网友上传了一个Oracle 11g的数据文件, 我就用AUL去测试了一下AUL能不能恢复11g的数据文件, 解开压缩文件后, 创建一个配置文件db.txt, 包括如下行:
1 1 users01.dbf
接下来运行AUL, 并打开配置文件, 用ORADUMP命令查看一下文件头的属性, 从ver的值可以看出数据库是11g的(十六进制0x0b等于十进制11), 而从fmt的值来看, 0xa2表示还是10g的格式, 0xa等于十进制的10. 如下所示:
AUL> open db.txt
* ts# fno rfn ver bsize blocks filename
- ---- ---- ---- --- ----- ---------- -----------------------
Y 4 4 4 a2 8192 640 users01.dbf
AUL> oradump file 4 block 1
RDBA=0x01000001(4/1),type=0x0b,fmt=0xa2,seq=0x01,flag=0x04
DBID=0x44814ad1=1149323985,db=ORCL,ts#=4,ts=USERS,file#=4, blksiz=8192, blks=640, ver=0x0b100000, fzy=--O-
由于没有给我SYSTEM文件, 故当作没有SYSTEM的情况来恢复. 运行"SCAN TABLE TO scan_11g.txt"命令, 然后从生成的scan_11g.txt文件中找到如相UNLOAD语句.
CMD:UNLOAD OBJECT 68415 CLUSTER 0 COLUMN NUMBER VARCHAR VARCHAR TO OBJD0000068415C000.txt;
CMD:UNLOAD OBJECT 68417 CLUSTER 0 COLUMN NUMBER VARCHAR VARCHAR NUMBER DATE NUMBER NUMBER NUMBER TO OBJD0000068417C000.txt;
CMD:UNLOAD OBJECT 68420 CLUSTER 0 COLUMN NUMBER NUMBER NUMBER TO OBJD0000068420C000.txt;
CMD:UNLOAD OBJECT 70052 CLUSTER 0 COLUMN NUMBER VARCHAR VARCHAR NUMBER DATE NUMBER NUMBER NUMBER TO OBJD0000070052C000.txt;
我仔细看了一下, 列的类型还猜得比较准, 可以直接跑这些命令来恢复其中的数据. 当然等11g出来后, 还得进去更多的测试, 才能正式宣布支持Oracle 11g.
留言 (1)
支持ANYSQL,支持AUL
Posted by donnieyen | Jun 28, 2007 3:47 PM