一次網路連線錯誤的診斷

yangtingkun發表於2007-05-08

今天幫同事解決一個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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章