首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 網路連通三基石:全域資料庫名、監聽程式、網路服務名

     編輯:Oracle 資料庫基礎

前言

Oracle 網路架構類似 OSI 分層,但有自有協定堆疊。保障連通性的核心三要素:**全域資料庫名、監聽程式、網路服務名**。

第一基石:全域資料庫名

域名層次與命名規則

借鑑 DNS 域名倒樹結構:資料庫名.子域.頂級域 (如 ORAL.NINGBO.DTM)。確保分散式環境下名稱全域唯一。

優勢

  1. 擴充彈性:單機轉分散式無需改既有名稱。
  2. 連線便利:應用透過完整全域名精準定位目標實例;可設定 NAMES.DEFAULT_DOMAIN 簡化同域連線。

建議

即使目前單機,也請依全域命名規則定名,為未來擴充鋪路。

第二基石:監聽程式

角色

接收遠端連線請求,根據服務名轉交給專用/共用伺服器進程。本地連線 (IPC/Bequeath) 不經 Listener。

關鍵設定

  • listener.ora:定義監聽協定/埠/主機、服務實例 (SID/GLOBAL_DBNAME/ORACLE_HOME)。
  • 管理命令:lsnrctl start|stop|status|services

第三基石:網路服務名

tnsnames.ora 別名映射

客戶端專用,將簡易別名 (如 ORCL) 解析為 (DESCRIPTION=(ADDRESS=...)(CONNECT_DATA=(SERVICE_NAME=...)))。

解析流程

  1. 讀取 sqlnet.ora 中 NAMES.DIRECTORY_PATH 確定解析順序 (預設 TNSNAMES)。
  2. 查 tnsnames.ora 取得主機/埠/服務名。
  3. TCP 連線至 Listener,Listener 轉交 Server Process。

三大連線方式對比

語法認證方式需 Listener適用場景
sqlplus / as sysdbaOS 認證否本地 DBA 維護
sqlplus user/pass資料庫認證否本地應用
sqlplus user/pass@tns_alias資料庫認證是遠端應用 (最常用)

除錯三板斧

  1. lsnrctl status:確認服務已註冊、狀態 READY。
  2. tnsping alias:驗證客戶端解析路徑、Listener 可達。
  3. SQL> SHOW PARAMETER SERVICE_NAMES / SELECT OPEN_MODE FROM V$DATABASE:確認實例狀態。

進階:Host Naming 免 tnsnames.ora

在 listener.ora 設定 GLOBAL_DBNAME,sqlnet.ora 加入 HOSTNAME 解析路徑,客戶端直連 user/pass@hostname,適合大量客戶端、IP 變動頻繁環境。

總結

全域名解決「是誰」,Listener 解決「在哪聽」,服務名解決「怎麼連」。三者缺一不可,配置規範是穩定連通的前提。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved