Below errors are repeatedly reported in the alert log of one RAC node.
Note that the actual issue applies to RAC and non RAC databases.
The ORA-00338 normally indicates an incorrect control file may be used:
00338, 00000, "log %s of thread %s is more recent than control file"
// *Cause: The control file change sequence number in the log file is
// greater than the number in the control file. This implies that
// the wrong control file is being used. Note that repeatedly causing
// this error can make it stop happening without correcting the real
// problem. Every attempt to open the database will advance the
// control file change sequence number until it is great enough.
// *Action: Use the current control file or do backup control file recovery to
// make the control file current. Be sure to follow all restrictions
// on doing a backup control file recovery.
The error is reported when the log sequence number is greater than the sequence number in the control file.
The process that detects this, posts the entries to the alert log.
Given the normal cause of the error, please verify first that the correct control file is being used.
In this particular case the control file updates could not keep up with the rate of log switches, e.g. 5 to 6 per minute.
The difference in log sequence numbers came from the excessive redo log switches that occurred prior to the error.
Note that also "Log file switch (checkpoint incomplete)" messages were reported.
In this case, the customer mentioned that fast log switches were forced by the 'storage side backup settings', meaning their backup implementation/application issued fast 'alter system switch log file' commands.
After having verified the correct control file is being used, the issue can be resolved by reducing the fast explicit redo log switches.
In case the log switches is not forced manually or by an application (like in this case) then below checks/actions can be performed:
Another potential cause for getting such error is that listed redo log is Not valid (i.e contain zeros),validate the redo log first to decide if it is even a valid redo. If there are zeros, and it is the current online log then we need to look at the restore/recovery options.
Example:
SQL> alter system dump logfile '/u02/app/oracle/oradata/EBSPROD/redo/log02a.dbf' validate;
alter system dump logfile '/u02/app/oracle/oradata/EBSPROD/redo/log02a.dbf' validate
*
ERROR at line 1:
ORA-00339: archived log does not contain any redo
ORA-00334: archived log: '/u02/app/oracle/oradata/EBSPROD/redo/log02a.dbf'
...
SQL> alter system dump logfile '/u02/app/oracle/oradata/EBSPROD/redo/log02b.dbf' validate;
alter system dump logfile '/u02/app/oracle/oradata/EBSPROD/redo/log02b.dbf' validate
*
ERROR at line 1:
ORA-00339: archived log does not contain any redo
ORA-00334: archived log: '/u02/app/oracle/oradata/EBSPROD/redo/log02b.dbf'
In a Data Guard environment that uses ASYNC redo transport, if ORA-338 errors occur in NSA trace file, and the connection with the remote database is closed, and will not reopen until the next log switch, then it could be due to
Bug 12770551 - Frequent ORA-338 during controlfile restore with ASYNC Data Guard (Doc ID 12770551.8)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29953799/viewspace-1850893/ ,如需转载,请注明出处,否则将追究法律责任。