技术开发 频道

冷备份能应用归档日志么?

  恢复场景二:当前联机日志文件ok,控制文件,数据文件全部损坏

  恢复方法一
  1.restore冷备份中的控制文件和数据文件

  2.启动数据库
  SQL> startup
  ORACLE 例程已经启动。

  Total System Global Area 142606336 bytes
  Fixed Size 1247732 bytes
  Variable Size 83887628 bytes
  Database Buffers 50331648 bytes
  Redo Buffers 7139328 bytes
  数据库装载完毕。
  ORA-00314: 日志 1 (用于线程 1) 要求的序号 与 不匹配
  ORA-00312: 联机日志 1 线程 1: 'E:/ORACLE/ORA10/ORADATA/NING/REDO01.LOG'

  3.使用recover database using backup controlfile恢复数据库
  SQL> recover database using backup controlfile;
  ORA-00279: 更改 301820 (在 11/29/2006 10:16:00 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00133_0607342148.001
  ORA-00280: 更改 301820 (用于线程 1) 在序列 #133 中

  指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
  auto
  ORA-00279: 更改 301821 (在 11/29/2006 10:26:15 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00134_0607342148.001
  ORA-00280: 更改 301821 (用于线程 1) 在序列 #134 中
  ORA-00278: 此恢复不再需要日志文件 'E:/ORACLE/ARCH/NING/ARC00133_0607342148.001'

  ORA-00279: 更改 302089 (在 11/29/2006 10:27:30 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00135_0607342148.001
  ORA-00280: 更改 302089 (用于线程 1) 在序列 #135 中
  ORA-00278: 此恢复不再需要日志文件 'E:/ORACLE/ARCH/NING/ARC00134_0607342148.001'

  ORA-00279: 更改 302091 (在 11/29/2006 10:27:31 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00136_0607342148.001
  ORA-00280: 更改 302091 (用于线程 1) 在序列 #136 中
  ORA-00278: 此恢复不再需要日志文件 'E:/ORACLE/ARCH/NING/ARC00135_0607342148.001'

  ORA-00279: 更改 302094 (在 11/29/2006 10:27:36 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00137_0607342148.001
  ORA-00280: 更改 302094 (用于线程 1) 在序列 #137 中
  ORA-00278: 此恢复不再需要日志文件 'E:/ORACLE/ARCH/NING/ARC00136_0607342148.001'

  ORA-00279: 更改 302098 (在 11/29/2006 10:27:45 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00138_0607342148.001
  ORA-00280: 更改 302098 (用于线程 1) 在序列 #138 中
  ORA-00278: 此恢复不再需要日志文件 'E:/ORACLE/ARCH/NING/ARC00137_0607342148.001'

  ORA-00279: 更改 302227 (在 11/29/2006 10:37:31 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00139_0607342148.001
  ORA-00280: 更改 302227 (用于线程 1) 在序列 #139 中
  ORA-00278: 此恢复不再需要日志文件 'E:/ORACLE/ARCH/NING/ARC00138_0607342148.001'

  ORA-00308: 无法打开归档日志 'E:/ORACLE/ARCH/NING/ARC00139_0607342148.001'
  ORA-27041: 无法打开文件
  OSD-04002: ??????????
  O/S-Error: (OS 2) The system cannot find the file specified.

  SQL> alter database open resetlogs;
  alter database open resetlogs
  *
  第 1 行出现错误:
  ORA-01113: 文件 1 需要介质恢复
  ORA-01110: 数据文件 1: 'E:/ORACLE/ORA10/ORADATA/NING/SYSTEM01.DBF'

  SQL> recover database using backup controlfile until cancel;
  ORA-00279: 更改 302227 (在 11/29/2006 10:37:31 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00139_0607342148.001
  ORA-00280: 更改 302227 (用于线程 1) 在序列 #139 中

  指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
  cancel
  介质恢复已取消。

  4.打开数据库并检查测试数据
  SQL> alter database open;
  alter database open
  *
  第 1 行出现错误:
  ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

  SQL> alter database open noresetlogs;
  alter database open noresetlogs
  *
  第 1 行出现错误:
  ORA-01588: 要打开数据库则必须使用 RESETLOGS 选项

  SQL> alter database open resetlogs;

  数据库已更改。

  SQL> select * from tt;

  ID NAME
  ---------- --------------------
  1 a

  可以看到,由于控制文件是老的控制文件,和当前联机日志文件的信息不同步,恢复完后需要使用resetlogs才能打开数据库。恢复过程中如果无法将数据库恢复到一致状态,也可以尝试应用所有的当前联机日志。

0
相关文章