DataGuard环境下主数据库RMAN删除归档时出现ORA-08137问题如何解决
1.问题描述
客户环境:2节点rac,Centos6.5,配置单实例物理备,数据库数据量200g左右,每日归档量10g
问题现象:2023年11月20日,源备份软件每天完整备份数据库,RMAN删除三天前的档案,但监控系统报空间不足。经检查,档案馆仍保留2023年11月12日至2023年11月20日期间的档案,未删除三天前的档案。检查后,备份软件生成备份日志,日志中报错如下:
RMAN-08137: WARNING: archived log notelaide, need forstandby or upper capture processarchived log file name=+FRADG /honor/archivelog/2023_11_22/ thread_1_seq_365.534.1024999167 线程=1 序列=365
2.问题原因
(1)分析原因
通过错误描述,初步判断有两个原因:
a.有一个打开存档的进程
b。归档日志不传输到物理备 在客户端,由于配置了物理备,默认情况下,如果备库中没有应用归档日志,则源库不允许使用RMAN删除归档,以防止差距的发生。
(2)故障排除
a.检查是否有进程持有打开的未删除档案 p>
在11g版本中,可以在asmcmd控制台使用lsof命令查看asm盘中的文件。打开状态:
[root@db-oracle-node1 ~]# su - gridLast登录:Thu Nov 21 20:08:26 CST 2023[grid@db-oracle-node1 ~]$ asmcmdASMCMD> lsof -G FRADG
经检查发现有进程打开了11月份的存档2023年12月13日。通过了解,该库没有配置OGG、SharePlex等复制软件,只有DataGuard,且DG备份库在合肥,网络丢包比较严重。此时判断13号打开的档案是DG传输过程。我们去数据库中通过下面的查询语句确认了这个判断。
select process,pid,status,thread#,sequence# from v$management_standby;
但同时,通过执行以下命令,发现有些档案可以一段时间后删除,但报错 归档序列al 号未打开供进程使用,因此排除了由保持其打开的进程导致 ORA-08137 的可能性。
RMAN> 删除归档日志直到时间“sysdate-3”;或 RMAN> 删除在“sysdate-3”之前完成的所有归档日志;
b.检查是否归档未完成,由于DataGuard应用而无法删除
通过以下命令检查物理备进程状态:
select process,pid,status, thread#,sequence# from v$management_standby ;
发现RFS接收进程正在接受的归档确实是11月13日无法删除的归档sequence#。
通过以下命令检查主归档应用:
select thread#,name,max(sequence#),applied from v$archived_log where Applied='YES' group by thread#,name,applied;
发现物理备方只适用于11月13日的日志,整整过去了7天以及当前的一个。所以基本判断是网络丢包严重,导致发送和接收缓慢,导致无法归档,无法被物理端应用及时接收,从而无法删除。
3.问题解决
与客户了解后,客户基本放弃使用物理备用,所以我们可以采用以下解决方案:
(1)选择合适的时间清理DG环境
a.将主数据库设置为最大性能模式
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
b.重置 Data Guard 初始化参数
LOG_ARCHIVE_CONFIGDB_FILE_NAME_CONVERTLOG_FILE_NAME_CONVERTLOG_ARCHIVE_DEST_n 指向备用数据库,参数 LOG_ARCHIVE_DEST_STATE_nSTANDBY_ARCHIVE_DESTSTANDBY_FILE_MANAGEMENTFAL_SERVERFAL_CLI 对 STANDBY_LOGFILES ENT 有效
c 。删除备用重做日志
SQL> SELECT GROUP# FROM V$STANDBY_LOG;SQL> ALTER DATABASE DROP STANDBY LOGFILE GROUP;
d.如果需要的话,可以将物理备机转换为独立数据库使用
$ sqlplus / as sysdbaSQL> ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP;< (2)要暂时解决这个问题,可以通过将参数log_archive_dest_state_2设置为defer,将隐式参数_deferred_log_dest_is_valid设置为false来消除删除报告ORA-08137问题。
_deferred_log_dest_is_valid参数默认为TRUE,控制当log_archive_dest_state_n参数设置为defer时,是否允许主归档在不被物理备机使用时删除,以防止间隙log_archive_dest_state_n再次设置为enable时发生,导致物理备机不可用。该参数在11.2.0.4版本Par可以动态调整可以在线修改电表。
SQL> alter system set log_archive_dest_state_2=deferscope=both;SQL> alter system set "_deferred_log_dest_is_valid"='FALSE'scope=both;
(3) 删除存档使用force选项
RMAN >删除强制归档日志直到时间'sysdate-3';
说到这里,相信大家心里都有想法了关于《如何解决Data Guard环境中主数据库RMAN删除归档报ORA-08137问题》有了更深入的了解,不妨实践一下吧!这是网站。更多相关内容,您可以进入相关渠道进行查询。关注我们,继续学习!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > DataGuard环境下主数据库RMAN删除归档时出现ORA-08137问题如何解决