客戶串連一個ORACLE時必需提供“使用者ID”、“密碼”和“網路服務名稱“,網路服務名稱用於在網路在尋找ORACLE服務。網路服務名稱解析有五種方法:Oracle Internet Directory、Extername Naming、主機命名(Host-name method)、Oracle Easy Connect以及本地命名(localnaming method)。
主機命名方法
使用該方法有四條件
- 必須使用作為網路通訊協定
- 不必使用任何網路特性,比如Oracle Connection Manager <-->
- 監聽器必須設定成GLOBA_DBNAME參數等於電腦名稱
- 必須有一個名部命名服務(比如DNS)或一個可供客戶使用的HOST檔案
如果想主機命名方法優先,在sqlnet.ora檔案的NAMES.DIRECTORY_PATH參數中把HOSTNAME放在最前。例子如下:
# sqlnet.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "SoftwareOnly", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (HOSTNAME,TNSNAMES, EZCONNECT)
NAMES.DEFAULT_DOMAIN = gdy.vicp.net
使用主機命名方法配置同一主機上多個服務
方法如下:
- 在HOST檔案針對不同服務配置不同的項
- 在LISTENER中也針對不同服務配置不同的監聽
Oracle Easy Connect Naming方法
這是10G新引進的特性,,增加了連接埠和服務名稱指定的需要的參數。使用它需要滿足一些條件:
- Oracle Net Services 10g 必須安裝在客戶機上
- Oracle Net TCP/IP服務必須在客戶和伺服器上同時得到啟用和支援
- 不允放任何進階串連描述符特性,比如串連池或外部程序呼叫
它的串連供述符構件如下:
文法構件 描述
// 可選:在通過一個URL或JDBC建立串連時使用
主機 必需:要串連到的主機或IP地址
連接埠 可選:要串連到的連接埠,預設值是1521
服務名稱 代表資料庫的服務名稱。預設設定是資料庫所在電腦的主機名稱,如果資料庫服務名與主機名稱不同,則輸入服務名。
本地命名方法(localnaming method)
該方法使用tnsname.ora檔案配置.它通常位於%ORACLE_HOME%/NETWORK/ADMIN目錄下。如果想改變它的位置,可以通過設定TNS_ADMIN環境變數,該變數在Hkey_local_machine/software/oracle有可能找得到,呵呵,just有可能。
該方法只要明白原理,其實很簡單,所以我們只要解釋一下幾個名詞
網路服務名(Net Service Name) -- 它代表著你想串連到的資料庫服務,當你在串連描述符中輸入資料庫服務名就是它了。
主機名稱 -- 這個都不會你就不要學電腦了,它代表資料庫伺服器的主機名稱或IP地址。有一點要注意,由於主機名稱的解釋是那麼的差的不穩定,我建議使用IP地址(作者本人,而不是ORACLE公司)
伺服器(service name) -- 可以是SID或是全域資料庫名