数据库 mysql oracle

Oracle TnsPing正确plsql ora-12154无法解析指定的连接标识符的解决

oracle HTML我帮您 1年前  0次浏览
1、测试数据库服务的命令:
控制台 tnsping命令 IP地址 端口号 数据库服务名称
cmd->tnsping 192.168.1.100:1521/oracle10g
tnsping命令:如果能够ping通,则说明客户端能解析listener的机器名,而且lister也已经启动,但是并不能说明数据库已经打开,而且tsnping的过程与真正客户端连接的过程也不一致。但是如果不能用tnsping通,则肯定连接不到数据库。

2、客户机连接数据库
C:\Documents and Settings\Administrator>sqlplus scott/tiger@stream
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 31 15:34:19 2015
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR: ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
为什么tnsping是OK的 但是连接时说监听程序当前无法识别连接描述符中请求的服务呢?这是因为tnsping的时候只是根据tnsname.ora文件中记录的这个字符串相应的IP地址去查看对应的端口是否开发,而不会去验证SERVICE_NAME是否正确,SERVICE_NAME如果配置的不正确是不能连接上数据库的。
下面是我做的相关测试

3、查看数据库的SERVICE_NAME
SQL> show parameter service_name
NAME TYPE VALUE
————————————
service_names string html580

可以看到这个数据库的service_name是html580,修改tnsname.ora文件,将service_name改成html580试试tnsping是否还通。
修改tnsname.ora文件
STREAM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = stream)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = html580)
)
)

连接数据库成功,远程登录数据库的时候,是依赖于数据库服务端SERVICE_NAME,如果遇到tnsping通但是连接不上数据库的时候,一定要仔细检查是否是SERVICE_NAME配置的不正确。


发表评论