3.3. Re-creating Redo Log Files

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:

  1. 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'

  2. 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';

  3. Finally, re-create the missing REDO1.LOG redo log file by adding a new log called REDO1.LOG:

    SQL> alter database add logfile member
        
    'C:ORACLEORADATAORA101TREDO01.LOG' to group 1;

You should make sure that the database is in restrict mode if you do not have many redo logs, or the transaction volume could cause the redo log you are re-creating to cycle through to the current redo log. If the database is started in restrict mode, users will be restricted to administrative activities and the redo logs will not be heavily written to or advanced.


..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset