ITPub博客

首页 > 数据库 > Oracle > 关于RAC的remote_listener

关于RAC的remote_listener

原创 Oracle 作者:abstractcyj 时间:2019-10-30 09:32:42 0 删除 编辑

近期在客户那边配合测试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,备库监听就会出现以下情况

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8520577/viewspace-2661890/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
曾从事java方向开发多年。近年已经转入数据库方向。主要擅长SQL优化,Oracle数据库问题诊断,Oracle备份与恢复等。服务于医药物流,医院等行业

注册时间:2010-01-26

  • 博文量
    602
  • 访问量
    1091585