状况:在节点一可以监听到ASM实例和数据库实例(racdb),但是节点二就只能监听到ASM实例,监听不到节点二的实例
监听日志:
这里和 local_listener参数有关,就是设置的监听IP不对,监听IP都是 public 的 vip
我的节点2配置监听节点1的IP了(上面的监听日志是节点1 的),设置节点2监听自己的public 的 vip 就可以了
设置如下:
(节点一)
grid用户:
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST=10.10.11.27)(PORT=1521))))' scope=both sid='+ASM1';
oracle用户:
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST=10.10.11.27)(PORT=1521))))' scope=both sid='racdb1';
(节点二)
grid用户:
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST=10.10.11.47)(PORT=1521))))' scope=both sid='+ASM2';
oracle用户:
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST=10.10.11.47)(PORT=1521))))' scope=both sid='racdb2';
(这里涉及到修改每个节点的grid和oracle用户
grid是单独的,但是oracle更改如果不加scop的话,所有节点都会更改,所有oracle的需要指定节点,建议grid和oracle都要指定)
再
srvctlstop listener
srvctl stop scan_listener
srvctlstart listener
srvctl start scan_listener
======================================OK