預設路徑:$ORACLE_HOME/network/admin/tnsnames.ora (Windows 如 E:\Oracle\Ora81\network\ADMIN)
TEST.SOFTONE.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zcb_8115)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
test) → 下一步tnsnames.oraHOST:資料庫伺服器 IP 或主機名PORT:Listener 埠 (預設 1521)SERVICE_NAME:資料庫服務名 (9i+) 或 SID (8i)PROTOCOL:通常為 TCP# 命令列測試
tnsping TEST.SOFTONE.COM
# SQL*Plus 連線
sqlplus user/password@TEST.SOFTONE.COM
成功顯示 OK (XX msec) 表示 TNS 解析與網路通訊正常。
| 現象 | 可能原因 | 解決方向 |
|---|---|---|
| TNS-03505: Failed to resolve name | tnsnames.ora 拼錯、路徑錯誤、TNS_ADMIN 未設定 | 檢查檔案位置、設定 TNS_ADMIN 環境變數 |
| ORA-12154: TNS could not resolve | 服務名拼寫錯誤、檔案未讀取 | 確認 Net Service Name 拼寫、重啟應用程式 |
| ORA-12541: No listener | 遠端 Listener 未啟動、防火牆阻擋 | 遠端啟動 lsnrctl start、開放 1521 埠 |
| ORA-12514: Service not known | SERVICE_NAME/SID 與 Listener 註冊不符 | 檢查 listener.ora SID_LIST、資料庫 service_names 參數 |
MY_RAC_DB =
(DESCRIPTION =
(LOAD_BALANCE = ON)
(FAILOVER = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = myrac.example.com)
)
)
結語:TNSNAMES.ORA 是 Oracle 客戶端連線的核心配置檔。掌握手動編輯與圖形化精靈雙重技能,並熟悉 tnsping 測試工具,能快速解決 80% 的連線問題。