當客戶端發起連線請求,經歷 TNS 解析 → TCP 三向交握 → 監聽器接管 → 伺服器程序建立 → 重導向/轉交 等關鍵步驟。本文以 SQL*Plus 連線為例,逐層拆解。
sqlplus scott/tiger@ora10g.localdomain
$ORACLE_HOME/network/admin範例配置:
ora10g.localdomain =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = ora10g))
)
客戶端讀取此檔,將服務名映射為 主機名、監聽埠、服務名 三要素。
localhost.localdomain:1521 發起 TCP Socket 連線listener.ora 驗證:
fork() + exec() 建立新進程,繼承 Socket




大型環境可採用 Oracle Internet Directory(OID)集中管理 TNS 條目,等同 DNS 對主機名的解析角色,減少 tnsnames.ora 分發維護成本。
tnsping ora10g.localdomain 驗證解析與網路通達lsnrctl statussqlnet.log、listener.log 定位具體錯誤碼掌握連線建立全鏈路,才能在「連不上」時快速定位斷點,從配置、網路、進程模型三維度精準施策。