AUL遇到特别的Oracle数据库, 恢复失败!

    今天AUL遇到了一个特别的数据, 虽然System表空间都是好的, 但却无法UNLOAD字典信息, 从而无法很好地恢复数据. 第一个特别的现象是, 数据库的第一个数据文件, SYSTEM表空间的第一个数据文件的RFILE#列不为1, 这是我第一次见到.

*  ts#  fno  rfn ver bsize     blocks filename
- ---- ---- ---- --- ----- ---------- -----------------
Y    0    1    4 02   8192     128000 system01.dbf
Y    0   10   10 02   8192      64000 system02.dbf

    另外AUL所需要读的几个系统表也有特别的地方, 我从DBA_OBJECTS中查这几个表的DATA_OBJECT_ID, 发现他们都很大. 不明白的这些系统字典表的Data Object ID是如何被搞得这么大的?

11412 COL$
11424 OBJ$
11412 TAB$
11416 USER$

    看来还是得从SYSTEM表空间数据文件的文件头取得BOOTSTRAP$的地址, 然后从BOOTSTRAP$中取得相关的系统表(USER$,OBJ$,TAB$,COL$)的信息进行处理.

    此数据库为ERP数据库, 好象是Oracle Finacials数据库, 难道和我们普通创建的数据库的不一样?

留言 (11)

数据库是从Oracle 7升上来的,那时跑了migrate.bsq, 所以这些对象的Object ID和Data Object ID都很大.

深,真的好像在自言自语啊

意料之中啊.

看来测试AUL要从0racle 7做起了。

应该象真正的引导程序那样,读取bootstrap内容,分析数据字典的相关信息!我现在已经看到四个写unload程序的哥们都是固定读取bootstrap区,并且数据字典对象的id、头块都是固定的,这是不对的!尤其是对Oracle EBS系统,安装时的脚本和DBA正常实施数据库的习惯很不一样,一测便知!

因为EBS系统后台的库都是从Oracle 7升上来的.

是个很奇怪的数据库,不过这个已经被我们恢复出来了。费了很长时间。DUL对这个数据库都不行,里面结构很奇怪,不仅仅上面的问题。

如果我在现场的话, 也是能恢复的, 后面搞清楚了, 只是远程操作太慢了.

我们并没有现场,呵呵

还是用这类工具搞的.

看来kh厉害阿,哈哈

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • Here's your change.
  • 这是找你的钱.
  • I'll go to pick up some odds and ends at the store.
  • 我要到商店买些零碎的东西.
  • Excuse me, would you tell me where I can get some butter?
  • 打扰一下, 您能告诉我黄油在哪儿卖吗?
  • May I have a look at the watch?
  • 我能看看这块表吗?
  • May I try it on?
  • 我能试试吗?