监听程序当前无法识别连接描述符中请求的服务(oracle监听程序无

http://www.itjxue.com  2023-01-29 00:35  来源:未知  点击次数: 

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

oracle 11g ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务是设置错误造成的,解决方法为:

1、找到ORACLE数据库安装目录,product\11.2.0\dbhome_1\NETWORK\ADMIN 下的listener.ora文件。

2、右键点击该文件,选择【属性】选项,点击打开。

3、进入属性界面,点击上方【安全】。

4、进入安全界面,选择当前登录用户,点击【编辑】。

5、在下方的权限处,勾选【完全控制】,点击进行保存。

6、此时用记事本打开listener.ora文件,将SID名称设置为ORCL点击保存。

7、然后进入服务列表,重启oracleserviceorcl服务即可,问题解决。

oracle出现“监听程序当前无法识别连接描述符中的请求的服务”,如图所示,该怎么解决?求指点迷津

1、查看一下,你配的tnsnames.ora中的连接串是否正确

2、因为tnsnames.ora同一目录下文件是自动生产的,所以删除后重新连接一下

3、通过lsnrctl status命令查看一下,监听程序是否启动,如果没有启动执行lsnrctl start,启动下

4、

SID别名 =

(DESCRIPTION = (ADDRESS_LIST =

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

(CONNECT_DATA = (SID = SID_NAME) ) )

按照以上在重新配置一下

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

如下是解决思路:

根据出错信息判断出客户端未监听到实例服务名

1、通过重启服务的方式启动数据库,再次连接仍无法连接服务器

2、既然第一种方法不能解决问题,那就第二种方法,考虑监听listener.ora

监听配置文件listener.ora中可以不必指定监听的服务名(安装Oracle10g后也是没有指定的)。正常情况下一般只要数据库启动,客户端连接数据库也没有什么问题,但是有时重复启动关闭也会出现ORA-12514错误。

既然listener.ora中没有指定监听,我们可以在listener.ora文件中指定监听的实例名,这样该问题应该可以连接。

步骤如下:

在oracle服务器Oracle安装目录(我的在C:\oracle下,每个人的不一样,根据自己的情况查找)Network/admin目录下找到listener.ora 我的如下图所示

# listener.ora Network Configuration File: C:\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 = C:\oracle\product\10.2.0\db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = ORCL)

(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

(SID_NAME = ORCL)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

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

)

)

标红的为我添加的部分,ORCL为监听的实例名。

然后,oracle服务器重新启动一下,再次连接即成功,这也是我们配置完listener.ora 监听后,经常忘记的,

再次尝试,可以看到客户端可以连接上oracle服务器了,而且PL/SQL再次连接也没有问题了。

Oracle Pl sql 登录时提示 “监听程序当前无法识别连接描述符中请求的服务” 。

[oracle@prod ~]$ oerr ora 28547

28547, 0000, "connection to server failed, probable Oracle Net admin error"

// *Cause: ? A failure occurred during initialization of a network connection

// ? ? ? ? ? from a client process to the Oracle server. ?The connection

// ? ? ? ? ? was completed but a disconnect occurred while trying to

// ? ? ? ? ? perform protocol-specific initialization, usually due to

// ? ? ? ? ? use of different network protocols by opposite sides

// ? ? ? ? ? of the connection. ?This usually is caused by incorrect

// ? ? ? ? ? Oracle Net administrative setup for database links or external

// ? ? ? ? ? procedure calls. ? The most frequent specific causes are:

// ? ? ? ? ? -- ?The connection uses a connect string which refers

// ? ? ? ? ? ? ? to a Heterogeneous Services agent instead of

// ? ? ? ? ? ? ? an Oracle server.

// ? ? ? ? ? -- ?The connection uses a connect string which includes

// ? ? ? ? ? ? ? an (HS=) specification.

// ? ? ? ? ? -- ?Hitting Ctrl+C before connection initialization is

// ? ? ? ? ? ? ? complete.

// ? ? ? ? ? -- ?Using DRCP on Windows with SQLNET.AUTHENTICATION_SERVICES

// ? ? ? ? ? ? ? set to NTS.

// ? ? ? ? ? -- ?Connection timeout due to SQLNET.INBOUND_CONNECT_TIMEOUT

// ? ? ? ? ? ? ? parameter when all shared servers are busy in

// ? ? ? ? ? ? ? shared server configuration.

// *Action: ?Check Oracle Net administration in the following ways:

// ? ? ? ? ? -- ?When using TNSNAMES.ORA or an Oracle Names server, make sure

// ? ? ? ? ? ? ? that the client connection to the Oracle server uses

// ? ? ? ? ? ? ? the correct service name or SID.

// ? ? ? ? ? -- ?Check LISTENER.ORA on the connection end point's host machine

// ? ? ? ? ? ? ? to assure that this service name or SID refers

// ? ? ? ? ? ? ? to the correct server.

// ? ? ? ? ? -- ?Confirm in TNSNAMES.ORA or the equivalent service definition

// ? ? ? ? ? ? ? that the connect string does not contain (HS=).

// ? ? ? ? ? -- ?Set SQLNET.AUTHENTICATION_SERVICES to NONE when using DRCP

// ? ? ? ? ? ? ? on Windows.

//

首先保证你的数据库已经启动了。

然后启动plsql developer

如图,你按照这种直接连接的方式填写database那一栏试一下,格式如下:

ip:端口号/sid

例如上图,

192.168.100.167是oracle服务器的ip地址

1521是监听器的端口号

orcl是oracle数据库的sid

如果这样可以连接,拿就是你的tnsnames.ora文件配置的问题了。

登录Oracle数据库时提示“ORA-12514:TNS 监听程序当前无法识别连接描述符中请求的服务”,请问怎么解决?

此问题解决的方法和详细的操作步骤如下:

1、首先,按键盘的组合键“ Win+R”,在运行窗口中输入“ services.msc”,按Enter键确认,如下图所示。

2、其次,完成上述步骤后,转到Orcale并启动与Oracle相关的所有服务,如下图所示。

3、接着,完成上述步骤后,转到oracle11g安装目录并找到侦听文件“ listener.ora”,如下图所示。

4、然后,完成上述步骤后,打开“ listener.ora”文件,添加或修改SID_NAME名称为数据库实例名称,如下图所示。

5、最后,完成上述步骤后,启动数据库并检查状态。 此时,重新连接到PL/SQL将恢复正常,重新运行生产环境并恢复正常,如下图所示。

(责任编辑:IT教学网)

更多

推荐微信营销文章