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

Oracle Net Services 名稱解析五大方法深度解析:OID、External Naming、Host Naming、Easy Connect、Local Naming

     編輯:Oracle 資料庫基礎

五大解析方法對比總覽

方法適用場景優點缺點關鍵配置
Oracle Internet Directory (OID)大型企業、集中管理數百服務名單一管理點、LDAP 標準、支援 ACL架構複雜、需額外 LDAP 伺服器ldap.ora、sqlnet.ora NAMES.DIRECTORY_PATH=(LDAP)
External Naming (NDS/DNS)已有 NDS/DNS 基礎設施利用現有目錄服務非 Oracle 原生、除錯困難sqlnet.ora NAMES.DIRECTORY_PATH=(CDS/NIS)
Host Naming簡單環境、服務名=主機名、無 SID/Service Name 區分零配置、無 tnsnames.ora僅支援 TCP/IP、預設埠 1521、無負載均衡/故障轉移sqlnet.ora NAMES.DIRECTORY_PATH=(TNSNAMES, HOSTNAME)、listener.ora GLOBAL_DBNAME=主機名
Easy Connect (EZCONNECT)10g+、臨時連線、開發測試、無 tnsnames.ora 權限連線字串自含主機/埠/服務名、無需客戶端配置不支援進階特性 (負載均衡、連線池、外部程序)sqlnet.ora NAMES.DIRECTORY_PATH=(EZCONNECT, TNSNAMES)
Local Naming (tnsnames.ora)生產環境標準、支援完整特性功能最完整、支援負載均衡/故障轉移/多協定需維護每台客戶端 tnsnames.oraNetCA/Net Manager 圖形化編輯 tnsnames.ora

Host Naming 實戰配置 (Windows Client → Linux Server)

1. Client sqlnet.ora

# sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH = (TNSNAMES, HOSTNAME)

2. Server listener.ora 關鍵點

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = LinuxOracle)(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = LinuxOracle)  # 必須等於主機名
      (ORACLE_HOME = /u01/app/oracle/product/9.2.0)
      (SID_NAME = dg1)
    )
  )

關鍵:GLOBAL_DBNAME = 主機名,否則報 ORA-12514。

3. Client hosts 檔名解析

C:\Windows\System32\drivers\etc\hosts
192.168.1.61  LinuxOracle

4. 連線測試

sqlplus system/password@LinuxOracle
-- 成功連線

Easy Connect 10g+ 實戰

sqlnet.ora 啟用

NAMES.DIRECTORY_PATH = (EZCONNECT, TNSNAMES)

連線語法

-- 完整語法
sqlplus user/pwd@//host:port/service_name
-- 簡化 (預設埠 1521)
sqlplus user/pwd@host/service_name
-- IPv6
sqlplus user/pwd@[2001:db8::1]/service_name

Local Naming (tnsnames.ora) 標準範本

TEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.61)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dg1)
    )
  )
# TEST = Net Service Name (本地別名)
# SERVICE_NAME = Oracle 服務名 (GLOBAL_DBNAME)

選擇建議

  • 生產環境:Local Naming (tnsnames.ora) 功能最完整、可版控、支援進階特性。
  • 開發/測試/臨時:Easy Connect 零配置、連線字串自文檔化。
  • 大型企業集中管理:OID (LDAP) 單一真實來源。
  • 極簡環境:Host Naming 僅需 hosts + Listener GLOBAL_DBNAME。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved