修正AUL恢复ASSM表空间数据时的一个问题

    eagle_fan在Linux机器上装了一个Oracle 11g, 今天在测试AUL对Oracle 11g的支持时, 发现了一个ASSM表空间上的问题, 会导致恢复的记录数偏少, 原因是因为ASSM下每一个Extent的第一个数据块不一定是表的数据.

    在Free List管理的模式下, 一个Extent中只有两种块, 数据块和没有被使用的块, 并且数据块总在最低端, 为了程序性能, 当AUL检测到第一个非数据块的块时, 就不处理这个Extent了. 然尔在ASSM的情况下, 一个Extent中可能有三种块, bitmap块(type=32), 数据块以及没有使用的块. 当bitmap块在头部时, 就导致了整个Extent中的数据都被跳过了. 不知道有没有朋友遇到这个问题?

    通过SCAN EXTENT命令来生成Extent信息时, 则恢复是完全准确的. 这个问题仅限于ASM表空间及没有运行SCAN EXTENT的情况, 对于Free List管理的表空间则没有影响. 以往经历的正式数据恢复都不是ASSM类型的, 这也是这个问题没被早些发现的原因.

    对于11g还要进行更详细的测试, 支持11g是没有问题的, 因为11g中数据块的版本代码还是0xa2, 和10g中的一样. 欢迎你在11g上测试AUL工具, 发现一个Bug, 可奖励一个正式的许可证.

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • Do you read advertisements too?
  • 你也看广告吗?
  • I recommend to you Time and Newsweek. They are excellent.
  • 我向你推荐【时代】和【新闻周刊】, 它们很棒.
  • Fashion is a very popular magazine in America.
  • 【时尚】是美国很流行的杂志.
  • What's the circulation of this magazine?
  • 这杂志发行量怎么样?
  • Why don't you put an advertisement in the paper to sell that old car?
  • 为什么不在报上登广告卖旧车呢?