关于RAC的remote_listener

来源:这里教程网 时间:2026-03-03 14:27:05 作者:

近期在客户那边配合测试Active Dataguard的切换测试时,采用了这样的测试流程: 数据库的架构为11.2.0.4的RAC作为primary, standby端是个单实例。           1. DATAGUARD进行switchover           2. 原primary端停止scan listener与scan ip           3. 原standby端修改IP地址与primary端的SCAN IP相同           4. crsctl stop crs。 停掉原primary端集群服务      最开始,应用连接到新的primary端没有问题。切换之后,我们重新启动了新的standby端的集群服务。这时候,应用端出现了错误: ORA-01033 : ORACLE initialization or shutdown in progress 经确认, 客户的应用端都是采用的SCAN IP配置的数据库连接。检查监听, 发现监听状态中除了备库注册的静态监听服务,同时多了两个instance, orcl1, orcl2。这样就导致监听把客户端的连接请求转发到了数据库主机上不存在的两个实例orcl1与orcl2上。 测试结束之后,定位错误原因。想来想去,应与remote_listener这个参数相关。检查此参数, remote_listener参数为rac-scan:1521。RAC的数据库实例,都会向remote_listener参数指向的监听地址注册。测试时,remote_listener依旧指向的是原SCAN IP, 这样,修改IP之后,remote listener自然就是switchover之后的新的primary数据库。这样看来,监听中出现ready状态的instance: orcl1, orcl2也不足为奇了。以下图片来自于我的测试环境, RAC与单实例之间也并未搭建DG。 如果不调整remote_listener,备库监听就会出现以下情况

相关推荐