oracle數據庫的TNS配置

TNS簡要介紹與應用sql

Oracle中TNS的完整定義:transparence Network Substrate透明網絡底層,監聽服務是它重要的一部分,不是所有,不要把TNS看成只是監聽器。數據庫

TNS是Oracle Net的一部分,專門用來管理和配置Oracle數據庫和客戶端鏈接的一個工具,在大多數狀況下客戶端和數據庫要通信,必須配置TNS,固然在少數狀況下,不用配置TNS也能夠鏈接Oracle數據庫,好比經過JDBC。若是經過TNS鏈接Oracle,那麼客戶端必須安裝Oracle client程序。服務器

Oracle當中,若是想訪問某個服務器,必需要設置TNS,它不像SQL SERVER那樣在客戶端自動列舉出在局域網內全部的在線服務器,只需在客戶端選擇須要的服務器,而後使用賬號與密碼登陸便可。而Oracle不能自動列舉出網內的服務器,須要經過讀取TNS配置文件才能列出通過配置的服務器名。網絡

配置文件名通常爲:tnsnames.ora,默認路徑:%ORACLE_HOME%\network\admin\tnsnames.oratcp

上圖中的CGDB和STDCG就是對應的TNS,HOST是指向數據庫服務器的IP,固然局域網內用計算機名稱也是能夠的。經過客戶端Net Manager建立一個鏈接到數據庫服務器的鏈接服務時,實際上就是在tnsnames.ora文件中增長了一個TNS的內容。工具

TNS的詳細配置文件spa

TNS的配置文件包括服務器端和客戶端兩部分。服務器端有listener.ora、sqlnet.ora和tnsnames.ora,若是經過OCM(Oracle Connection Manage)和域名服務管理客戶端鏈接,服務器端可能還包括cman.ora等文件;客戶端有tnsnames.ora,sqlnet.ora。Oracle全部的TNS配置文件的默認路徑:%ORACLE_HOME%\network\adminserver

listener.ora:監聽器配置文件,成功啓動後是駐留在服務器端的一個服務。監聽器是用來偵聽客戶端的鏈接請求以及創建客戶端和服務器端鏈接通道的一個服務程序。默認狀況下Oracle在1521端口上偵聽客戶端鏈接請求。blog

sqlnet.ora:用來管理和約束或限制tns鏈接的配置,經過在該文件中設置一些參數,能夠管理TNS鏈接。根據參數做用的不一樣,須要分別在服務器和客戶端配置.。域名

tnsnames.ora:配置客戶端到服務器端的鏈接服務,包括客戶端要鏈接到的服務器和數據庫的配置信息。

TNS配置

能夠經過Oracle Net Configuretion Assitant配置TNS,也能夠手動配置。首先在Oracle服務器端安裝完成以後,應該先着手配置LISTENER,LISTENER是進行Oracle通信的首要組件,緊接着在客戶端安裝Oracle client,同時配置tnsnames.ora文件。

首先監聽器包括兩個部分:Oracle要監聽的地址、端口、通信協議;Oracle要監聽的數據庫實例,非RAC環境下,LISTENER只能監聽本服務器的地址和實例,RAC環境下,LISTENER還能夠監聽遠程服務器。每一個數據庫最少要配置一個監聽器。(注:RAC環境,指的是Oracle服務器集羣配置的環境)

LISTENER部分配置了Oracle要監聽的地址和端口信息;該文件中還會包括SID_LIST_LISTENER部分,這部分配置了Oracle須要監聽的實例。(注:在上述截圖中並無SID_LIST_LISTENER這一部分,這是由於Oracle自9i版本引入了動態監聽服務註冊,在數據庫啓動時,會自動註冊當前數據庫實例到監聽列表,因此無需配置SID_LIST_LISTENER部分了)

HOST參數能夠是Oracle服務器主機名稱,也能夠是相應的IP地址。在一個多IP的服務器上能夠配置listener同時監聽多個地址,好比下面的配置:LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.11)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.11) (PORT=1521))) ),或者能夠配置多個監聽器,分別監聽不一樣的IP地址。

通常說的TNS配置其實就是對tnsnames.ora文件的配置,tnsnames.ora有客戶端的配置,也有服務器端的配置。客戶端和服務器端配置的區別是由於服務器端的配置跟LISTENER的配置相關。下面是一個簡單的配置示例:

tnsnames.ora也包括兩部分,ADDRESS_LIST 部分包含了Oracle數據庫服務器的監聽地址信息,也就是要告訴TNS數據庫可經過這個地址和CLIENT進行通信;CONNECT_DATA 定義了CLIENT要鏈接的數據庫,以及數據庫的鏈接方式,(專用或共享)。

在一個多IP環境中,TNS也能夠配置多個遠程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是個很重要的配置,它能夠控制和管理Oracle鏈接的屬性,根據參數做用的不一樣決定在客戶端配置仍是在server端配置。sqlnet.ora的配置是全局性的,也就說sqlnet.ora的配置是對全部的鏈接起做用,若是想對某個特殊的鏈接或服務進行約束或限制,能夠 在TNS配置相應參數。

相關文章
相關標籤/搜索