本机安装了Oracle 10g当做数据库服务器,跑了一周正常,不知道是分配的ip主机上也安装了oracle冲突了还是什么原因,突然出现ora12514无法监听错误,查看服务发现监听都已启动状态。
解决方法:
1. 打开<OracleHome>/network/admin/listener.ora文件,找到:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
2. 添加:
(SID_DESC =
(GLOBAL_DBNAME = ORACLE全局数据库名)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE实例名)
)
3. 最后变成:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)
4. 保存文件,重启服务中的TNSListener,OK!
解决办法2:把listener.ora和tnsnames.ora文件中的HOST = localhost(或本机器的IP)改成自己的计算机名,比如:HOST = poscard
同样需要保存重启服务中的 TNSListener。