数据库:oracle 11.2.0.4

系统:Centos 7.9

验证课题:搭建DG时主库向log_archive_config添加完orclhr,并设置好log_archive_dest_n参数后,暂时不同步数据对主库有什么影响?

应用场景:笔者就曾遇到这个问题,其它参数都配置好了,就等客户提供sys password进行活动复制. 电话客户提供主库sys password时,结果对方也不知道,掌握sys密码的是他另外一个同事,当时已是晚上12点过,就没去麻烦他另外的同事,等到第二天才完成的活动复制. 所以特意做这个测试,验证这种情况对主库的影响.

查看节点1 trace日志:

2022-07-27 09:16:41.275000 +08:00
ALTER SYSTEM SET log_archive_config='dg_config=(orcl,orcl_149,orclhr)' SCOPE=BOTH;
2022-07-27 09:21:33.071000 +08:00
NSA3 started with pid=48, OS id=4534
2022-07-27 09:21:34.681000 +08:00
Thread 1 advanced to log sequence 56 (LGWR switch)
Current log# 2 seq# 56 mem# 0: +DATA/orcl/onlinelog/group_2.264.1107818219
Current log# 2 seq# 56 mem# 1: +DATA/orcl/onlinelog/group_2.265.1107818219
******************************************************************
LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2
******************************************************************
LNS: Standby redo logfile selected for thread 1 sequence 56 for destination LOG_ARCHIVE_DEST_2
Archived Log entry 127 added for thread 1 sequence 55 ID 0x617c5365 dest 1:
2022-07-27 09:21:37.749000 +08:00
Thread 1 cannot allocate new log, sequence 57
Checkpoint not complete
Current log# 2 seq# 56 mem# 0: +DATA/orcl/onlinelog/group_2.264.1107818219
Current log# 2 seq# 56 mem# 1: +DATA/orcl/onlinelog/group_2.265.1107818219
2022-07-27 09:21:39.174000 +08:00
ALTER SYSTEM SET log_archive_dest_3='service=orclhr lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orclhr' SCOPE=BOTH SID='*';
2022-07-27 09:21:40.825000 +08:00
Thread 1 advanced to log sequence 57 (LGWR switch)
Current log# 1 seq# 57 mem# 0: +DATA/orcl/onlinelog/group_1.262.1107818219
Current log# 1 seq# 57 mem# 1: +DATA/orcl/onlinelog/group_1.263.1107818219
Archived Log entry 128 added for thread 1 sequence 56 ID 0x617c5365 dest 1:
******************************************************************
LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_3
******************************************************************
******************************************************************

说明:可以看到log_archive_config、log_archive_dest_3都已更新.

此时会发现两个节点都出现Error 12154,Heartbeat failed to connect to standby 'orclhr'. Error is 12154的告警

2022-07-27 09:26:55.121000 +08:00
Error 12154 received logging on to the standby
FAL[server, ARC0]: Error 12154 creating remote archivelog file 'orclhr'
FAL[server, ARC0]: FAL archive failed, see trace file.
ARCH: FAL archive failed. Archiver continuing
ORACLE Instance orcl1 - Archival Error. Archiver continuing.
2022-07-27 09:26:57.939000 +08:00
Error 12154 received logging on to the standby
Error 12154 received logging on to the standby
Error 12154 for archive log file 1 to 'orclhr'
FAL[server, ARC3]: Error 12154 creating remote archivelog file 'orclhr'
FAL[server, ARC3]: FAL archive failed, see trace file.
ARCH: FAL archive failed. Archiver continuing
ORACLE Instance orcl1 - Archival Error. Archiver continuing.
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_nsa3_4534.trc:
ORA-12154: TNS:could not resolve the connect identifier specified
2022-07-27 09:27:32.970000 +08:00
Error 12154 received logging on to the standby
PING[ARC2]: Heartbeat failed to connect to standby 'orclhr'. Error is 12154.

当节点1设置log_archive_dest_state_3='defer'后,注意:此时节点2该参数会自动变更为defer.

此时节点1日志如下,报警依旧:

2022-07-27 11:54:33.579000 +08:00
ALTER SYSTEM SET log_archive_dest_state_3='defer' SCOPE=BOTH;
2022-07-27 11:59:43.812000 +08:00
Error 12154 received logging on to the standby
PING[ARC2]: Heartbeat failed to connect to standby 'orclhr'. Error is 12154.

当节点1设置log_archive_config='dg_config=(orcl,orcl_149)'后,节点1报警依旧,如下

2022-07-27 12:01:07.938000 +08:00
USER: DB_UNIQUE_NAME orclhr is not in the Data Guard configuration
ALTER SYSTEM SET log_archive_config='dg_config=(orcl,orcl_149)' SCOPE=BOTH;
2022-07-27 12:01:44.405000 +08:00
Archive destination LOG_ARCHIVE_DEST_3 invalidated
DB_UNIQUE_NAME orclhr is not in the Data Guard configuration

节点2告警日志如下:

2022-07-27 12:01:07.941000 +08:00
GEN0: DB_UNIQUE_NAME orclhr is not in the Data Guard configuration
2022-07-27 12:01:37.238000 +08:00
Archive destination LOG_ARCHIVE_DEST_3 invalidated
DB_UNIQUE_NAME orclhr is not in the Data Guard configuration

但当节点1执行ALTER SYSTEM SET log_archive_dest_3='' SCOPE=BOTH SID='*'后,节点1与节点2告警立即停止.

日志如下:

2022-07-27 12:50:14.086000 +08:00
ALTER SYSTEM SET log_archive_dest_3='' SCOPE=BOTH SID='*';

结论:搭建DG时当向主库log_archive_config添加完orclhr,并设置好log_archive_dest_n参数后,暂时不同步数据,

主库会不停报错"Heartbeat failed to connect to standby 'orclhr'. Error is 12154"

解决方案:log_archive_config、log_archive_dest_3两个参数还原成修改之前的参数.