ORACLE Dataguard 无法识别 tnsname 的别名
[toc]
适用范围
oracle 19c dataguard 主库alert日志告警:TNS-12564: TNS: 拒绝连接 TT00 (PID:2865): Error 12528 received logging on to the standby”
;主库v$archive_dest报错:archive_dest ORA-16058: 未装载备用数据库实例
问题概述
racle 19.18 dataguard 配置主库无法连接备库,导致主库日志无法传送值备库:
主库alert日志告警:TNS-12564: TNS: 拒绝连接 TT00 (PID:2865): Error 12528 received logging on to the standby
主库v$archive_dest
报错:archive_dest ORA-16058: 未装载备用数据库实例
问题原因
主库上执行如下,获取 pid
1 | $ ps -ef | grep pmon |
然后执行如下,pid 换成上面获取的pid
1 | $ ps eww <PID_of_pmon_process> |
进程中的TNS_ADMIN 环境变量错误。
主库配置参数(使用别名)命令:
1 | alter system set log_archive_dest_2='service=orcldg lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcldg' ; |
日志报错:TNS-12564: TNS: 拒绝连接 TT00 (PID:2865): Error 12528 received logging on to the standby`
修改主库配置参数(使用连接串)命令:
1 | alter system set log_archive_dest_2='service="(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xx.xxx.xxx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcldg)))" lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcldg' ; |
修改后dg正常同步。
配置 TNS_ADMIN 环境变量之后,可以正常识别别名。
解决方案
1、修改主库配置参数使用连接串:
命令类似如下:
1 | alter system set log_archive_dest_2='service="(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xx.xxx.xxx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcldg)))" lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcldg' ; |
2、配置 TNS_ADMIN 环境变量
命令类型如下:
1 | export TNS_ADMIN=$ORACLE_HOME/network/admin/ |
参考文档
无
原文作者: liups.com
原文链接: http://liups.com/posts/bac0760e/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议