Oracle10g RAC连接错误

今天和潘潘一起测RAC,结果出现了很神奇的事情
相同配置的几台机器,有的连接RAC正常,有几台确死活连接不上
郁闷了一个下午。

开始怀疑是操作系统版本和环境变量的事情,发现没有任何规律。
后来怀疑是驱动的问题,换了n个驱动,还是不行。
管理工具和测试小程序却都很争气的连接成功。

后来改用OCI连接,结果终于返回了一个错误编码ORA-12545。
原来是Oracle RAC服务端监听的问题。(命名是个大Bug,Oracle还不承认)

解决方法:修改监听参数

--RAC服务器1
ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.120.81)(PORT = 1521))' SID = 'ractest1';
--RAC服务器2
ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.120.82)(PORT = 1521))' SID = 'ractest2';

修改监听后,终于好了。

后面查到还有一种修改方式,
在RAC的每个节点上编辑$ORACLE_HOME/network/admin/tnsnames.ora,增加

local_listener_rac=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=<vip>)(PORT=1521))
)

其中对应每个节点各自的虚拟ip地址;

然后,在rac的任意一个节点上修改数据库参数,设置local_listener为local_listener_rac

alter system set local_listener='local_listener_rac' scope=spfile;

重新启动各个节点上的数据库实例,应该就好了,这个没测过,呵呵。

Leave a Reply

Your email address will not be published. Required fields are marked *

*