DataGuard环境下主数据库RMAN删除归档时出现ORA-08137问题如何解决

分类:编程技术 时间:2024-02-20 15:47 浏览:0 评论:0
0
本文主要讲解《如何解决DataGuard环境下主库RMAN删除归档时出现ORA-08137问题》。有兴趣的朋友不妨看一下。文章介绍的方法简单、快捷、实用。现在就让小编教大家《如何解决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.检查是否有进程持有打开的未删除档案

在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问题》有了更深入的了解,不妨实践一下吧!这是网站。更多相关内容,您可以进入相关渠道进行查询。关注我们,继续学习!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > DataGuard环境下主数据库RMAN删除归档时出现ORA-08137问题如何解决

用户评论