连接本地Oracle 11g时 ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务

本文详细介绍了如何检查Oracle数据库监听器的状态,并通过监听器配置文件验证其设置是否正确。包括使用lsnrctl命令获取监听器状态,以及通过tnsping验证服务连接性。此外,还展示了如何在listener.ora文件中添加额外的服务配置。

检查监听状态:

C:\Documents and Settings\Administrator>lsnrctl status

LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 15-11月-2012 11:3
0:32

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

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=20121114-1728)(PORT=1521)))

LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期                  14-11月-2012 20:40:20
正常运行时间              0 天 14 小时 50 分 13 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          E:\app\Administrator\product\11.2.0\dbhome_1\network\a
dmin\listener.ora
监听程序日志文件          e:\app\administrator\diag\tnslsnr\20121114-1728\listen
er\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=20121114-1728)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

C:\Documents and Settings\Administrator>tnsping orcl

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 15-11月-
2012 11:39:43

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

已使用的参数文件:
E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\sqlnet.ora


已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 20121114-1728)(PORT =
1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (120 毫秒)

看起来,好像都是正常的。

检查监听文件:

# listener.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

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")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 20121114-1728)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = E:\app\Administrator

在SID监听里面加上:

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)

    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 20121114-1728)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

### ORA-12514 错误解决方案 ORA-12514Oracle 数据库中常见的 TNS 监听器错误之一,表示客户端尝试连接到指定的服务监听器未能找到对应的服务实例。以下是针对该问题的具体分析与解决措施: #### 1. **确认监听器配置** - 检查 `listener.ora` 文件中的配置是否正确。通常情况下,在此文件中应包含类似于以下的内容[^4]: ```plaintext (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = E:\app\86135\product\11.2.0\dbhome_1) (SID_NAME = ORCL) ) ``` - 若发现缺少上述配置项,则需手动补充并保存。 #### 2. **验证监听器状态** - 使用命令行工具启动或重新加载监听服务以确保其运行正常。可以执行以下命令来重启监听器[^3]: ```bash lsnrctl stop lsnrctl start ``` #### 3. **测试网络连通性** - 利用 `tnsping` 命令检测目标数据库的可达性和解析情况。例如: ```bash tnsping orcl ``` - 如果返回结果显示异常,则可能涉及 DNS 或主机名解析问题,建议进一步排查网络设置。 #### 4. **检查服务名称映射** - 打开 `tnsnames.ora` 文件,核实其中定义的服务名是否匹配实际需求。典型条目结构如下所示[^1]: ```plaintext ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ``` #### 5. **注意不同工具路径影响** - 对于某些第三方管理软件(如 Navicat),它们可能会优先读取解压缩后的本地目录内的 listener 配置而非默认安装位置的数据[^2]。因此,如果存在多个版本或者自定义修改过的副本,请统一调整至一致的状态。 通过以上几个方面的细致核查与修正操作,大多数因配置不当引发的 ORA-12514 故障都能够得到有效处理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值