今天上午,一台rac机器重启,发现机器无法正常启动数据库,手工执行:
sqlplus sys as sysdba
>startup 提示如下:
ORA-00119: invalid specification for system parameter REMOTE_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENERS_ORCL'
在另外一台机器检查发现:
show parameter remote_listener
显示正常,设置也正确。再检查有问题的机器的tnsnames.ora文件,也没有发现什么错误。
在另外一台机器执行(有问题的是rac2):
alter system reset remote_listener scope=spfile sid='*' ;
再启动另外的实例,发现有问题的实例可以启动,但是这样有一个问题,负载均衡是不能正常工作的,
仔细检查发现,用户全部连接到先前正常的机器,根本不能实现负载均衡。
在仔细检查发现,有问题的tnsnames.ora文件,发现第2个配置中,orcl1 缺少一个等号'='
ORCL1
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
(INSTANCE_NAME = orcl1)
)
)
不知道谁删除了文件的等号,正是缺少这个等号,导致tnsnames.ora文件破坏。而且导致下面的配置参数LISTENERS_ORCL不正确!!!
简单的检测方法就是执行
tnsping orcl1
tnsping LISTENERS_ORCL
提示出现:
TNS-03505: Failed to resolve name
我很奇怪的是如果紧连着的是orcl2的配置,tnsping orcl2 是没有问题的。实际上如果alert*.log文件,也能发现ORA-12154的错误。加入等号后问题解决!使用net manager管理工具能发现tnsnames.ora无法配置。