oracle網路配置

wang_0720發表於2013-11-06
在oracle網路配置中有三個檔案很重要
1、listener.ora:存在於伺服器端
2、tnsnames.ora:存在於客戶端
3、sqlnet.ora:存在於伺服器端,或客戶端,或者兩者都有,它用來對所有連線和監聽進行高階選項配置,如各種安全規則,加密方式。
這三個檔案都位於$ORACLE_HOME/network/admin資料夾中,可以透過指定環境變數TNS_ADMIN來改變他們的位置;本例中放在/u01/app/oracle/product/10.2.0/db_1/network/admin下。

1 sqlnet.ora作用類似於linux或者其他unix的nsswitch.conf檔案,透過這個檔案來決定怎麼樣找一個連線中出現的連線字串
例如客戶端輸入sqlplus sys/sys@orcl
如果sqlnet.ora類似如下配置
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那麼,客戶端就會首先在tnsnames.ora檔案中找orcl的記錄.如果沒有相應的記錄則嘗試把orcl當作一個主機名,透過網路的途徑去解析它的ip地址然後去連線這個ip上GLOBAL_DBNAME=orcl這個例項。
如果配置NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)那麼客戶端就只會從tnsnames.ora查詢orcl的記錄,括號中還有其他選項,不常用。

2 tnsnames.ora這個檔案類似於unix的hosts檔案,提供的tnsname到主機名或者ip的對應,只有當sqlnet.ora中類似NAMES.DIRECTORY_PATH= (TNSNAMES) 這樣的配置,也就是客戶端解析連線字串的順序中有TNSNAMES時,才會嘗試使用這個檔案。
PROTOCOL:客戶端與伺服器端通訊的協議,一般為TCP,該內容一般不用改。
HOST:資料庫偵聽oracle伺服器的IP或主機名
PORT:資料庫偵聽oracle伺服器正在偵聽的埠,可以察看伺服器端的listener.ora檔案或在資料庫偵聽所在的機器的命令提示符下透過lnsrctl status [listener name]命令察看。此處Port的值一定要與資料庫偵聽正在偵聽的埠一樣。
SERVICE_NAME:和伺服器端listener.ora中的SID_LIST_LISTENER下的SID_NAME保持一致,用system使用者登陸後,sqlplus> show parameter service_name命令察看。
PROGRAM = extproc 註釋掉

3 listener.ora listener監聽器程式的配置文。接受遠端對資料庫的接入申請並轉交給oracle的伺服器程式。如果不是使用遠端的連線,listener程式就不是必需的,同樣的如果關閉listener程式並不會影響已經存在的資料庫連線

客戶端遠端連線oracle伺服器的過程如下
當輸入sqlplus sys/sys@orcl的時候
1. 查詢sqlnet.ora看看名稱的解析方式,發現是TNSNAME
2. 則查詢tnsnames.ora檔案,從裡邊找orcl的記錄,並且找到主機名,埠和service_name
3. 如果listener程式沒有問題的話,建立與listener程式的連線。
4. 根據不同的伺服器模式如專用伺服器模式或者共享伺服器模式,listener採取接下去的動作。預設是專用伺服器模式,沒有問題的話客戶端就連線上了資料庫的server process。
5. 這時候網路連線已經建立,listener程式的工作也就完成了

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27181165/viewspace-775856/,如需轉載,請註明出處,否則將追究法律責任。

相關文章