| 組件 | 運行端 | 核心職責 |
|---|---|---|
| Listener (監聽器) | Server 端 | 監聽網絡端口,驗證連接請求,派生 Server Process |
| TNSNAMES (本地服務名) | Client 端 | 將連接別名解析為 (Host, Port, Service_Name) 三元組 |
連接流程: Client 讀取 tnsnames.ora → 構建連接描述符 → TCP 連接 Server:Port → Listener 接手 → 驗證 Service_Name → 創建 Server Process → 會話建立。
Windows: 開始 → 程序 → Oracle - OraHome → Configuration and Migration Tools → Net Manager
Linux/Unix: $ netmgr (需 X11 轉發或 VNC)
LISTENERTCP/IP1521,可自定義(防火牆需放行)
myoracle.192.168.1.5(域名格式保證唯一性)myoracle(實例名)
默認路徑:$ORACLE_HOME/network/admin/listener.ora
# 典型 listener.ora 內容
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = myoracle.192.168.1.5)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = myoracle)
)
)


關鍵:必須與服務端 listener.ora 中的 HOST/PORT 完全一致

myoracle.192.168.1.5)

MYORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = myoracle.192.168.1.5)
)
)
| 操作 | 命令 | 預期結果 |
|---|---|---|
| 啟動監聽 | lsnrctl start | TNSLSNR for Linux: Version ... STARTED |
| 查看狀態 | lsnrctl status | 顯示 Service "myoracle..." has 1 instance(s) |
| 客戶端測試連接 | tnsping MYORACLE | OK (msec) |
| 實際登錄 | sqlplus user/pwd@MYORACLE | Connected. |
總結: Net Manager 圖形化配置直觀且不易出錯,核心在於服務端 Service_Name 與客戶端 SERVICE_NAME 完全一致、Host/Port 雙向匹配。掌握 lsnrctl、tnsping 兩大排查神器,90% 網絡連接問題可在分鐘級定位解決。