联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
我们经常会遇到数据库异常down,然后启动的时候报ORA-00742错误,一般是在recover或者open的过程中遇到
SQL> RECOVER DATABASE; ORA-00283: 恢复会话因错误而取消 ORA-00742: 日志读取在线程 1 序列 2097 块 296728 中检测到写入丢失情况 ORA-00312: 联机日志 3 线程 1: 'D:\APP\ADMINISTRATOR\ORADATA\HIS\REDO03.LOG'
SQL> recover database; Media recovery complete. SQL> alter database open; alter database open * ERROR at line 1: ORA-00742: Log read detects lost write in thread %d sequence %d block %d ORA-00312: online log 3 thread 1: '/oradata/shrdh/redo03.log'
关于该错误,Oracle官方解释:由于操作系统或者存储或者Oracle导致redo发生写丢失
[oracle@www.xifenfei.com:/home/oracle]$ oerr ora 742 00742, 00000, "Log read detects lost write in thread %s sequence %s block %s" // *Cause: Either a write issued by Oracle was lost by the underlying // operating system or storage system or an Oracle internal error // occurred. // *Action: The trace file shows the lost write location. Dump the problematic // log file to see whether it is a real lost write. Contact Oracle // Support Services.
Oracle官方关于ORA-00742的主要bug有:
由于redo写丢失已经发生,一般发生这种情况,有备份使用备份进行不完全恢复,没有备份考虑强制拉库,如果是dg库问题,可以考虑从主库把日志重新传过去