首页 > Linux操作系统 > Linux操作系统 > 一次网络连接错误的诊断
今天帮同事解决一个sqlplus无法连接到数据库的问题。
在通过9i的客户端连接10g的rac环境时,出现了ORA-12054错误:
E:>sqlplus test@testrac
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 5月 8 18:40:18 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
输入口令:
ERROR:
ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SID
通过tnsping检查,发现配置正常:
E:>tnsping testrac
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-5月 -
2007 18:42:00
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
E:oracle10.2networkadminsqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.1
98.224)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVER_NAME = testra
c)))
OK (10 毫秒)
如果添加在TESTRAC配置中添加(SID = TESTRAC1)信息,则可以正常登陆。
查了半天问题,最后发现同事在手工编辑TNSNAMES.ORA的时候,出现了拼写错误,将SERVICE_NAME拼错为SERVER_NAME,于是产生了上面的错误。
将其改正后,错误消失。
TESTRAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testrac)
)
)
E:>sqlplus test@testrac
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 5月 8 18:52:52 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
输入口令:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL>
看来Oracle并不对tnsnames中错误的参数名称进行检测,而仅仅是忽略。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69269/,如需转载,请注明出处,否则将追究法律责任。