Redo logs are important elements of the Oracle database physical structure. Redo logs contain all the transactions committed or uncommitted. An important standard for creating an Oracle database is to have mirrored redo logs, also referred to as multiplexed redo logs. Mirrored or multiplexed redo logs are multiple redo log members per redo log group.
If a redo log member is lost or deleted and the mirrored log member still exists, then the redo log member can be easily rebuilt. This is an example of a non-critical recovery. As long as one mirrored redo log is available, the Oracle database will continue to process archive logs until the switch to the next log file sequence.
Re-creating a redo log member is a fairly straightforward process. The command ALTER DATABASE ADD LOGFILE MEMBER will create a log file member if one has been lost or deleted. Let's walk through an example of identifying and rebuilding a missing redo log file member:
First, identify that there is a missing redo log file member by looking at the trace files and alert log. The following is an excerpt from an alert log that shows that REDO01.LOG is missing:
ARC1: Evaluating archive log 2 thread 1 sequence 24 Committing creation of archivelog 'C:ORACLEORAARCHORA101TARC00024_0527361115.001' Sat Aug 21 22:37:31 2004 Errors in file c:oracleadminora101tdumpora101t_lgwr_3464.trc: ORA-00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: 'C:ORACLEORADATAORA101TREDO01.LOG' ORA-27041: unable to open file OSD-04002: unable to open file O/S-Error: (OS 2) The system cannot find the file specified. ORA-27041: unable to open file OSD-04002: unable to open file O/S-Error: (OS 2) The system cannot find the file specified. Sat Aug 21 22:37:31 2004 Errors in file c:oracleadminora101tdumpora101t_lgwr_3464.trc: ORA-00321: log 1 of thread 1, cannot update log file header ORA-00312: online log 1 thread 1: 'C:ORACLEORADATAORA101TREDO01.LOG' Sat Aug 21 22:37:31 2004 Private_strands 7 at log switch Sat Aug 21 22:37:31 2004 Errors in file c:oracleadminora101tdumpora101t_lgwr_3464.trc: ORA-00313: open failed for members of log group 1 of thread 1 Thread 1 advanced to log sequence 26 Current log# 1 seq# 26 mem# 1: C:ORACLEORADATAORA101TREDO01_MIRROR.LOG
St Aug 21 22:37:31 2004 ARC1: Evaluating archive" log 3 thread 1 sequence 25 Committing creation of archivelog 'C:ORACLEORAARCHORA101TARC00025_0527361115.001'
Next, remove the REDO01.LOG redo log file from data dictionary. The REDO1.LOG cannot be the currently active redo log. It must be inactive.
SQL> alter database drop logfile member 'C:ORACLEORADATAORA101TREDO01.LOG';
|