1. 首页
  2. IT资讯

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

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

官方给出的关于ORA-12514的错误原因以及解决办法。原因简单来说可能有以下几种: 一、连接描述符给出的服务尚未在监听器中进行动态注册。 二、可能是先启动了监听器,后启动了数据库服务。 三、也有可能是服务未在监听器中进行静态注册。

郑州电子病历问题回顾:

1、监听日志路径不在常用位置

2、监听日志接近4G

3、监听没有加入静态参数 SID_LIST_LISTENER

4alert告警日志文件夹文件大小过大超过100G

5、改完监听配置后,重启监听即可

本次郑州电子病历数据库遇到的是缺少监听器的SID_LIST描述项引起的

还有监听接近4G,监听位置非默认常规路径,重建监听为客户端非服务端监听,alert告警日志文件夹大小100G

其他为次要因素,主要因素还是监听要加静态注册,缺少SID_LIST描述项的问题。

ora-12514的错误的原因有很多。但无外乎这几种:

1)、 ORA-12541: TNS: 没有监听器

显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:

$ lsnrctl start或

C:lsnrctl start

2)、 ORA-12154: TNS: 无法处理服务名

检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)里每项服务的首 行服务名称前不能有空格。

3)、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME

打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。同时检查sqlnet.ora,例如如果想要采用简便连接方式连接就需要在NAMES.DIRECTORY_PATH参数中添加EZCONNECT。

4)、Ora-12514TNS:监听程序当前无法识别链接描述符中请求的服务

该问题是由于缺少监听器的SID_LIST描述项引起的,采用netca进行配置的时候经常会遇到该问题,listener.ora示例如下

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /opt/oracle/product/9.2.0.4)

(PROGRAM = extproc))

(SID_DESC =

(GLOBAL_DBNAME = SAMPLE.COM)

(ORACLE_HOME = /opt/oracle/product/9.2.0.4)

(SID_NAME = SAMPLE)))

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = tcy.com)(PORT = 1521)))

——–下面为郑州病历改后好用的监听

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = E:appAdministratorproduct11.2.0dbhome_1)

(PROGRAM = extproc)

(ENVS = “EXTPROC_DLLS=ONLY:E:appAdministratorproduct11.2.0dbhome_1binoraclr11.dll”)

)

(SID_DESC =

(SID_NAME = emr)

(ORACLE_HOME = E:appAdministratorproduct11.2.0dbhome_1)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

)

)

ADR_BASE_LISTENER = E:appAdministratorproduct11.2.0dbhome_1log

服务器: winXP/Open Suse 数据库: Oracle10g, ,本机连接。 ORA-12514: TNS:listener does not currently know of service requested in connect 又遇到了ora-12514: TNS: 监听程序无法识别连接描述符中请求的服务 尝试了一下办法解决: 1.打开tnsnames.ora文件。发现文件并没有破坏。listener.ora文件也核对过多次,都无问题。 2.在windows服务里停止oracle的一切服务,然后重新启动,问题依然存在 3.监听器、Net服务名等都多次重新配置,测试连接都可以成功。 4.IP、主机名都试了,都不行 故在此,希望大家提供出现ORA-12514的一切可能原因和解决方法! ——解决方案——————– 尝试在listener.ora文件中替换成如下配置: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = D:oracleproduct) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = ORACLE) —-实例名 (ORACLE_HOME = D:oracleproduct) —oracle安装目录 (SID_NAME = ORACLE) ) ) 然后重启oracle的tnslistener服务。 ——解决方案——————– 你先在cmd命令中lsnrctl stat看一下监听是否启动; 如果启动了,在cmd中set oracle_sid=serversid后看看能否登陆。 ——解决方案——————– 正确启动监听的前提下, 检查tnsnames设置,并使用相应的连接字符串格式。 ——解决方案——————– 可首先使用/本机格式登陆测试,排除是否连接串与tnsnames相关设置问题。 ——解决方案——————– 一般指的是你的服务没有起来吧! ——解决方案——————– 重启一下你的服务,等个5分钟左右,若登录仍然有该提示,那你就要考虑你的用户角色了。 如果是你新建的用户,即使你 grant “DBA” to user 了,仍然要用 normal 角色登录。 ——解决方案——————– 从错误信息上分析,可能是连接使用的 orcl_sid 与在侦听器上注册的不一致。 运行 lsnrctl status 检查一下侦听器上注册的 orcl_sid, 通过此 orcl_sid 直接使用 sqlplussystem/password@servername:1521/orcl_sid 连接一下,看看是否成功。 ——解决方案——————– 好像以前曾碰到过:其它程序占了1521端口,结果导致这样的错误,不妨看看1521端口是哪个程序在使用 ——解决方案——————– ORA-12514: TNS:listener does not currently know of service requested in connect descriptor Cause: The listener received a request to establish a connection to a database or other service. The connect descriptor received by the listener specified a service name for a service (usually a database service) that either has not yet dynamically registered with the listener or has not been statically configured for the listener. This may be a temporary condition such as after the listener has started, but before the database instance has registered with the listener. Action: – Wait a moment and try to connect a second time. – Check which services are currently known by the listener by executing: lsnrctl services <listener name> – Check that the SERVICE_NAME parameter in the connect descriptor of the net service name used specifies a service known by the listener. – If an easy connect naming connect identifier was used, check that the service name specified is a service known by the listener. – Check for an event in the listener.log file.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29578568/viewspace-2140460/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:布吉卡,转转请注明出处:http://www.cxybcw.com/195302.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code