问题描述:

  干净的windows2008 64位服务器上安装 oracle 11g R2 64bit服务端,安装完后,NetManager中默认的主机名为localhost,可以测试通过。但是无法在别的机器上使用客户端通过该服务器的IP地址去连接oracle服务端,报错提示:ora-12541

ORA-12541: TNS无监听程序错误

12541解决方法如下:

1、在oracle安装目录(E:\app\Administrator\product\instantclient_12_1\NETWORK\ADMIN)下查找listener.ora,用记事本打开;

2、如图将红色部分的host改为该服务器所在的网路IP地址或者服务器机器名(使网路内的其它机器可以通过IP或机器名来识别该服务器),如下图:

更改完毕后,Ctrl+S保存。
【Oracle】Oracle 11g 64位安装完后,ora-12541错误和ora-12514错误_第1张图片

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 = e:\app\Administrator\product\11.2.0\dbhome_1)

  (PROGRAM = extproc)

  (ENVS = "EXTPROC_DLLS=ONLY:e:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")

)

  (SID_DESC =

  (GLOBAL_DBNAME = orcl)

  (ORACLE_HOME = e:\app\Administrator\product\11.2.0\dbhome_1)

  (SID_NAME = orcl)

     )

)

Ctrl+S保存

cmd执行命令:lsnrctl stop,再执行lsnrctl start。

即可解决ora-12514问题。

如果新增实例,那么就复制红色部分内容,再增加一段,将其中的GLOBAL_DBNAME和SID_NAME改为对应的实例名(如果是使用实例名,那么要确保服务端和客户端在同一个域内),保存,重启oracle实例服务即可。