客戶機為了和服務器連接,必須先和服務器上的監聽進程聯絡。ORACLE通過tnsnames.ora文件中的連接描述符來說明連接信息。一般tnsnames.ora 是建立在客戶機上的。如果是客戶機/服務器結構,整個網絡上只有一台機器安裝了ORACLE數據庫服務器,那么只需在每個要訪問ORACLE服務器的客戶機上定義該文件,在服務器上無需定義。但是,如果網絡上有多台機器均安裝了ORACLE數據庫服務器,並且服務器之間有數據共享的要求,那么在每台服務器上都必須定義該文件。tnsnames.ora文件缺省放在/ORACLE_HOME/ product/8.1.7/network/admin目錄下。下面是tnsnames.ora的文件樣式:
ORA817 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sun62)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora817.huawei.com)
)
)
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sun62)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = ora817.huawei.com)
(PRESENTATION = http://admin)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
字段含義如下:
ADDRESS_LIST 表示該客戶機要經由多種協議與一台或多台服務器連接。在該樣式文件中就表示該客戶機要用TCP/IP協議來和服務器相連。
PROTOCOL 指明要連接使用的協議。
SERVICE_NAME “SERVICE_NAME”就是“Global Database Name”,ORACLE8i數據庫使用“Global Database Name”來唯一標識自己,通常的格式為“name.domain”,此處的值為“ora817.huawei.com”。
HOST 是TCP/IP協議使用的服務器IP地址。
PORT 是TCP/IP使用的端口地址。
SID 指定要連接的服務器上ORACLE數據庫的ORACLE_SID。
SERVER=DEDICATED 表示用專用服務器連接ORACLE數據庫。
下面是一個tnsnames.ora文件內容舉例:
ora = 連接描述符名:ora
(description = 描述
(address = 網絡地址之一
(protocol = tcp) 網絡協議(tcp表示TCP/IP協議)
(host = 129.9.114.22) 服務器IP地址:129.9.114.22
(port = 1251) 服務器端口號:1251
)
(connect_data = 連接數據
(sid = ora7) 數據庫標識名:ora7
)
)