处理Oracle监听程序当前无法识别连接描述符中请求的服务异常(ORA-12514)

处理Oracle监听程序当前无法识别连接描述符中请求的服务异常(ORA-12514)通常是由于监听程序未能识别连接描述符中的服务名称。如果用户通过有效的服务名称连接到Oracle数据库,就会出现ORA-12514错误。以下是解决ORA-12514错误问题的方法:

1.检查连接描述符

首先,检查连接描述符是否包含正确的服务名称。服务名称是一个标识符,用于标识正在运行的Oracle实例的数据库服务。验证服务名称是否正确,可以使用以下命令:

lsnrctl status

如果服务名称不正确,则需要修改连接描述符中的服务名称,以匹配正在运行的Oracle实例的服务名称。例如,如果连接描述符中的服务名称为orcl.example.com,而Oracle实例运行的服务名称为orcl,则需要将连接描述符中的服务名称更改为orcl。

2.检查监听程序

如果连接描述符中的服务名称正确,则检查监听程序是否正在监听正确的端口。可以使用以下命令查看正在使用的端口:

netstat -an | grep LISTEN | grep 1521

如果端口不正确,则需要修改监听程序的配置文件,以便监听正确的端口。

示例1:

使用以下命令验证服务名称是否正确:

lsnrctl status

输出:

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 29-APR-2021 13:31:39

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                29-APR-2021 12:50:57
Uptime                    0 days 0 hr. 40 min. 42 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...

可以看到当前正在监听1521端口,并且服务名称为orcl。

示例2:

使用以下命令查看正在使用的端口:

netstat -an | grep LISTEN | grep 1521

输出:

tcp        0      0 0.0.0.0:1521            0.0.0.0:*               LISTEN

可以看到正在使用的端口是1521,因此监听程序没有问题。如果端口不正确,则需要修改监听程序的配置文件以监听正确的端口。

营销型网站