恢复测试:全部online redo log文件损坏的恢复,但无法清空current的redo文件!
测试过程:
* shutdown immediate
* 删除全部redo log文件
* startup mount
* SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# ARC STATUS
-------------------- ---------- --- ----------------
1 1 35 YES INACTIVE
2 1 36 NO CURRENT
3 1 34 YES INACTIVE
SQL> alter database clear logfile group 1;
数据库已更改。
SQL> alter database clear logfile group 3;
数据库已更改。
SQL> alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 2
*
ERROR 位于第 1 行:
ORA-00313: 无法打开日志组 2 (线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: 'D:\ORACLE\ORADATA\KACA2U\REDO02.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
SQL> alter database clear logfile group 2;
alter database clear logfile group 2
*
ERROR 位于第 1 行:
ORA-00350: 日志 2 (线程 1) 中需要归档
ORA-00312: 联机日志 2 线程 1: 'D:\ORACLE\ORADATA\KACA2U\REDO02.LOG'
SQL> alter database add logfile member 'D:\oracle\oradata\kaca2u\redo02.log' to group 2;
alter database add logfile member 'D:\oracle\oradata\kaca2u\redo02.log' to group 2
*
ERROR 位于第 1 行:
ORA-01577: 无法添加日志文件'D:\oracle\oradata\kaca2u\redo02.log' - 文件已是数据库的一部分
SQL> alter database drop logfile member 'D:\ORACLE\ORADATA\KACA2U\REDO02.LOG';
alter database drop logfile member 'D:\ORACLE\ORADATA\KACA2U\REDO02.LOG'
*
ERROR 位于第 1 行:
ORA-00361: 无法删除最后一个日志成员 D:\ORACLE\ORADATA\KACA2U\REDO02.LOG (组 2)
SQL> alter database add logfile member 'D:\oracle\oradata\kaca2u\redo02-2.log' to group 2;
数据库已更改。
SQL> alter database drop logfile member 'D:\ORACLE\ORADATA\KACA2U\REDO02.LOG';
alter database drop logfile member 'D:\ORACLE\ORADATA\KACA2U\REDO02.LOG'
*
ERROR 位于第 1 行:
ORA-00362: 组成组 2 中的有效日志文件要求输入成员
ORA-01517: 日志成员: 'D:\ORACLE\ORADATA\KACA2U\REDO02.LOG'
* 用了很多方法,无法清除或加入current文件,最后用redo02-2.log改名成redo02.log,但启动后SQL> alter database open ;
alter database open
*
ERROR 位于第 1 行:
ORA-03113: 通信通道的文件结束