Oracle-应用会话集中在RAC集群一个节点问题

问题:

        用户一套Oracle19c RAC集群,出现一个奇怪的现象,通过SCAN IP访问的连接会话都集中在节点一实例,而且用户并没有做任何的节点服务访问去控制会话的连接节点,比如常见的通过集群的高可用服务去控制应用访问连接集中在同一节点,从而避免gc产生性能消耗问题。

问题分析:

        因为应用都是通过scan ip去连接的数据库,所以我们首先先检查了scan监听listener_scan1的服务注册情况,发现监听上面的服务注册存在问题,监听上的每个服务注册实例只有节点一,并没有节点二的实例,这也解释了为什么应用访问RAC集群都集中在节点一的原因,因为节点二实例根本就没有服务注册进scan监听

        接下来检查节点二的scan监听实例配置参数remote_listener,确认是否有配置向scan 监听进行注册的地址,可以看到remote_listener有配置scan ip的域名以及端口

        检查scan_listener的日志,发现存在一些异常的报错信息,显示出现访问被拒绝的情况,这里的169.254.31.131为节点二的haip

Incoming connection from 169.254.31.131 rejected

TNS-12546: TNS:permission denied

TNS-12560: TNS:protocol adapter error

TNS-00516:Permission denied

        怀疑是不是设置了白名单访问导致的问题,检查节点一的sqlnet.ora配置,发现白名单的IP列表有包含整个业务网段(public ip,vip,scan ip所在的网段)xxx.xxx.3.*

        通过跟踪数据库注册服务的过程,获取进一步详细的信息,需要注意的事,在12c之后,数据库向监听动态注册服务的后台进行为LREG (ListenerREGistration)进程,不是之前版本的pmon进程,对LREG开启跟踪

--查看lreg进程spid
ps -ef |grep lreg
--进行跟踪
oradebug setospid xxx
oradebug dump sqlnet_server_trace 16
--关闭跟踪
oradebug dump sqlnet_server_trace 0

        分析产生的跟踪文件xxx_lreg_xxx.trc,可以看到一开始数据库是向SCAN IP:xxx.xxx.3.20的地址进行注册

        但后面解析地址又返回的是scan监听所在节点的haip169.254.7.254,然后遇到了错误TNS-12547,TNS-12560

        为什么注册scan监听最后变成是haip的通信,我们从Oracle mos官方上的文章ORA-12514 & Services Fail to Register to SCAN Listeners After HAIP Offline (Doc ID 2500067.1)发现了答案,原来从12c之后,scan监听通过配置参数REMOTE_REGISTRATION_ADDRESS_<listener_name

将haip作为远程注册的地址,从而限制实例的动态服务注册只能通过haip进行

        lsnrctl show remote_registration_address listener_scan1查看scan监听的远程注册地址, 可以看到scan监听的远程注册地址为169.254.7.254

        这时我们再重新回到之前检查scan监听的日志错误以及白名单的配置,为啥会出现注册节点haip 169.254.31.131被拒绝的情况,就是因为白名单里面只配置了业务网段xxx.xxx.3.*,但没有加入haip网段169.254.*.*,导致节点二通过haip注册节点一的scan 监听时被拒绝

Incoming connection from 169.254.31.131 rejected

TNS-12546: TNS:permission denied

TNS-12560: TNS:protocol adapter error

TNS-00516:Permission denied

问题解决

        将haip网段169.254.*.*加入白名单的tcp.invited_nodes配置列表里面,然后重启scan监听恢复正常,节点二的实例也能注册到scan 监听里面

  • 44
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值