在学习tnsname.ora listener.ora sqlnet.ora的过程中,感觉tnsname.ora 里面的LISTEN_ORCL没有作用,直接删除了。导致重新启动数据库时报
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'
在网上搜索,发现解决方法的大体思路就是创建pfile,修改pfile,重建spfile,启动数据库,搞定。
第一步:创建pfile
sql> create pfile from spfile='F:\app\Administrator\product\11.2.0\dbhome_1\database\spfileorcl.ora';
第二步:修改pfile
找到initorcl.ora,找到*.local_listener这行,修改其值为
原值:*.local_listener='LISTENER_ORCL'
新值:*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=your_hostname)(Port=1521)))'
或者 *.local_listener='ORCL' (ORCL是在tnsname.ora中的内容)
第三步:重建spfile
sql>create spfile from pfile='F:\app\Administrator\product\11.2.0\dbhome_1\database\initorcl.ora';
第四步:启动数据库
另:既然是由于我删除了tnsname.ora里面的LISTENER_ORCL,还有一种方法就是在tnsname.ora中还原删除内容
LISTENER_ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = songyu)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
尾巴:1.不明白为什么tnsname.ora里面会有LISTENER_ORCL。