码迷,mamicode.com
首页 > 数据库 > 详细

使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序

时间:2015-07-14 11:19:51      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:oracle   plsql   无监听程序   ora-12541 tns   

在oracle11安装成功之后,用PLSQL 登陆的时候提示ORA-12541: TNS:无监听程序,无法进行登陆。在这里总结了一下解决此类的办法,希望可以帮到大家。

第一种方法:由于地址分配不对,我们这里需要重新配置一下本机的环境。

oracle的安装环境中找到network,如图:

技术分享

我的oracle安装到了D盘,所以你根据自己安装路径进行寻找,例如:D:\app\Administrator\product\11.2.0\dbhome_2\NETWORK

LISTENER_ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = ORCL)

    )

  )

 

ORACLR_CONNECTION_DATA=

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))

    )

    (CONNECT_DATA =

      (SID = CLRExtProc)

      (PRESENTATION = RO)

    )

  )

 

ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = ORCL)

    )

  )

修改后的代码{

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = ORCL)

    )

  )

把里面的localhost修改成电脑随机生成的IP

 

机名输入localhost127.0.0.1都会提示无监听程序。由于自动分配的IP地址会有变动,所以将oracle值中的host改成本机的计算机名,保存修改后的tnsnames.ora。再次连接(10.1.10.183/orcl)数据库,出错问题解决。

 

第二种方法是具体查看oracle的系统。

具体流程如下:

第一步:查看oraclelog日志。

发现下面错误:
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9
-2008 10:25:26

Copyright (c) 1991,2005, Oracle. All rights reserved.

系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
写入D:\oracle\product\10.2.0\db_1\network\trace\listener.trc的跟踪信息
跟踪级别当前为0

pid=1704 开始

监听

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
监听该对象时出错:(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521)))
TNS-12545:
因目标主机或对象不存在, 连接失败
TNS-12560: TNS:
协议适配器错误
TNS-00515:
因目标主机或对象不存在, 连接失败
32-bit Windows Error: 49: Unknown error
不再监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))

第二步:查看oracle的监听程序是否启动

    进入dos窗口,快捷键是 菜单键+R,输入cmd,在dos窗口中输入lsnrctlstatus 查看你的运行状态,如果结果如下:

LSNRCTL for 32-bitWindows: Version 10.2.0.1.0 - Production on 20-9 -2008 10:5
0:44

Copyright (c) 1991,2005, Oracle. All rights reserved.

正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12541: TNS:
无监听程序
TNS-12560: TNS:
协议适配器错误
TNS-00511:
无监听程序
32-bit Windows Error: 2: No such file or directory
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521)))
TNS-12535: TNS:
操作超时
TNS-12560: TNS:
协议适配器错误
TNS-00505:
操作超时
32-bit Windows Error: 60: Unknown error

代表你的监听程序没有启动,需要你进行启动监听程序,启动方式有两种:一个是在dos中输入lsnrctl start就可以了。另一种方式是:计算机à管理à服务à找到oracle的自启服务,找到OracleOraDb11g_home1TNSListener,点击启动就可以了。

第三种:重置监听程序,以及配置本地网络名称

 我的电脑是window 7,所以从开始菜单中找到oracle的安装目录,找到Net Configuration Assistant打开之后,进行配置。主要配置是都过oracle自带的管理工具实现的,具体如下图:

技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享

这里的图片用的是网上搜寻的,不过方法我都使用了,因为那时候问题真的很多,换了好几种方法。更多的知识朋友们可以搜寻一下我的公众平台:牧笛助手,账号:MuDi_Assistant,最近刚开始筹建,打算分享学习中的案例已经各种问题bug的解决方法。扫一扫二维码:

技术分享


版权声明:本文为博主原创文章,未经博主允许不得转载。

使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序

标签:oracle   plsql   无监听程序   ora-12541 tns   

原文地址:http://blog.csdn.net/yali1990515/article/details/46874511

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!