ORA-00308: cannot open archived log(原创)

笔者在为客户配置DG时发现主备库日志无法正常传输,经仔细检查后

备库发现日志报错如下
Sat Mar 10 13:30:35 2012
Errors in file /oracle/EPD/saptrace/background/epd_mrp0_11731148.trc:
ORA-19527: physical standby redo log must be renamed
ORA-00312: online log 1 thread 1: '/oracle/EPD/origlogA/log_g11m1.dbf'
Clearing online redo logfile 1 complete
Media Recovery Waiting for thread 1 sequence 9
Fetching gap sequence in thread 1, gap sequence 9-108
FAL[client, MRP0]: Error 16191 fetching archived redo log from EPD.WORLD
Sat Mar 10 13:30:35 2012
Errors in file /oracle/EPD/saptrace/background/epd_mrp0_11731148.trc:
ORA-16191: Primary log shipping client not logged on standby

报错找不到/oracle/EPD/origlogA/log_g11m1.dbf日志,并报没有找到9-108号归档日志,说明备库没有自动从主库上获取缺失的日志。

主库报错如下

Additional information: 3

logfile /oracle/EPD/oraarch/EPDarch1_106_755387553.dbf open failed:308

kcrrwkx: unknown error:0

ORA-16055: FAL request rejected

ARCH: Connecting to console port...

ARCH: Connecting to console port...

ORA-00308: cannot open archived log '/oracle/EPD/oraarch/EPDarch1_107_755387553.dbf'

ORA-27037: unable to obtain file status

IBM AIX RISC System/6000 Error: 2: No such file or directory

上metalink上查询一番后没有发现完全符合报错信息的,相对接近的解释是,在oracle 11.1版本中,oracle会对12小时内的redo记录进行扫描或转储,如果在扫描或转储中发现所需的redo记录已经被删除,则会报ORA-00308和 ORA-27037错误。oracle建议解决方法为:打Patch 8825048补丁升级至: 11.1.0.7.3 (Patch Set Update)或者升级至11.2.0.1 (Base Release)

但笔者的数据库版本为10.2.0.4,且经主库上的/oracle/EPD/oraarch/EPDarch1_106_755387553.dbf日志是几个月前的日志了,也许是MOS上信息不全的缘故吧。

个人解决方式,删除相应的归档信息:

RMAN>delete noprompt expired archivelog all;
RMAN>delete noprompt expired archivelog until logseq 150;
虽然不知道这是不是长治久安之计,但至少主、备库报错停止,主备库能够正常同步数据。

付metalink的具体信息
Applies to:


Oracle Server - Enterprise Edition - Version: 11.1.0.6 and later   [Release: 11.1 and later ]
Information in this document applies to any platform.
***Checked for relevance on 30-Jan-2012***

Symptoms

Getting the following messages in the alert.log referencing archive logs which have already been created, backed up, and removed from the system.

Errors in file /app/opt/oracle/admin/myora/bdump/diag/rdbms/myoradb/myoradb/trace/myoradb_ora_22222.trc:
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00308: cannot open archived log '/dbarch/oradata/myoradb/arch/arch_1_6199_760938736.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3 

Cause

Per unpublished
Bug 9207154: GET ORA-00308 ORA-27037 ATTEMPTING TO ACCESS VERY OLD ARCHIVE LOG

Prior to 11g, certain errors that would not normally be reported such as "ORA-8103: object no longer exists" would result in redo from all the online redo logs being scanned. From 11.1 onwards Oracle now potentially scans the past 12 hours of redo, and that can mean looking at archived logs too.

The fact that in 11.1 the diagnostic redo scans/dumps potentially search for the past 12 hours of redo and if the redo dump tries to access an archived log that has been deleted then ORA-27037 and ORA-308 errors are raised, and caught and handled internally, but in the alert log, this is effectively publicizing the internally handled exception conditions, and could be confusing to the DBA viewing the alert log.

NOTE:
For 11.2 releases the same problem is covered by
BUG 9651350 - ORA-00308 AND ORA-27037 WHEN ORA-8103 WITHOUT EVENT 10736 BEEN SET

Solution

This process was changed via Patch 8825048 for
Bug 8825048 - 11.1 - DUMPING DIAGNOSTIC INFO FOR ORA-8103 RESULTS IN ORA-308

The bug is fixed in:

  • 11.1.0.7.3 (Patch Set Update)
  • 11.2.0.1 (Base Release)

参考至:https://support.oracle.com/CSP/ui/flash.html#tab=KBHome%28page=KBHome&id=%28%29%29,%28page=KBNavigator&id=%28bmDocTitle=Oracle%20Alert%20Log%20Is%20Reporting%20Archive%20Log%20Status%20Is%20Not%20Available%20For%20Logs%20That%20Have%20Long%20Been%20Backed%20Up&bmDocType=PROBLEM&bmDocID=1161573.1&viewingMode=1143&bmDocDsrc=KB&from=BOOKMARK%29%29

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:[email protected]

你可能感兴趣的:(Oracle故障诊断)