Oracle 10G数据库中"ORA-12541: TNS:no listener"报错解决办法
2007年09月29日 星期六 02:57
1、在计算机 开始--->管理-->服务中没有看到 OracleOraHome92TNSListener 服务,但服务已经启动
2、C:\>lsnrctl start 执行完后报open service error。然后在计算机 开始--->管理-->服务中看到  了 OracleOraHome92TNSListener 服务
3、运行regedit.exe启动注册表编辑器,在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/下的Services和CurrentControlSet/Services下找到OracleOraHome92TNSListener项,在右边窗口按右键,新建/字符串,取名ImagePath。
双击新见的建,在“数值数据”项输入D:\oracle\ora92\bin\TNSLSNR.EXE(根据你自己的实际情况进行修改),确定完成。
再次在服务中双击打开OracleOraHome92TNSListener的服务看到其“可执行文件的路径”一栏已经显示了其正确的值。这时你可以启动监听了。
4、C:>tnsping 数据库SID。看看tns服务没有起来。如果没有起来,用下面的命令
c:\>lsnrctl
lsnrctl>start把这个服务起动起来。

c:\>lsnrctl start 后open service error错误消失,但例程中有一个状态为UNKNOWN,另一个为READY.命令执行成功。

PL/SQL Developer连接Oracle报错:ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务

 

 

 

 

 

解决办法:

  首先重启下对应的数据库监听服务(OracleOraDb<?xml:namespace prefix = st1 />10g_home1TNSListener)和数据库服务(OracleServiceORCL),如果还没解决,就按下面的进行操作:

   1.打开%Oracle安装目录%/network/admin/listener.ora文件(C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
   2.
添加:
(SID_DESC =

    (GLOBAL_DBNAME = ORCL)

    (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)  

    (SID_NAME = ORCL)

    )
   3.
最后文件改成
SID_LIST_LISTENER =

(SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )

   (SID_DESC =

    (GLOBAL_DBNAME = ORCL)

    (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)  

    (SID_NAME = ORCL)

    )

)

LISTENER =

(DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = zyk)(PORT = 1521))

    )

)

以上粗体部件为增加的内容,修改后重启监听服务后即可。

 

 



转载:http://hi.baidu.com/jadmin/blog/item/84b40fd3b4ec8f033bf3cf37.html