如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]
当数据库处于打开状态下多个redo logfile中的一个损坏了,则可能出现如下的错误信息:
ORA-16038 log %s sequence# %s cannot be archived
ORA-354 corrupt redo log block header
ORA-353 log corruption near block <num> change <str >time <str>
ORA-367 checksum error in log file header
ORA-368 checksum error in redo log block
[oracle@mlab2 ~]$ oerr ora 16038
16038, 00000, “log %s sequence# %s cannot be archived”
// *Cause: An attempt was made to archive the named file, but the
// file could not be archived. Examine the secondary error
// messages to determine the cause of the error.
// *Action: No action is required.
其他场景下可以通过drop redo logfile来绕过,但是如果对应的redo logfile是被crash/instance recovery 所需要则无法drop掉。
在线的redo logfile 可能无法drop的2个原因是:
- 仅仅只有2组redo logfile
- 受损坏的redo log file属于当前日志组
针对上述描述的问题可以考虑通过clear logfile 的方式来解决,如:
alter database clear <unarchived> logfile group <integer>; alter database clear <unarchived> logfile '<filename>'; alter database clear logfile group 1; alter database clear unarchived logfile group 1;
对于v$LOG中status=CURRENT或者status=ACTIVE的在线redo logfile一般是clear不掉的,会报一个错误:
oerr ora 01624
01624, 00000, “log %s needed for crash recovery of instance %s (thread %s)”
// *Cause: A log cannot be dropped or cleared until the thread’s checkpoint
// has advanced out of the log.
// *Action: If the database is not open, then open it. Crash recovery will
// advance the checkpoint. If the database is open force a global
// checkpoint. If the log is corrupted so that the database cannot
// be opened, it may be necessary to do incomplete recovery until
// cancel at this log.
注意用户不应当把’alter database clear logfile’拿来经常使用,由此而引发的缺失归档日志,会导致完全恢复变得不可能。在执行clear logfile后迅速做全库的备份吧!
Leave a Reply