針對兩台啟用 Windows XP 內建防火牆的機器互連 Oracle 9.0.1.1 實例,提供最精簡可行的配置步驟,解決雙向連接阻擋問題。
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)
TRACE_LEVEL_CLIENT = 16
路徑:`HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0`
新增字串值:名稱 `USE_SHARED_SOCKET`,值 `TRUE`
依 `LISTENER.ORA` 實際監聽設定,開放 1521/1522 (TCP) 向外連接。若使用非標準埠,對應調整。
依序重啟:Listener → 資料庫實例服務(或直接重啟主機)
| 現象 | 可能原因 | 對策 |
|---|---|---|
| tnsping 通但 SQL*Plus 連不上 | 防火牆阻擋隨機埠 (未啟用 Shared Socket) | 確認註冊表設定並「重啟實例」 |
| tnsping 失敗 | 1521 埠未開放 / 主機名解析錯誤 | 防火牆開放埠 / 改用 IP / 檢查 hosts 檔 |
| ORA-12514 / ORA-12505 | 服務名不匹配 / Listener 未註冊該實例 | 檢查 SERVICE_NAME / SID / Listener 狀態 `lsnrctl status` |