`
flowerina
  • 浏览: 35314 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

【转】TNS-12541: TNS: 无监听程序 安装DB后修改IP地址的解决办法

阅读更多
from:http://hi.baidu.com/xingchengjie/blog/item/9df9e39458bd4f19d31b7029.html

在用PL/SQL Developer连接数据库时出现
“ORA-12541:TNS:无监听程序”错误。


1、检查listener.log日志
发现下面错误:
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)))


2、查看Oracle的listener是否启动
C:\Documents and Settings\mengzhaoliang>lsnrctl status

LSNRCTL for 32-bit Windows: 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


原来没有启动listener,用“lsnrctl start”命令也不能启动。
C:\Documents and Settings\mengzhaoliang>lsnrctl start

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 10:5
2:16

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

启动tnslsnr: 请稍候...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
监听: (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

监听程序未能启动。请参阅上面的错误消息...


3、查看listener.ora的内容:
# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
)
LISTENER =
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.5.0.5)(PORT = 1521))
    )
)


原来本机的ip发生改变后,就出现了上述问题,改变数据库的监听ip地址:
把(ADDRESS = (PROTOCOL = TCP)(HOST = 0.5.0.5)(PORT = 1521))
改成
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

127.0.0.1:也就是目前数据库正在用的ip地址。


4、再次启动oracle的listener
C:\Documents and Settings\mengzhaoliang>lsnrctl start

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 10:5
4:40

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

启动tnslsnr: 请稍候...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期                  20-9月 -2008 10:54:41
正常运行时间              0 天 0 小时 0 分 1 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件          D:\oracle\product\10.2.0\db_1\network\log\listener.log

监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功


启动已经成功,


5.再tnsnames.ora上添加上
ORCL_127.0.0.1 =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
)

6、再次用PL/SQL Developer再次连接数据库
出现下面错误:
TNS-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

再次检查listener.log日志
20-9月 -2008 11:01:54 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=

(PROGRAM=D:\plsql\plsqldev.exe)(HOST=RUIFEI-EF0ADC98)(USER=mengzhaoliang))) * (ADDRESS=

(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1267)) * establish * orcl * 12514
TNS-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

查看listener:
C:\Documents and Settings\mengzhaoliang>lsnrctl services

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 11:1
1:09

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

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已被拒绝:0
         LOCAL SERVER
命令执行成功


7、用sqlplus也出现同样错误:
C:\Documents and Settings\mengzhaoliang>sqlplusscott/mzl@ORCL_127.0.0.1

SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 9月 20 11:15:09 2008

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

ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

8、查看listenser状态:
C:\Documents and Settings\mengzhaoliang>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 11:2
6:42

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

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期                  20-9月 -2008 11:24:33
正常运行时间              0 天 0 小时 2 分 8 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件          D:\oracle\product\10.2.0\db_1\network\log\listener.log

监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

C:\Documents and Settings\mengzhaoliang>tnsping orcl

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -
2008 11:27:43

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

已使用的参数文件:
D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora

TNS-03505: 无法解析名称

9、查看sqlnet.ora内容:
# sqlnet.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)


10.把listener.ora的内容:
# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
)

LISTENER =
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
)


改成下面的内容:

# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
#      (PROGRAM = extproc)
    )
)

LISTENER =
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = orcl))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
)


11、然后关闭、再启动listener
在cmd中执行“lsnrctl stop” 和“lsnrctl stop”命令,再次登陆正常!
C:\Documents and Settings\mengzhaoliang>sqlplusscott/mzl@orcl

SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 9月 20 11:55:47 2008

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


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>


再次用PL/SQL Peveloper登陆就没有问题了。

完毕!

我通过以上步骤我的问题还没解决,然后重启了一下OracleOraDb10g_home1TNSListener服务就行了
分享到:
评论

相关推荐

    TNS- 无法解析指定的连接标识符

    ### TNS- 无法解析指定的连接标识符 在Oracle数据库管理中,遇到“TNS- 无法解析指定的连接标识符”这类错误是较为常见的现象。本文将深入探讨这一问题的原因及其解决方法。 #### 问题概述 此错误通常发生在尝试...

    oracle配置文件tnsname

    - `tnsnames.ora` 文件类似于 Unix 系统中的 `hosts` 文件,用于定义 TNS 名称到主机名或 IP 地址的映射关系。只有当 `sqlnet.ora` 文件中的 `NAMES.DIRECTORY_PATH` 包含 `TNSNAMES` 时,Oracle 才会使用此文件...

    OracleErrorFind

    **网络错误**主要涉及到数据库的连接问题,如TNS-12541(无监听器)、TNS-12170(连接超时)、TNS-12545(目标不存在)、TNS-12505(监听器未知SID)、TNS-03505(名称解析失败)以及ORA-12560(协议适配器错误)。...

    win7下oracle的安装与卸载

    - **监听器问题**:若出现 ORA-12541: TNS: no listener 错误,可能是因为监听器没有正确配置或运行,可以通过修改监听器配置文件 `listener.ora` 或者重启监听器服务解决。 以上步骤详细介绍了如何在 Win7 下安装...

    如何正确oracle配置tnsname.ora文件

    此处 `db_domain` 参数值为 `testserver.com),将其加到网络服务名后面,修改后的 `tnsname.ora` 中关于该网络服务名的内容为: `test.testserver.com = (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)...

    oracle安装时联网装时修改成脱机装的方法

    - 完成所有修改后,建议使用`sqlplus`或`tnsping`等工具测试连接,确保一切正常。 通过以上三个步骤,我们可以成功地将Oracle的安装模式从联网安装更改为脱机安装。这样的操作不仅可以解决网络受限的问题,还能...

    oracle数据库tns配置方法详解

    - HOST:服务器的主机名或IP地址。 - PORT:Oracle数据库监听的端口号,通常是1521。 - PROTOCOL:使用的通讯协议,如TCP。 例如,一个简单的tnsnames.ora条目可能如下所示: ``` MY_DB_CONNECTION = (DESCRIPTION...

    RAC常见命令检查状态

    SCAN是Oracle RAC集群中用于提供高可用性和负载均衡的一种机制,通常使用虚拟IP地址。 ### 10. VIP各个节点的状态及配置 #### 命令:`srvctl status vip -n <nodename>` 此命令用于检查特定节点上的VIP状态。 - ...

    win7 x64 安装oracle10g x64 和 PL/SQL Developer

    - **动态 IP 地址问题**: 如果网络适配器的 IP 地址是动态分配的,安装过程中可能会出现警告信息。 - **解决方案**: - 安装虚拟环回适配器 (Microsoft Loopback Adapter)。 - 修改环回适配器的 IP 地址为固定值...

    Oracle12c 网络环境配置.pdf

    本文将详细介绍Oracle12c网络环境配置的相关知识点,主要包括监听程序的配置、网络服务名的设置以及监听器的管理和维护。 #### 二、Oracle Net Services概述 Oracle Net Services主要负责处理客户端与服务器之间的...

    AgilePLM930安装手册.PDF

    ### AgilePLM 9.30 安装手册知识点概览 #### 一、安装 Oracle DB 11G 在安装 Oracle Database 11g 的过程中,需要关注以下几个关键步骤: 1. **环境准备**: - 确认操作系统版本与 Oracle 11g 的兼容性。 - ...

    Oracle透明网关跨库查询SQLServer.docx

    - 由于SQL Server使用的是默认实例MSSQLSERVER,因此需要修改`HS_FDS_CONNECT_INFO`为SQL Server的IP地址和数据库名。例如,如果要连接的数据库名为`MyDB`,则配置应改为:`HS_FDS_CONNECT_INFO = [IP]//MyDB`。 ...

    ORACLE客户端连服务器的注意事项

    - **/etc/hosts (UNIX)** 和 **\hosts (Windows)**: 在这些文件中,需要配置数据库服务器的IP地址与主机名的映射关系。 - **示例**: ```plaintext 192.168.0.35 oracledb 192.168.0.45 tomcat ``` 以上就是...

    oracle11g客户端安装

    Oracle 11g客户端安装是一个涉及多个步骤的过程,主要用于与Oracle数据库服务器建立连接,执行查询、管理和维护...在使用过程中,遇到问题时,检查网络配置、身份验证设置以及监听器配置通常是解决连接问题的关键。

    oracle12c数据库静默安装response文件

    - `HOST`:服务器的IP地址或主机名。 - `回应文件还可能包含网络服务的其他配置,如TNS_ADMIN路径、SSL加密等。** 静默安装步骤大致如下: 1. 创建上述三个响应文件,并根据实际环境填写参数。 2. 运行安装脚本...

    oracle监听无法启动[文].pdf

    - **主机名或IP地址发生变化**:如果服务器的主机名或IP地址发生了更改,而`listener.ora`文件中的配置未及时更新,也会影响监听器的正常启动。 **解决方法**: 1. **检查网络状态**:确保安装时的网络环境与启动时...

    ArcEngine连接SDE总结.docx

    在IT行业中,尤其是在GIS(地理信息系统)开发领域,ArcEngine是一个强大的工具,用于构建与空间数据交互的应用程序。本文将详细讨论如何解决在ArcEngine连接SDE时遇到的"ORA-12560: TNS:协议适配器错误"的问题,...

Global site tag (gtag.js) - Google Analytics