暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Oracle DataGuard 报错 ORA-00314 处理

原创 Lucifer三思而后行 2025-09-01
160

前言

有一套 Oracle 11GR2 DataGuard 单机环境,巡检发现 alert 日志报错如下:

Wed Aug 27 09:53:02 2025 Errors in file /u01/app/oracle/diag/rdbms/orcldg/orcldg/trace/orcldg_arc2_3637.trc: ORA-00314: log 5 of thread 1, expected sequence# 119864 doesn't match 119862 ORA-00312: online log 5 thread 1: '/u01/app/oracle/oradata/redostd05.log'

查看错误定义:

[oracle@lucifer:/home/oracle]$ oerr ora 314 00314, 00000, "log %s of thread %s, expected sequence# %s doesn't match %s" // *Cause: The online log is corrupted or is an old version. // *Action: Find and install correct version of log or reset logs.

看报错是说在线日志损坏或者版本过旧,需要 reset 日志。

问题分析

检查备库当前在线重做日志:

SQL> set line2222 pages1000 SQL> select * from v$standby_log; GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME ---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ --------- 5 UNASSIGNED 1 0 209715200 512 0 NO UNASSIGNED 6 1584260213 1 120011 209715200 512 17433088 YES ACTIVE 7.7784E+10 01-SEP-25 7.7784E+10 01-SEP-25 7 1584260213 2 119841 209715200 512 144156672 YES ACTIVE 7.7784E+10 01-SEP-25 7.7784E+10 01-SEP-25 8 UNASSIGNED 2 0 209715200 512 0 NO UNASSIGNED 9 UNASSIGNED 1 0 209715200 512 0 NO UNASSIGNED 10 UNASSIGNED 2 0 209715200 512 0 NO UNASSIGNED SQL> col member for a100 SQL> select group#,member from v$logfile; GROUP# MEMBER ---------- ---------------------------------------------------------------------------------------------------- 1 /u01/app/oracle/oradata/redo01.log 2 /u01/app/oracle/oradata/redo02.log 3 /u01/app/oracle/oradata/redo03.log 4 /u01/app/oracle/oradata/redo04.log 5 /u01/app/oracle/oradata/redostd05.log 6 /u01/app/oracle/oradata/redostd06.log 7 /u01/app/oracle/oradata/redostd07.log 8 /u01/app/oracle/oradata/redostd08.log 9 /u01/app/oracle/oradata/redostd09.log 10 /u01/app/oracle/oradata/redostd10.log

可以看到 alert 中报错的日志文件对应的是 5 号日志。

解决方案

执行 clear 日志:

SQL> Alter database recover managed standby database cancel; Database altered. SQL> alter database clear logfile group 5; Database altered. SQL> recover managed standby database using current logfile disconnect; Media recovery complete. -- 检查在线日志使用情况 SQL> set line2222 pages1000 SQL> select * from v$standby_log; GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME ---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ --------- 5 1584260213 1 120012 209715200 512 64310272 YES ACTIVE 7.7786E+10 01-SEP-25 7.7786E+10 01-SEP-25 6 UNASSIGNED 1 0 209715200 512 0 NO UNASSIGNED 7 1584260213 2 119843 209715200 512 103357952 YES ACTIVE 7.7786E+10 01-SEP-25 7.7786E+10 01-SEP-25 8 UNASSIGNED 2 0 209715200 512 0 NO UNASSIGNED 9 UNASSIGNED 1 0 209715200 512 0 NO UNASSIGNED 10 UNASSIGNED 2 0 209715200 512 0 NO UNASSIGNED

目前 alert 没有再报错,后续持续观察,确定问题是否完全解决!


参考 MOS 文章:ORA-00314: LOG 404 OF THREAD 4, EXPECTED SEQUENCE# 33808 DOESN’T MATCH 33543 (Doc ID 1077564.1)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论