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

今天,远程连接linux服务器时遇到这样一个错误,tnsnames.ora 和 listener.ora文件配置都没有错误 但是就是连接不上  tnsping 也是正常的  但用plsql连接的时候总是报错 ora-12514 tns 监听程序无法识别连接描述符中请求的服务,因为连接本地数据库时没有问题的 所以监听程序应该没问题,接下来就查看tnsnames.ora 发现还是这里出了问题,其实报错报的已经说的很明确了 无法识别连接描述符中请求的服务 说明SID 和 服务名 是不一样的 我把 SERVICE_NAME 改成了SID
 然后重启了监听程序 连接成功

以下是连接失败时候的tnsnames.ora文件

yanzhao_orcl =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

修改后的tnsnames.ora文件

yanzhao_orcl =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SID= orcl)

)

)

tnsping的截图

写到这里 就去网上查了一下 SID和server_name 的关系

在oracle中SID必须等于instance_name(实例名) 这里可以简单的记作 SID就是实例名

1. SID是实例名,实例名指的是用于响应某个数据库操作的数据库管理系统的名称。实例名是由初始化参数文件的参数instance_name决定的。如果这个参数不被指定(即instance_name没有被指定为任何值),那么实例的名字由该用户的环境变量ORACLE_SID(注意这里是大写)决定。在windows平台下,则是注册表中oracle_sid值决定。

2. SERVICE_NAME指的是listener中的全局数据库名:这个名字是由listener.ora中GLOBAL_DBNAME参数决定的。这个名字代表的是客户端连接到数据库时,tnsnames.ora中SERVICE_NAME参数所对应的值。

3. 连接字符串

配置tnsname.ora时,可以用SID,也可以用SERVICE_NAME.  注意这两个值不一定相同,具体要看数据库服务器中的配置。

问题就出在第三点这里,如果SID和服务名一样  当然连接也不会出错,但如果不一样,就是报ora-12514 这个具体还要看服务器的配置信息。

关于instance_name/SID/server_name的区别  提供两篇文章供大家参考

1、http://blog.chinaunix.net/uid-23072872-id-35661.html

2、http://www.zhetao.com/content240

谢谢大家~~

时间: 2024-11-10 14:14:02

ora-12514 tns 监听程序无法识别连接描述符中请求的服务的相关文章

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

问题:Oracle主服务和监听器服务已经启动,使用SQL Plus能够正常连接,使用PL SQL Developer连接报次错误:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务.如图: 解决: 打开H:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN(不同机器目录可能不同)目录下的listener.ora文件,发现此文件内容如下: #listener.ora Network Configuration File: H:\Ora

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

1.TNS连接错误 同事跟我说连接oracle数据库报错ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务,如下所示: 2.查看本地TNSPING 查看本地的tns配置: WXX = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.58)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 查看本

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

问题:oracle安装成功以后,可以使用,一段时间后,登录报错 OracleORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 查阅相关文档,以及修改后,可以正常登录,记录解决方法如下 原因:该问题是由于缺少监听器的SID_LIST描述项引起的,采用netca进行配置的时候经常会遇到该问题. 解决思路: 1.通过重启服务的方式启动数据库,再次连接仍无法连接服务器. 2.考虑监听listener.ora 监听配置文件listener.ora中可以不必指定监听的服务名(安装O

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

Win7旗舰版安装Oracle11g后,数据库可以正常使用,重启系统,再次连接数据库,提示: ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务 解决方法: 1.打开listener.ora文件(\product\11.2.0\dbhome_1\NETWORK\ADMIN\). 2.增加以下红色标识的一段文字. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME =

Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符、ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务、ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序

转载地址:http://www.cnblogs.com/zhaoguan_wang/p/5505701.html 问题1:ORA-12154: TNS: 无法解析指定的连接标识符 在一台服务器上部署了Oracle客户端,使用IP/SID的方式访问,老是报ORA-12154错误,而使用tnsnames访问却没有问题,对比了我本机的配置并查阅了一下资料,Easy Connect Naming Method这个东西是Oracle 10g推出的,需要在sqlnet.ora文件中添加EZCONNECT,如

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

ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务解决办法: 1.首先打开cmd命令 查看本地TNSPING配置 是否ok?然后找到 Oracle 安装文件 中 listener.ora文件与tnsnames.ora文件:  路径:E:\app\当前系统的账户名\product\11.2.0\dbhome_1\NETWORK\ADMIN 有下图所示就表示 TNSPING配置 是ok的 ? “orcl 是tnsnames.ora文件下面图中所示” ? 2.查看网络连接  tel

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

最近在装ORACLE的时候爆出了一个问题, Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务 以前装ORACLE好多遍了网上搜了好多方法还是解决不了,最后通过自己的摸索找到了一个不显眼的原因, 打开Oracle - OraDb11g_home1/配置和移植工具/  下面的Net Manager,配置好服务名后,打开监听程序右上角选择数据库服务 一开始的数据库服务中配置是有问题的,一般一开始这个目录是空的需要自己手动添加更改,如下图一开始我的Net Ma

[Window Title] (没有登录) [Content] ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 [OK]

重启Oracle服务 [Window Title] (没有登录) [Content] ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 [OK]

Oracle错误——ORA12514:监听程序当前无法识别连接描述符中请求的服务

在连接数据库的时候,有时会遇到一个"ORA12514:监听程序当前无法识别连接描述符中请求的服务"的错误,这个错误其实就是数据库动态注册(关于动态注册会在稍后讲解)不生效,导致监听器无法识别客户端连接符中提供的服务名,从而拒绝建立数据库连接时报的错误信息,所以就需要对监听器配置做修改. 在这里,还需对问题进行细化,有时候可能会发现,在刚开启监听器的时候会发生这个错误,但过了一会再进行连接就不会报错,这其实是因为动态注册需要时间,而刚开启监听器时,数据库还未注册到监听器,导致报错,这种情