解决方法1. 在客户端的hosts文件中加入所有节点的vip。
/etc/hosts下所有拷贝过来
解决方法2. Oracle 10g RAC存在一个bug,会出现这样的问题。你可以在每个节点上的tnsnames.ora定义一个相同的local_listener,只是定义中的 HOST指定为各个节点的VIP。然后修改parameter local_listener指向这个。
举例:
节点1: tnsnames.ora
local_listener_rac=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=your_protocol)(HOST=your_node1_vip)(PORT=your_port))
)
节点2: tnsnames.ora
local_listener_rac=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=your_protocol)(HOST=your_node2_vip)(PORT=your_port))
)
然后:
alter system set local_listener='local_listener_rac';
依次重启每个instance:
srvctl stop instance -d xxx -i xxx
...
srvctl start instance -d xxx -i xxx
...