恢复acitve日志组有两种情况
- 一种是acitve日志组的其中一个成员损坏
- 一种是acitve日志组所有日志成员都损坏
- 使用rman恢复acitve日志组的其中一个成员损坏
sys@TEST1107> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- -------------
FIRST_TIME NEXT_CHANGE# NEXT_TIME
------------------ ------------ ------------------
1 1 22 52428800 512 2 NO CURRENT 1153754
06-NOV-13 2.8147E+14
2 1 20 52428800 512 2 YES INACTIVE 1132964
06-NOV-13 1153041 06-NOV-13
3 1 21 52428800 512 2 YES ACTIVE 1153041
06-NOV-13 1153754 06-NOV-13
sys@TEST1107> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------------------------------------- ---
3 ONLINE /u01/app/oracle/oradata/test1107/redo03.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01a.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02a.log NO
3 ONLINE /u01/app/oracle/oradata/test1107/redo03a.log NO
6 rows selected.
- 2. ACTIVE 组日志是第3组,OS下删除第三组的其中一个成员
[oracle@rtest ~]$ rm /u01/app/oracle/oradata/test1107/redo03.log
sys@TEST1107> shutdown abort
ORACLE instance shut down.
sys@TEST1107> startup
ORACLE instance started.
Total System Global Area 1269366784 bytes
Fixed Size 2227984 bytes
Variable Size 805306608 bytes
Database Buffers 452984832 bytes
Redo Buffers 8847360 bytes
Database mounted.
Database opened.
Errors in file /u01/app/oracle/diag/rdbms/test1107/test1107/trace/test1107_lgwr_23973.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/test1107/redo03.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
- 5、查看数据库打开后的日志组以及日志成员状态,发现刚才删掉的那个日志成员的状态为INVALID 。
sys@TEST1107> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- -------------
FIRST_TIME NEXT_CHANGE# NEXT_TIME
------------------ ------------ ------------------
1 1 22 52428800 512 2 YES INACTIVE 1153754
06-NOV-13 1174308 06-NOV-13
2 1 23 52428800 512 2 NO CURRENT 1174308
06-NOV-13 2.8147E+14
3 1 21 52428800 512 2 YES INACTIVE 1153041
06-NOV-13 1153754 06-NOV-13
sys@TEST1107> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------------------------------------- ---
3
INVALID
ONLINE /u01/app/oracle/oradata/test1107/redo03.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01a.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02a.log NO
3 ONLINE /u01/app/oracle/oradata/test1107/redo03a.log NO
6 rows selected.
sys@TEST1107> alter database drop logfile member '/u01/app/oracle/oradata/test1107/redo03.log';
Database altered.
sys@TEST1107> alter database add logfile member '/u01/app/oracle/oradata/test1107/redo03.log' to group 3;
Database altered.
- 7、再次查看日志组以及日志组成员,发现还是INVALID状态。
sys@TEST1107> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- -------------
FIRST_TIME NEXT_CHANGE# NEXT_TIME
------------------ ------------ ------------------
1 1 22 52428800 512 2 YES INACTIVE 1153754
06-NOV-13 1174308 06-NOV-13
2 1 23 52428800 512 2 NO CURRENT 1174308
06-NOV-13 2.8147E+14
3 1 21 52428800 512 2 YES INACTIVE 1153041
06-NOV-13 1153754 06-NOV-13
sys@TEST1107> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------------------------------------- ---
3
INVALID
ONLINE /u01/app/oracle/oradata/test1107/redo03.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01a.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02a.log NO
3 ONLINE /u01/app/oracle/oradata/test1107/redo03a.log NO
6 rows selected.
- 8、切换日志,使其强制使用,再次查看,日志成员已恢复正常。
sys@TEST1107>
sys@TEST1107> alter system switch logfile;
System altered.
sys@TEST1107> /
System altered.
sys@TEST1107> /
System altered.
sys@TEST1107> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------------------------------------- ---
3 ONLINE /u01/app/oracle/oradata/test1107/redo03.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01a.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02a.log NO
3 ONLINE /u01/app/oracle/oradata/test1107/redo03a.log NO
6 rows selected.
sys@TEST1107> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- -------------
FIRST_TIME NEXT_CHANGE# NEXT_TIME
------------------ ------------ ------------------
1 1 25 52428800 512 2 YES
INACTIVE
1175094
06-NOV-13 1175097 06-NOV-13
2 1 26 52428800 512 2 YES
ACTIVE 1175097
06-NOV-13 1178906 06-NOV-13
3 1 27 52428800 512 2 NO CURRENT 1178906
06-NOV-13 2.8147E+14
sys@TEST1107> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------------------------------------- ---
3 ONLINE /u01/app/oracle/oradata/test1107/redo03.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01a.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02a.log NO
3 ONLINE /u01/app/oracle/oradata/test1107/redo03a.log NO
6 rows selected.
[oracle@rtest ~]$ rm /u01/app/oracle/oradata/test1107/redo02.log
[oracle@rtest ~]$ rm /u01/app/oracle/oradata/test1107/redo02a.log
sys@TEST1107> shutdown abort
ORACLE instance shut down.
sys@TEST1107> startup
ORACLE instance started.
Total System Global Area 1269366784 bytes
Fixed Size 2227984 bytes
Variable Size 805306608 bytes
Database Buffers 452984832 bytes
Redo Buffers 8847360 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 1466
Session ID: 96 Serial number: 3
Wed Nov 06 11:43:25 2013
ARC3 started with pid=23, OS id=1610
ARC1: Archival started
ARC2: Archival started
ARC2: Becoming the 'no FAL' ARCH
ARC2: Becoming the 'no SRL' ARCH
ARC1: Becoming the heartbeat ARCH
Errors in file /u01/app/oracle/diag/rdbms/test1107/test1107/trace/test1107_lgwr_1565.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/test1107/redo02a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/test1107/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/test1107/test1107/trace/test1107_lgwr_1565.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/test1107/redo02a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/test1107/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/test1107/test1107/trace/test1107_ora_1582.trc:
ORA-00313: open failed for members of log group 1 of thread
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/test1107/redo02.log'
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/test1107/redo02a.log'
USER (ospid: 1582): terminating the instance due to error 313
System state dump requested by (instance=1, osid=1582), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/test1107/test1107/trace/test1107_diag_1555.trc
Dumping diagnostic data in directory=[cdmp_20131106114326], requested by (instance=1, osid=1582), summary=[abnormal instance termination].
Instance terminated by USER, pid = 1582
sys@TEST1107> shutdown abort
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
sys@TEST1107> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@rtest ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.3.0 Production on Wed Nov 6 11:54:02 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
idle> shutdown abort
ORACLE instance shut down.
idle> startup mount
ORACLE instance started.
Total System Global Area 1269366784 bytes
Fixed Size 2227984 bytes
Variable Size 805306608 bytes
Database Buffers 452984832 bytes
Redo Buffers 8847360 bytes
Database mounted.
idle> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
System altered.
idle> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
idle> startup mount
ORACLE instance started.
Total System Global Area 1269366784 bytes
Fixed Size 2227984 bytes
Variable Size 805306608 bytes
Database Buffers 452984832 bytes
Redo Buffers 8847360 bytes
Database mounted.
idle> recover database until cancel;
Media recovery complete.
idle> alter database open resetlogs;
Database altered.
sys@TEST1107> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- -------------
FIRST_TIME NEXT_CHANGE# NEXT_TIME
------------------ ------------ ------------------
1 1 1 52428800 512 2 NO CURRENT 1199286
06-NOV-13 2.8147E+14
2 1 0 52428800 512 2 YES UNUSED 0
0
3 1 0 52428800 512 2 YES UNUSED 0
0
sys@TEST1107> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------------------------------------- ---
3 ONLINE /u01/app/oracle/oradata/test1107/redo03.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01.log NO
1 ONLINE /u01/app/oracle/oradata/test1107/redo01a.log NO
2 ONLINE /u01/app/oracle/oradata/test1107/redo02a.log NO
3 ONLINE /u01/app/oracle/oradata/test1107/redo03a.log NO
6 rows selected.
sys@TEST1107> alter system switch logfile;
System altered.
sys@TEST1107> alter system switch logfile;
System altered.
sys@TEST1107> alter system switch logfile;
System altered.
sys@TEST1107> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- -------------
FIRST_TIME NEXT_CHANGE# NEXT_TIME
------------------ ------------ ------------------
1 1 4 52428800 512 2 NO CURRENT 1200058
06-NOV-13 2.8147E+14
2 1 2 52428800 512 2 YES INACTIVE 1200052
06-NOV-13 1200055 06-NOV-13
3 1 3 52428800 512 2 YES INACTIVE 1200055
06-NOV-13 1200058 06-NOV-13
sys@TEST1107>