今天使用SQL Developer连接一台测试服务器数据库(ORACLE 11g)时,遇到了“ORA-12514, TNS:listener does not currently know of service requested in connect descriptor”错误,具体提示如下所示:

执行请求的操作时遇到错误:

 

Listener refused the connection with the following error:

 

ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

 

供应商代码 12514

几年前写过一篇关于”ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务“的案例文章,现在看来当时写的比较肤浅和粗糙,当然案例也不一样,下面在总结一下如何处理ORA-12514这个错误吧。

Step 1: 首先检查客户端的tnsnames.ora里面的host、port、service_name等是否正确

myvm =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

       (SERVER = SHARED)

      (SERVICE_NAME = gsp.localdomain)

      

    )

  )

逐一仔细检查过后发现这些配置都是正确的。 其实前几天还是正常来的。测试服务器和tnsnames.ora都没有改动过。所以我们继续后面排查。

 

Step 2:检查确认数据库实例是否启动。

SQL> select status from v$instance;

 

STATUS

------------

OPEN

 

SQL> 

如上所示,数据库实例正常,并没有关闭。当数据库实例异常关闭,也会出现ORA-12514错误,如下所示(如果我关闭一数据库实例,然后使用SQL*Plus测试连接数据库就会遇到这个错误):

C:\Users>sqlplus system/123456@mydb

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 4月 12 11:56

 

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

 

ERROR:

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

 

Step 3:检查网络是否正常,tnsping能否ping通

如下所示,ping 和tnsping 均都正常

监听服务也正常,没有问题

[oracle@DB-Server admin]$ lsnrctl status

 

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 12-APR-2017 10:36:40

 

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

 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date                12-APR-2017 10:31:20

Uptime                    0 days 0 hr. 5 min. 20 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/app/oracle/product/11.1.0/dbhome_1/network/admin/listener.ora

Listener Log File         /u01/app/oracle/diag/tnslsnr/DB-Server/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server.localdomain)(PORT=1521)))

The listener supports no services

The command completed successfully

Step 4:检查$ORACLE_BASE/diag/tnslsnr/DB-Server/listener/alert下的日志,发现host_addr为10.20.34.76,实际IP地址不是这个。因为监听文件里面我使用的hostname DB-Server.localdomain,所以赶紧检查/etc/hosts的配置

[root@DB-Server ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr B0:83:FE:55:32:E5  

          inet addr:10.20.57.15  Bcast:10.20.57.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2363981 errors:0 dropped:0 overruns:0 frame:0

          TX packets:180048 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:225925147 (215.4 MiB)  TX bytes:14349633 (13.6 MiB)

          Interrupt:233 Base address:0x4000 

 

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:3692 errors:0 dropped:0 overruns:0 frame:0

          TX packets:3692 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:2982961 (2.8 MiB)  TX bytes:2982961 (2.8 MiB)

 

[root@DB-Server ~]# more /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

10.20.34.76        DB-Server.localdomain DB-Server

127.0.0.1               localhost.localdomain localhost

::1             localhost6.localdomain6 localhost6

[root@DB-Server ~]# 

果然发现/etc/hosts下配置为10.20.34.76, 具体原因是因为IT部门调换办公室,从三楼撤到二楼,将这台PC搬下来后,服务器IP地址变化了,修改/etc/hosts,然后重启监听服务,问题解决。

ORA-12514, TNS:listener does not currently know of service requested in connect descriptor案例2的更多相关文章

  1. oracle ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

    ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 1.看看是不是监听 ...

  2. oracle centos 重启后报错ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

    oracle centos 重启后报错ORA-12514, TNS:listener does not currently know of service requested in connect d ...

  3. ORA_12514:TNS:listener does not currently know of service requested in connect descriptor

    问题描述 ORA_12514:TNS:listener does not currently know of service requested in connect descriptor 解决方式 ...

  4. TNS:listener does not currently know of service requested in connect descriptor错误改正

    (SID_LIST = (SID_DESC =  (SID_NAME = PLSExtProc)  (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)  (PR ...

  5. dataguard ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

    错误的意思是listener 不知道连接解析器中的请求服务,这里要说静态监听和动态监听了动态注册是在instance启动的时候PMON进程根据init.ora中的instance_name,servi ...

  6. ORA-12514 TNS:listener does not currently know of service requested in connect descriptor

    this issue and the fix was to make sure in tnsnames.ora the SERVICE_NAME is a valid service name in ...

  7. ORA-12514: TNS:listener does not currently know of service requested in connect

    https://blog.csdn.net/mchdba/article/details/50166153

  8. ORA-12514:TNS:lisntener does not currently know of service requested in connect descriptor

    在使用工具连接oracle库的时候出现了异常 根据理解初步估计是服务或者监听器没有启动 于是链接到数据库服务器进行查看  服务都已经开启,重启后链接依旧出现上述问题 使用lsnrctl status  ...

  9. Oracle - ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 解决

    java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:list ...

随机推荐

  1. MongoDB简单操作(java版)

    新建maven项目,添加依赖: <dependency> <groupId>org.mongodb</groupId> <artifactId>mong ...

  2. 禁用feign retryer

    为什么要禁用retryer?其实主要是为了Debug,禁用feign retryer有两面性,如果接口做好幂等性,retry不影响,但是总有一些意外发生,比如:有一个实例发生了故障而该情况还没有被服务 ...

  3. 使用3D Slicer对图像进行配准

    在进行深度学习之前,我们需要图像进行一些预处理操作,其中配准是很重要的一环,以下将介绍使用软件3D Slicer来进行图像配准 3D Slicer是(1)一个软件平台,用以图像分析(包括配准和实时编辑 ...

  4. Dubbo 源码解析四 —— 负载均衡LoadBalance

    欢迎来我的 Star Followers 后期后继续更新Dubbo别的文章 Dubbo 源码分析系列之一环境搭建 Dubbo 入门之二 --- 项目结构解析 Dubbo 源码分析系列之三 -- 架构原 ...

  5. Linux服务器评测脚本 中文IO脚本简单易懂

    中文版: wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBe ...

  6. 积累一些不太常用的C/C++语言知识(不断更新)

    这里积累一些日常编程用得比较少的知识,不断添加. scanf("%c%*c%c",&a,&b); 其中的*表示跳过,本来输入三个数字,结果中间那个读入后被抛弃,a和 ...

  7. sourcetree Authentication failed

    sourcetree 的 git 密码存在 mac 的 钥匙串里面, 需要在钥匙串里删除掉对应信息,再次打开就会让你重新输入密码, 问题就解决了。 参看: https://stackoverflow. ...

  8. 面试HashMap之追命5连问

    1.HashMap底层实现数据结构? 总的来说,HashMap就是数组+链表的组合实现,每个数组元素存储一个链表的头结点,本质上来说是哈希表“拉链法”的实现. HashMap的链表元素对应的是一个静态 ...

  9. 在CentOS下面安装hue时报的错

    说明:我的系统为CentOS 7 ,系统自带的python版本为2.7.5. 安装hue时,推荐使用2.7.0以上的版本,可以自己查看自己系统自带的版本 若是版本不对,要升级为2.7的版本,这里不再说 ...

  10. 1.创建和销毁对象_EJ

    在这里记录<Effective Java>学习笔记.该书介绍了java编程中70多种极具实用价值的经验规则,揭示了该做什么,不该做什么才能产生清晰.健壮和高效的代码. 第1条: 考虑用静态 ...