ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
在安装完Oracle11g后,使用PL/SQL工具连接,提示如下的问题:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
解决办法是手动修改监听配置文件:
# listener.ora Network Configuration
File: d:\oracle\product\10.2.0\client_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\product\10.2.0\client_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)( KEY = EXTPROC0))
)
)
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\product\10.2.0\client_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)( KEY = EXTPROC0))
)
)
其中红色粗体部分是添加部分。
以上是在一台机器上既安装了Oracle服务器,又安装了客户端的情况。
下面是仅仅在一台机器上安装了服务器,并且是在服务器本机上安装PLSQL使用Oracle数据库的情况:
# listener.ora Network Configuration File: E:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
目录
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
在Oracle数据库中,当我们尝试连接到数据库实例时,有时会遇到错误信息ORA-12514:TNS: 监听程序当前无法识别连接描述符中请求的服务。这个错误通常表示连接请求的服务名称在监听程序中不存在。
错误原因
ORA-12514错误的主要原因是监听程序无法找到与连接请求中指定的服务名称相对应的数据库实例。这可能是由于以下原因导致的:
- 服务名称错误:连接描述符中指定的服务名称与实际数据库实例的服务名称不匹配。
- 监听程序配置错误:监听程序的配置中没有定义与连接请求中指定的服务名称相对应的数据库实例。
- 监听程序未启动:监听程序没有启动,无法接受连接请求。
解决方法
要解决ORA-12514错误,可以尝试以下几种方法:
- 检查服务名称:确保连接描述符中指定的服务名称与实际数据库实例的服务名称匹配。可以通过查询数据库实例的服务名称或者与管理员联系来确认正确的服务名称。
- 检查监听程序配置:确认监听程序的配置中已经定义了与连接请求中指定的服务名称相对应的数据库实例。可以检查监听程序的配置文件(通常是listener.ora)来查看是否缺少相应的配置。
- 启动监听程序:如果监听程序没有启动,可以尝试启动它。可以使用命令
lsnrctl start
来启动监听程序。在启动之前,确保监听程序的配置文件中定义了正确的数据库实例。 - 检查网络连接:确保网络连接正常,数据库实例可以被访问。可以使用
ping
命令来测试数据库服务器的可达性。 - 检查防火墙设置:如果使用防火墙,确保防火墙设置允许连接到数据库实例的端口。如果端口被阻塞,连接请求将无法到达数据库服务器。
- 重启监听程序:如果以上方法都无法解决问题,可以尝试重启监听程序。可以使用命令
lsnrctl stop
停止监听程序,然后再使用lsnrctl start
启动监听程序。
总结
ORA-12514错误表示监听程序无法识别连接描述符中请求的服务名称。要解决此错误,需要检查服务名称、监听程序配置、监听程序状态以及网络连接等方面的问题。通过确认服务名称的正确性、配置监听程序、启动监听程序、检查网络连接和防火墙设置等操作,我们可以解决ORA-12514错误,成功连接到数据库实例。