问题描述:
干净的windows2008 64位服务器上安装 oracle 11g R2 64bit服务端,安装完后,NetManager中默认的主机名为localhost,可以测试通过。但是无法在别的机器上使用客户端通过该服务器的IP地址去连接oracle服务端,报错提示:ora-12541
ORA-12541: TNS无监听程序错误
12541解决方法如下:
1、在oracle安装目录(D:\BI\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN)下查找listener.ora,用记事本打开;
2、如图将红色部分的host改为该服务器所在的网路IP地址或者服务器机器名(使网路内的其它机器可以通过IP或机器名来识别该服务器),如下图:
更改完毕后,Ctrl+S保存。
3、cmd执行命令:lsnrctl stop,再执行lsnrctl start。
然后使用NetManager继续测试服务,这次报出另外一个错误提示:Ora-12514
ora-12514解决方法:
同样的,还是打开listener.ora文件
添加如下一段语句,红色粗体部分:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\BI\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\BI\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = fxyy)
(ORACLE_HOME = D:\BI\oracle\product\11.2.0\dbhome_1)
(SID_NAME = fxyy)
)
)
Ctrl+S保存
cmd执行命令:lsnrctl stop,再执行lsnrctl start。
即可解决ora-12514问题。
如果新增实例,那么就复制红色部分内容,再增加一段,将其中的GLOBAL_DBNAME和SID_NAME改为对应的实例名(如果是使用实例名,那么要确保服务端和客户端在同一个域内),保存,重启oracle实例服务即可。