Oracle Dataguard中备库中归档日志不同步

本文介绍了一种在Oracle RAC环境下遇到的Dataguard归档日志不同步问题及解决过程。问题表现为在启动备库到ADG模式时,归档日志未能正确同步。通过排查TNS配置、归档目的地配置等步骤最终解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:RAC+单机 Dataguard
问题:启动备库到ADG模式时,发现后台归档日志并不同步

1、在备库中发现日志的归档日志不同步,内容如下:
MRP0: Background Media Recovery process shutdown (strac)
Managed Standby Recovery Canceled (strac)
Completed: alter database recover managed standby database cancel
Sun Mar 04 16:35:33 2018
Archived Log entry 96 added for thread 2 sequence 130 ID 0x971d6184 dest 1:
Sun Mar 04 16:35:33 2018
RFS[5]: Selected log 11 for thread 2 sequence 131 dbid -1759711868 branch 947273412
Sun Mar 04 16:35:34 2018
Archived Log entry 97 added for thread 2 sequence 131 ID 0x971d6184 dest 1:
RFS[5]: Selected log 11 for thread 2 sequence 132 dbid -1759711868 branch 947273412
Sun Mar 04 16:35:36 2018
Archived Log entry 98 added for thread 2 sequence 132 ID 0x971d6184 dest 1:
RFS[5]: Selected log 11 for thread 2 sequence 133 dbid -1759711868 branch 947273412
Sun Mar 04 16:39:32 2018

2、当在主库节点1中做切换时,备库中日志并不打印相关的日志进程信息,如果在主库节点2中做日志切换时,备库中是有打印日志的信息内容,内容见第一步中信息

3、通过第二步中的现象描述,可以先大概判断为是主库节点1中DG信息可能有问题导致归档日志无法同步过去

4、查询主库中配置归档位置配置的是否有错误信息,查询的结果如下:
SQL> select error from v$archive_dest where target='STANDBY'
2 ;

ERROR

ORA-12154: TNS:could not resolve the connect identifier specified

SQL> select error from v$archive_dest ;

ERROR

ORA-12154: TNS:could not resolve the connect identifier specified

ERROR

ERROR

31 rows selected.
5、通过第4步中的结果,可以判断大概一个方向 ,可能是主库连接到备中监听有问题导致报错,先先TNS配置中查找原因
6、在主库节点1中tnsping 备库配置的服务名看是否报错,操作如下:
[oracle@rac1:/home/oracle]$tnsping strac

TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 04-MAR-2018 16:57:32

Copyright (c) 1997, 2013, Oracle. All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.103)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = strac)))rac =
TNS-12533: TNS:illegal ADDRESS parameters
7、此时在主库节点2中tnsping 备库服务名发现是可以正常解析过来的
[oracle@rac2:/home/oracle]$tnsping strac

TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 04-MAR-2018 16:58:17

Copyright (c) 1997, 2013, Oracle. All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.103)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = strac)))
OK (50 msec)

8、检查主库节点1中的TNS文件配置,经发现主库节点1中的TNS有很多的重复项,从而导致备库不能同步归档日志

9、从主库节点2中把TNS文件copy到主库节点1中,此时观察备库中的日志可以正常打印归档日志同步信息,详细内容如下:
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_1_175f9q9vwo0.arc
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_2_110f9q9qlco.arc
Media Recovery Waiting for thread 1 sequence 176
Fetching gap sequence in thread 1, gap sequence 176-176
Sun Mar 04 16:00:09 2018
RFS[6]: Opened log for thread 1 sequence 176 dbid -1759711868 branch 947273412
Archived Log entry 78 added for thread 1 sequence 176 rlc 947273412 ID 0x971d6184 dest 2:
Sun Mar 04 16:00:21 2018
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_1_176f9q9w9h5.arc
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_2_111f9q9qmng.arc
Media Recovery Waiting for thread 1 sequence 177
Fetching gap sequence in thread 1, gap sequence 177-177
Sun Mar 04 16:00:41 2018
RFS[6]: Opened log for thread 1 sequence 177 dbid -1759711868 branch 947273412
Archived Log entry 79 added for thread 1 sequence 177 rlc 947273412 ID 0x971d6184 dest 2:
Sun Mar 04 16:00:51 2018
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_1_177f9q9x92z.arc
Media Recovery Waiting for thread 1 sequence 178
Fetching gap sequence in thread 1, gap sequence 178-178
Sun Mar 04 16:00:51 2018
RFS[6]: Opened log for thread 1 sequence 178 dbid -1759711868 branch 947273412
Archived Log entry 80 added for thread 1 sequence 178 rlc 947273412 ID 0x971d6184 dest 2:
Sun Mar 04 16:01:01 2018
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_1_178f9q9xmc8.arc
Media Recovery Waiting for thread 1 sequence 179
Fetching gap sequence in thread 1, gap sequence 179-179
Sun Mar 04 16:01:01 2018
RFS[6]: Opened log for thread 1 sequence 179 dbid -1759711868 branch 947273412
Archived Log entry 81 added for thread 1 sequence 179 rlc 947273412 ID 0x971d6184 dest 2:
Sun Mar 04 16:01:11 2018
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_1_179f9q9xxgx.arc
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_2_112f9q9qmwy.arc
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_2_113f9q9qmyd.arc
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_2_114f9q9qncn.arc
Media Recovery Waiting for thread 1 sequence 180
Fetching gap sequence in thread 1, gap sequence 180-180
Sun Mar 04 16:01:11 2018
RFS[6]: Opened log for thread 1 sequence 180 dbid -1759711868 branch 947273412
Archived Log entry 82 added for thread 1 sequence 180 rlc 947273412 ID 0x971d6184 dest 2:
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_1_180f9q9y7sn.arc
Media Recovery Log /archlog/STRAC/archivelog/2018_03_04/o1_mf_2_115f9q9qncr.arc
Media Recovery Waiting for thread 1 sequence 181

总结说明:
1、当发现备库中有日志不同步时,可以先从判断配置DG配置项着手,然后通过v$archive_dest 表可以查看当前的归档状态是否正常,本环境中由于原来的DG环境是正常的,后面出现的问题,可以判断初步搭建环境是Ok的。
2、通过v$archive_dest 查询当前的DG的归档日志信息,如果里面有报错信息,可以提供一个大概的参考范围,方便我们定位问题









本文转自xiaocao1314051CTO博客,原文链接:http://blog.51cto.com/xiaocao13140/2082846 ,如需转载请自行联系原作者






<think>好的,我现在需要处理用户关于DataGuard删除归档日志的问题。首先,用户提到了主从同中的归档清理方法,以及配置指南。根据用户提供的引用,特别是引用[1]提到需要清理归档,否则空间会被占,影响系统运行。而引用[2]中的案例显示,主用RMAN删除归档时报错,因为还需要这些日志。这说明在DataGuard环境中,归档删除需要考虑主的依赖关系。接下来,我需要整理删除归档的正确方法。根据引用[3],可能需要使用ALTER DATABASE RECOVER MANAGED STANDBY DATABASE来管理恢复过程,这可能影响归档日志的保留情况。此外,引用[1]提到主传输日志存储这些归档,所以的清理需要确保日志已经应用且不再需要。 可能的解决方案包括:1.使用RMAN在配置归档删除策略,但需要注意主的依赖。2.手动删除已经应用的归档。3.使用交叉检查(CROSSCHECK)和删除过期归档的方法。另外,用户可能需要配置自动删除策略,比如设置归档保留时间或应用后的删除。 需要确保骤清晰,包括配置RMAN策略、检查日志应用状态、手动删除骤等。同时要注意避免删除未被应用的日志,否则可能导致问题。可能还需要提到如何验证日志是否应用,比如查询V$ARCHIVED_LOG视图。最后,生成相关问题,比如如何监控归档空间、处理删除报错的情况,以及主的配置差异等。这些需要根据现有引用和常见问题来设计。</think>### DataGuard归档日志删除方法 在Oracle DataGuard环境中,归档日志清理需遵循**日志应用状态**和**主依赖**原则,以下是具体操作骤: #### 一、自动清理方法(推荐) 1. **配置RMAN保留策略** 在执行以下命令,设置归档日志保留时间(例如保留2天): ```sql RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY; RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS; ``` 执行后,RMAN会自动删除已应用且超过保留期的归档日志[^1]。 2. **启用自动删除脚本** 创建定时任务(如crontab),调用RMAN脚本定期清理: ```bash rman target / <<EOF crosscheck archivelog all; delete noprompt archivelog until time 'sysdate-2' backed up 1 times to disk; exit; EOF ``` #### 二、手动清理方法 1. **检查归档应用状态** 在查询已应用的归档日志序列: ```sql SELECT sequence#, applied FROM v$archived_log WHERE applied='YES' AND deletion_status='DELETED'; ``` 仅删除状态为`APPLIED=YES`的日志[^3]。 2. **手动删除归档文件** 通过RMAN或操作系统命令删除(需确认日志已应用): ```sql RMAN> DELETE ARCHIVELOG UNTIL SEQUENCE 365 THREAD 1; ``` #### 三、注意事项 - **主依赖**:若主删除时报错`ORA-08137`,说明仍需该归档,需先在完成清理[^2]。 - **日志传输延迟**:确保主的`LOG_ARCHIVE_DEST_STATE_n`参数为`VALID`,避免因网络问题导致日志堆积[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值