在远端客户端连接oracle10g RAC数据库时,通过统一的服务名连接时经常会出现ORA-12545错误。
只需要一条命令就可以解决这个问题。
SQL> conn sys/password@racdb1 as sysdba
SQL> alter system set local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.21)(PORT = 1521))' SID='RACDB1';

系统已更改。

同时也需要在第二个实例上执行类似的语句
SQL> conn sys/password@racdb1 as sysdba
SQL> alter system set local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.22)(PORT = 1521))' SID='RACDB2';

系统已更改。

但是这里有一点很容易引起另外一个错误。
如果把上面都写成小写的,在多次连接测试中不会出现ORA-12545错误,而会出现一个新的错误ora-12541