Oracle中TNS的完整定義:transparence Network Substrate透明網(wǎng)絡(luò)底層,監(jiān)聽(tīng)服務(wù)是它重要的一部分,不是全部,不要把TNS當(dāng)作只是監(jiān)聽(tīng)器。
TNS是Oracle Net的一部分,專(zhuān)門(mén)用來(lái)管理和配置Oracle數(shù)據(jù)庫(kù)和客戶(hù)端連接的一個(gè)工具,在大多數(shù)情況下客戶(hù)端和數(shù)據(jù)庫(kù)要通訊,必須配置TNS,當(dāng)然在少數(shù)情況下,不用配置TNS也可以連接Oracle數(shù)據(jù)庫(kù),比如通過(guò)JDBC。如果通過(guò)TNS連接Oracle,那么客戶(hù)端必須安裝Oracle client程序。
Oracle當(dāng)中,如果想訪(fǎng)問(wèn)某個(gè)服務(wù)器,必須要設(shè)置TNS,它不像SQL SERVER那樣在客戶(hù)端自動(dòng)列舉出在局域網(wǎng)內(nèi)所有的在線(xiàn)服務(wù)器,只需在客戶(hù)端選擇需要的服務(wù)器,然后使用帳號(hào)與密碼登錄即可。而Oracle不能自動(dòng)列舉出網(wǎng)內(nèi)的服務(wù)器,需要通過(guò)讀取TNS配置文件才能列出經(jīng)過(guò)配置的服務(wù)器名。
配置文件名一般為:tnsnames.ora,默認(rèn)路徑:%ORACLE_HOME%\network\admin\tnsnames.ora
上圖中的CGDB和STDCG就是對(duì)應(yīng)的TNS,HOST是指向數(shù)據(jù)庫(kù)服務(wù)器的IP,當(dāng)然局域網(wǎng)內(nèi)用計(jì)算機(jī)名稱(chēng)也是可以的。通過(guò)客戶(hù)端Net Manager創(chuàng)建一個(gè)連接到數(shù)據(jù)庫(kù)服務(wù)器的連接服務(wù)時(shí),實(shí)際上就是在tnsnames.ora文件中增加了一個(gè)TNS的內(nèi)容。
TNS的詳細(xì)配置文件TNS的配置文件包括服務(wù)器端和客戶(hù)端兩部分。服務(wù)器端有l(wèi)istener.ora、sqlnet.ora和tnsnames.ora,如果通過(guò)OCM(Oracle Connection Manage)和域名服務(wù)管理客戶(hù)端連接,服務(wù)器端可能還包括cman.ora等文件;客戶(hù)端有tnsnames.ora,sqlnet.ora。Oracle所有的TNS配置文件的默認(rèn)路徑:%ORACLE_HOME%\network\admin
listener.ora:監(jiān)聽(tīng)器配置文件,成功啟動(dòng)后是駐留在服務(wù)器端的一個(gè)服務(wù)。監(jiān)聽(tīng)器是用來(lái)偵聽(tīng)客戶(hù)端的連接請(qǐng)求以及建立客戶(hù)端和服務(wù)器端連接通道的一個(gè)服務(wù)程序。默認(rèn)情況下Oracle在1521端口上偵聽(tīng)客戶(hù)端連接請(qǐng)求。
sqlnet.ora:用來(lái)管理和約束或限制tns連接的配置,通過(guò)在該文件中設(shè)置一些參數(shù),可以管理TNS連接。根據(jù)參數(shù)作用的不同,需要分別在服務(wù)器和客戶(hù)端配置.。
tnsnames.ora:配置客戶(hù)端到服務(wù)器端的連接服務(wù),包括客戶(hù)端要連接到的服務(wù)器和數(shù)據(jù)庫(kù)的配置信息。
TNS配置可以通過(guò)Oracle Net Configuretion Assitant配置TNS,也可以手動(dòng)配置。首先在Oracle服務(wù)器端安裝完成之后,應(yīng)該先著手配置LISTENER,LISTENER是進(jìn)行Oracle通訊的首要組件,緊接著在客戶(hù)端安裝Oracle client,同時(shí)配置tnsnames.ora文件。
首先監(jiān)聽(tīng)器包括兩個(gè)部分:Oracle要監(jiān)聽(tīng)的地址、端口、通訊協(xié)議;Oracle要監(jiān)聽(tīng)的數(shù)據(jù)庫(kù)實(shí)例,非RAC環(huán)境下,LISTENER只能監(jiān)聽(tīng)本服務(wù)器的地址和實(shí)例,RAC環(huán)境下,LISTENER還可以監(jiān)聽(tīng)遠(yuǎn)程服務(wù)器。每個(gè)數(shù)據(jù)庫(kù)最少要配置一個(gè)監(jiān)聽(tīng)器。(注:RAC環(huán)境,指的是Oracle服務(wù)器集群配置的環(huán)境)
LISTENER部分配置了Oracle要監(jiān)聽(tīng)的地址和端口信息;該文件中還會(huì)包括SID_LIST_LISTENER部分,這部分配置了Oracle需要監(jiān)聽(tīng)的實(shí)例。(注:在上述截圖中并沒(méi)有SID_LIST_LISTENER這一部分,這是因?yàn)镺racle自9i版本引入了動(dòng)態(tài)監(jiān)聽(tīng)服務(wù)注冊(cè),在數(shù)據(jù)庫(kù)啟動(dòng)時(shí),會(huì)自動(dòng)注冊(cè)當(dāng)前數(shù)據(jù)庫(kù)實(shí)例到監(jiān)聽(tīng)列表,所以無(wú)需配置SID_LIST_LISTENER部分了)
HOST參數(shù)可以是Oracle服務(wù)器主機(jī)名稱(chēng),也可以是相應(yīng)的IP地址。在一個(gè)多IP的服務(wù)器上可以配置listener同時(shí)監(jiān)聽(tīng)多個(gè)地址,比如下面的配置:LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.11)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.11) (PORT=1521))) ),或者可以配置多個(gè)監(jiān)聽(tīng)器,分別監(jiān)聽(tīng)不同的IP地址。
一般說(shuō)的TNS配置其實(shí)就是對(duì)tnsnames.ora文件的配置,tnsnames.ora有客戶(hù)端的配置,也有服務(wù)器端的配置??蛻?hù)端和服務(wù)器端配置的區(qū)別是因?yàn)榉?wù)器端的配置跟LISTENER的配置相關(guān)。下面是一個(gè)簡(jiǎn)單的配置示例:
tnsnames.ora也包括兩部分,ADDRESS_LIST 部分包含了Oracle數(shù)據(jù)庫(kù)服務(wù)器的監(jiān)聽(tīng)地址信息,也就是要告訴TNS數(shù)據(jù)庫(kù)可通過(guò)這個(gè)地址和CLIENT進(jìn)行通訊;CONNECT_DATA 定義了CLIENT要連接的數(shù)據(jù)庫(kù),以及數(shù)據(jù)庫(kù)的連接方式,(專(zhuān)用或共享)。
在一個(gè)多IP環(huán)境中,TNS也可以配置多個(gè)遠(yuǎn)程IP地址:CGDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.55)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.56)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = CGDB) (SERVER = DEDICATED) ) )
sqlnet.ora是個(gè)很重要的配置,它可以控制和管理Oracle連接的屬性,根據(jù)參數(shù)作用的不同決定在客戶(hù)端配置還是在server端配置。sqlnet.ora的配置是全局性的,也就說(shuō)sqlnet.ora的配置是對(duì)所有的連接起作用,如果想對(duì)某個(gè)特殊的連接或服務(wù)進(jìn)行約束或限制,可以 在TNS配置相應(yīng)參數(shù)。
標(biāo)簽:六安 孝感 淮南 泰安 宜春 海北 葫蘆島 酒泉
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《oracle數(shù)據(jù)庫(kù)tns配置方法詳解》,本文關(guān)鍵詞 oracle,數(shù)據(jù)庫(kù),tns,配置,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。