安装Oracle时,本地创建了多个数据库,但在创建第二个库时出现了问题,发现第一个库连接不上去了。
从oradim.log文件中看到以下异常:
D:\programs\oracle_data\product\11.2.0\dbhome_1\bin\oradim.exe -startup -sid test -usrpwd * -log oradim.log -nocheck 0
Fri May 08 16:53:35 2020
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_TEST'
但很诡异的是,在listener.ora文件中,LISTENER_TEST这个监听配置已经不存在了(因为有多个库,监听已经修改成了LISTENER);
查找资料后得知,如果对监听进行过修改,对应数据库的SPFILE*.ORA文件中会存储LISTENER名称,此时即使再通过Oracle的工具或者手动修改listener.ora文件中的内容,都不会影响到SPFILE文件中的配置!启动的时候还是使用SPFILE*.ORA文件中local_listener对应的监听去连接;但此时listener.ora文件中已经没有这个监听了,就会导致启动不起来报这个异常。
出现这种情况时,需要修改SPFILE*.ORA文件中的内容,但这个文件是以二进制方式存储的,直接修改后ORACLE识别不了!
经过摸索,通过以下方式可以修改(以数据库名为test时为例):</