在具有开发 Oracle 11.2.0.3/linux 数据库的客户站点
断电和崩溃 - 没有存档日志模式 - 没有备份 - 不知道这是怎么运行的
从 v$datafile_header 选择文件#、substr(name,1,70) 名称、恢复、状态、模糊、checkpoint_change#、checkpoint_time、resetlogs_change#、resetlogs_time;
FILE# NAME REC STATUS FUZ
CHECKPOINT_CHANGE# CHECKPOINT_TIME RESETLOGS_CHANGE# RESETLOGS_TIME
1 /oracle/oradata/orcl/system01.dbf NO ONLINE YES 4663440487 08-MAR-2018 02:57:17 945184 04-APR-2012 12:07:59
2 /oracle/oradata/orcl/sysaux01.dbf YES ONLINE YES 3759618229 21-DEC-2016 22:19:41 945184 04-APR-2012 12:07:59
11 /oracle/oradata/orcl/rmdata01.dbf YES ONLINE YES 3759618229 21-DEC-2016 22:19:41 945184 04-APR-2012 12:07:59
基本计划:
alter database datafile 2 offline drop;
alter database datafile 11 offline drop;
recover database ;
export/import
rebuild DB
不关心 sysaux,但是,我希望保留数据文件 11 中的任何内容。
我希望即使数据文件 11 处于错误状态也能强制打开数据库。
Oracle 表示,由于 SCN 非常陈旧,任何隐藏参数都无济于事。
您是否遇到过这种情况并成功恢复数据?
对于任何想知道这是如何解决的人......
Bobby Durrett 是正确的,Oracle 确实有能力从块中提取数据。
我联系了 Oracle ACS。他们派了一名高级顾问并使用 Data UnLoader 工具 (DUL),顺便说一句,这不是他们的产品,能够从损坏的块中提取数据。
基本上,您可以使用一些参数配置该工具并识别感兴趣的数据文件。如果系统数据文件存在,它会有很大帮助。您可以告诉它创建 SQL*Loader 或 dmp 文件。它将跳过任何损坏的块并移动到下一个块。数据文件是冷读的,所以不需要挂载或创建新实例或任何类似的东西。
警告:您得到的只是表 DDL 和数据。没有用户、约束、FK,所以您没有恢复数据库,只是恢复数据。
它工作得很好——在任何没有损坏的块上!