安裝過ORACLE的都知道,oracle安裝時需要進行配置,這個配置可以在客戶端的企業管理器一步一步進行,或者直接拷貝一個tnsnames.ora文件到安裝目錄下(c:\app\Administrator\product\11.2.0\client_1\network\admin)。 為什么要配置這個文件?這個文件的作用又是什么? SQL SERVER你使用客戶端的時候,會自動搜過局域網內的在線的數據庫,你就可以清楚知道哪台可以連。但ORACLE不同,不能像SQL SERVER列出來。ORACLE的客戶機為了和服務器連接,必須先和服務器上的監聽進程聯絡。ORACLE通過tnsnames.ora文件中的連接描述符來說明連接信息。一般tnsnames.ora 是建立在客戶機上的。如果是客戶機/服務器結構,整個網絡上只有一台機器安裝了ORACLE數據庫服務器,那么只需在每個要訪問ORACLE服務器的客戶機上定義該文件,在服務器上無需定義。但是,如果網絡上有多台機器均安裝了ORACLE數據庫服務器,並且服務器之間有數據共享的要求,那么在每台服務器上都必須定義該文件。tnsnames.ora文件缺省放在/ORACLE_HOME/ product/8.1.7/network/admin目錄下。 tnsnames.ora是配置連接字符串的,會配置你連的IP,端口,數據庫實例等信息記錄客戶端訪問數據庫的本地配置。下面是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”就是“GlobalDatabase Name”,ORACLE8i數據庫使用“GlobalDatabaseName”來唯一標識自己,通常的格式為“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 (SERVER = DEDICATED) (SERVICE_NAME = ora9i) ) )