[转载]oracle11g ORA-12514:TNS:监听程序当前无法识别

修复ORA-12514错误
一、oracle报错 ORA-12514 
   我在使用PL/SQL Developer 工具连接 oracle 11g ,当使用用户登录时(scott/tiger)报错:
   ORA-12514: TNS : 监听程序当前无法识别连接描述符中请求的服务_监听程序不支持服务
  
   解决办法:
一般提示监听程序无法识别,有两种情况。一种是你安装完后未配置监听,这种情况较少;第二种是之前配置了监听但是系统未写入
listener.ora文件中,只要在该文件中写入配置参数就能解决问题了。

  1). 修改listener.ora文件
      找到listener.ora文件的存放位置,并打开。我的该文件存放在(D:appAdministratorproduct11.1.0db_1NETWORKADMIN)中。
      注意:每个人在装oracle时由于安装文件存放的位置不一样,该文件所在的盘也不一样,自己根据装的盘里去找。appAdministratorproduct11.1.0db_1NETWORKADMIN这个路径多数是一样的。

  2). 看默认的listener.ora文件里是什么样的
      我的listener.ora文件默认是如下状态:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)    
      (SID_NAME = ORCL)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  )
   从上面的LISTENER中可以看出我已经配置过监听了,但是报错是由于oracle的地址没写到SID_DESC中。

   3). 修改listener.ora文件
       在SID_DESC中写入oracle的地址: (ORACLE_HOME = D:appAdministratorproduct11.1.0db_1 )
       注意:这里的 ORACLE_HOME,找到db_1文件的路径就行了。多数人的路径都会是appAdministratorproduct11.1.0db_1这个,少数人的可能在app和Administrator之间还会有个文件夹。
  
   4). 修改后listener.ora文件的完整内容
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = D:appAdministratorproduct11.1.0db_1)
      (SID_NAME = ORCL)
    )
  )

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

   注意:黑色加粗的内容是添加进去的 ORACLE_HOME路径,即要完整加入的内容。
        
红色的两个ORACLE分别是自己的“全局数据库名”和“sid"名,要根据自己的实际名称来一致的检查,如果不是你之前定义好的“全局数据库名”和“sid"名,就要自己该一下。
 
   ORA-12514错误已经改好了,下面需要重启数据库才能生效。(具体的重启方法可参照下一篇日志,如果改完后报ora-01034:oracle not available错误,那在下一篇日志中将详细介绍。)






   

转载于:https://www.cnblogs.com/liuzhuqing/archive/2011/06/22/7481062.html

### 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、付费专栏及课程。

余额充值