冷备份能应用归档日志么?
恢复场景二:当前联机日志文件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才能打开数据库。恢复过程中如果无法将数据库恢复到一致状态,也可以尝试应用所有的当前联机日志。