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

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

 

1TNS连接错误

同事跟我说连接oracle数据库报错ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务,如下所示:


ORACLE11g ORA 12514 TNS 监听程序当前无法识别连接描述符中请求的服务_第1张图片

 

 

2、查看本地TNSPING

查看本地的tns配置:

WXX =

 

   (DESCRIPTION =

 

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

 

     (CONNECT_DATA =

 

       (SERVER = DEDICATED)

 

       (SERVICE_NAME = orcl)

 

     )

 

)

 

 

 

 

查看本地的tnsping是ok的

C:\Users\Administrator>tnsping WXX

 

 

 

TNS Ping Utility for 32-bit Windows:  Version 11.2.0.1.0 - Production on 26-10月-2016 11:31:04

 

 

 

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

 

 

 

已使用的参数文件:

 

D:\app\Administrator\product\11.2.0\client_2\network\admin\sqlnet.ora

 

 

 

 

 

已使用 TNSNAMES 适配器来解析别名

 

尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.58)(PORT  = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))

 

OK (30 毫秒)

 

 

 

C:\Users\Administrator>

 

 

本地的tnsping暂时看来是正常的,是ok的。

 

 

 

3、查看网络连接

telnet  192.168.121.58 1521,也是能进去的,证明网络ok

 

oracle服务器的iptables也是关闭的

 

 

文章来源地址:http://blog.csdn.net/mchdba/article/details/52949382 ,博主mchdba(黄杉)谢绝转载。

4、查看服务器的lsnrctl服务

 

去服务器看lsnrctl状态:

[oracle@iZ23vluqpmmZ admin]$ lsnrctl  status

 

 

 

LSNRCTL for Linux: Version 11.2.0.1.0 -  Production on 26-OCT-2016 11:33:32

 

 

 

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                26-OCT-2016 11:09:33

 

Uptime                    0 days 0 hr. 23 min. 59  sec

 

Trace Level               off

 

Security                  ON: Local OS Authentication

 

SNMP                      OFF

 

Listener Parameter File    /usr/oracle/app/product/11.2.0/dbhome_1/network/admin/listener.ora

 

Listener Log File          /usr/oracle/app/diag/tnslsnr/iZ23vluqpmmZ/listener/alert/log.xml

 

Listening Endpoints Summary...

 

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

 

   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.121.58)(PORT=1521)))

 

The listener supports no services

 

The command completed successfully

 

[oracle@iZ23vluqpmmZ admin]$

 

看到no services,也就是说lsnrctl监听服务启动起来,没有任何oracle实例的,所以问题就来了,没有oracle实例,客户端通过lsnrctl监听的话,就连接不到实例信息。所以这里我们需要添加实例信息,添加实例信息,就在listener.ora配置文件里面。

 

 

 

5、在listener.ora里面添加实例信息

完善listener.ora配置:

[oracle@iZ23vluqpmmZ admin]$ cp  listener.ora z_listener.ora.bak

 

[oracle@iZ23vluqpmmZ admin]$ vim  listener.ora

 

[oracle@iZ23vluqpmmZ admin]$

 

[oracle@iZ23vluqpmmZ admin]$ more  listener.ora

 

# listener.ora Network Configuration  File: /usr/oracle/app/product/11.2.0/dbhome_1/network/admin/listener.ora

 

# Generated by Oracle configuration  tools.

 

 

 

LISTENER =

 

   (DESCRIPTION_LIST =

 

     (DESCRIPTION =

 

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

 

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

 

     )

 

  ) 下面就是添加的新实例信息

 

SID_LIST_LISTENER  = 

 

(SID_LIST = 

 

  (SID_DESC =  

 

  (GLOBAL_DBNAME = orcl)

 

  (SID_NAME = orcl)

 

  )

 

)

 

 

 

ADR_BASE_LISTENER = /usr/oracle/app

 

 

 

[oracle@iZ23vluqpmmZ admin]$

 

 

设置完后,重启监听lsnrctl服务,可以看到会有一个instance服务启动起来了:

[oracle@iZ23vluqpmmZ admin]$ lsnrctl stop

 

 

 

LSNRCTL for Linux: Version 11.2.0.1.0 -  Production on 26-OCT-2016 11:38:29

 

 

 

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

 

 

 

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

 

The command completed successfully

 

[oracle@iZ23vluqpmmZ admin]$ lsnrctl  start

 

 

 

LSNRCTL for Linux: Version 11.2.0.1.0 -  Production on 26-OCT-2016 11:38:33

 

 

 

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

 

 

 

Starting  /usr/oracle/app/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...

 

 

 

TNSLSNR for Linux: Version 11.2.0.1.0 -  Production

 

System parameter file is  /usr/oracle/app/product/11.2.0/dbhome_1/network/admin/listener.ora

 

Log messages written to  /usr/oracle/app/diag/tnslsnr/iZ23vluqpmmZ/listener/alert/log.xml

 

Listening on:  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

 

Listening on:  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.75.58)(PORT=1521)))

 

 

 

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                26-OCT-2016 11:38:33

 

Uptime                    0 days 0 hr. 1 min. 3 sec

 

Trace Level               off

 

Security                  ON: Local OS Authentication

 

SNMP                      OFF

 

Listener Parameter File    /usr/oracle/app/product/11.2.0/dbhome_1/network/admin/listener.ora

 

Listener Log File          /usr/oracle/app/diag/tnslsnr/iZ23vluqpmmZ/listener/alert/log.xml

 

Listening Endpoints Summary...

 

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

 

   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.75.58)(PORT=1521)))

 

Services Summary...

 

Service  "orcl" has 1 instance(s).

 

   Instance "orcl", status UNKNOWN, has 1 handler(s) for this  service...

 

The command completed successfully

 

[oracle@iZ23vluqpmmZ admin]$

 

 

OK,在问下同事,同事说能连接上了,问题解决。

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

你可能感兴趣的:(ORACLE11g ORA 12514 TNS 监听程序当前无法识别连接描述符中请求的服务)