将完成AUL最后一个心愿, 支持Compress表

    通过二十分钟的发呆, 进入了研究Oracle压缩(Compress)表的大门, 随之而来的这几天, 研究得很顺利, AUL 5的测试版发布了. 知道Oracle DUL 10版本支持压缩表后, 心中一直就有一个结, 如今这结已经打开, 剩下的只是多做些测试去发现Bug并解决Bug了. 在对Oracle文件格式的研究中, 我找到了自已的DBA激情, 那就是研究Oracle的兴趣, 给平静的DBA生活增加了一些特有的颜色.

    由于程序设计当初没有考虑压缩表的需求, 这一次的变动很大, 处理一个数据块内记录的函数(如printDataRows函数), 已经全部重写. 因此在最近一段时间内, AUL 5还不适合作为正式数据恢复的版本, 除非你需要恢复Compress表. 当然欢迎大家来对AUL 5进行测试, 测试方法如下:

1, 创建一个压缩表T_COMPRESS
2, 用AUL 5进行恢复(恢复步骤)
3, 将恢复出来的记录装载到非压缩表T_NOCOMPRESS中
4, SELECT * FROM T_COMPRESS MINUS SELECT * FROM T_NOCOMPRESS
5, SELECT * FROM T_NOCOMPRESS MINUS SELECT * FROM T_COMPRESS

    理想的结果是第四步和第五步中的SQL都返回0条记录. 开发这个功能时, 用于测试的数据库版本是Oracle 10g, 欢迎大家在Oracle 9i和Oracle 11g上进行测试.

    Update: Linux版本下载, Solaris版本下载

留言 (2)

一个表被无意drop掉了,表被保存在单独的表空间(该表空间仅保存这一个表),表里面包含一个blob字段,数据文件在表被drop掉后没有做操作,这个表的数据能恢复吗?

我下载你的试用版本测试了一下,blob字段大部分只恢复前面的96k数据,不知道什么原因。

你这种情况是可以恢复的, 只是步骤有点复杂. 可以加我MSN聊聊.

发表留言: