oracle客戶端的安裝與遠端連線配置
(2009-07-02 23:12:11)
標籤:oracle連線機制
***it
分類:oracle資料庫管理與應用
在繼續oracle客戶端的安裝之前,需要分析一下oracle客戶端與資料庫伺服器之間的連線機制。
一、oracle客戶端與伺服器端的通訊機制
1、oracle net協議
如下圖所示,oracle通過oracle net協議實現客戶端與伺服器端的連線以及資料傳遞。oracle net是同時駐留在oracle資料庫伺服器端和客戶端上的乙個軟體層,它封裝了tcp/ip協議,負責建立與維護客戶端應用程式到資料庫伺服器的連線。
如下圖所示,客戶端發出的請求首先通過oracle net協議轉換,轉換成可以通過網路傳輸的資訊,通過tcp/ip網路將請求傳輸到資料庫伺服器端;伺服器端接受到客戶請求後要通過oracle net協議轉換,將請求轉換成資料庫可以解釋執行的本地指令,並在伺服器端執行(主要是一些輸入輸出操作),並將結果通過tcp/ip協議和oracle net協議傳輸給客戶端顯示。
2、客戶端與伺服器端的連線過程
在分析客戶端與伺服器端的連線機制之前,先要定義兩個概念,乙個是oracle***,乙個是oracle網路服務名。
oracle資料庫伺服器通過乙個名為「oracle net***」的元件接收來自客戶端的連線請求。***是位於伺服器端的乙個後台程序,傳送給資料庫的客戶端連線請求,首先被伺服器端的***所偵聽,並將請求所轉交給對應的資料庫例項,從而建立起客戶端與伺服器的連線。連線建立後,客戶端與伺服器端就可以直接進行通訊,不再需要***參與。
要實現***對客戶請求的監聽,需要對***進行配置,包括監聽埠、***所在資料庫的全域性資料庫名稱、資料庫例項等資訊。
oracle網路服務名是乙個識別符號,它代表著客戶端連線伺服器的配置資訊(實際上就是連線請求的內容),包括資料庫主機位址、監聽埠、全域性資料庫名稱等內容((有關全域性資料庫、資料庫例項等,請參考oracle資料庫安裝部分)。
如圖所示,客戶端與服務端的連線過程為:
(1)首先在伺服器端有乙個常駐的***(監聽服務要開啟)監聽客戶端發出的連線請求。
(2)使用者在客戶端(企業伺服器或sql工具)輸入使用者名稱、口令及網路服務名,或在sql命令列中輸入類似「connect username/password@net_service_name」的類似請求。
(3)客戶端檢視網路服務配置檔案tnsname.ora,將網路服務名對映為包含oracle伺服器位址、監聽埠和全域性資料庫名的連線描述符。
(4)客戶端根據連線描述符定位***,並通過網路將連線資訊傳遞給***。
(5)***查詢監聽配置檔案listener.ora,找出所要連線的資料庫伺服器。
(6)客戶機和伺服器開始通訊。
二、***配置
1、新增和配置***
如下圖所示使用oracle net configuration asistant工具新增並配置伺服器的***:
監聽程式配置完成後,資料庫系統會自動啟動該***。
新增和配置***後也可以使用oracle net manager工具檢視和修改***配置,如監聽位置、***所服務的全域性資料庫名稱等。如下圖所示:
對於本安裝,***配置資訊記錄在e:/oracle_server/oracle/ora92/network/admin/listener.ora檔案中。其主要內容如下:
listener =
(description_list =
(description =
(address_list =
(address = (protocol = tcp)(host = tsinghua-p5z3mm)(port = 1521))))
)sid_list_listener =
(sid_list =
(sid_desc =
(sid_name = pl***tproc)
(oracle_home = e:/oracle_server/oracle/ora92)
(program = extproc)
)(sid_desc =
(global_dbname = mydb.bawei)
(oracle_home = e:/oracle_server/oracle/ora92)
(sid_name = mydb)))
三、客戶端工具的安裝與網路服務的配置
可以在不同於資料庫主機的其它機器安裝客戶端工具,並通過配置客戶端網路服務,連線到資料庫伺服器。客戶端安裝與配置過程如下圖所示(本安裝將客戶端安裝在了與資料庫同一臺機器的不同目錄中,模擬遠端訪問資料庫的情況):
在安裝了客戶端並配置了客戶端網路服務名之後就可以從客戶端工具登入和訪問遠端資料庫伺服器了。對於本安裝,客戶端網路服務配置記錄在e:/oracle_client/oracle/ora92/network/admin/tnsnames.ora檔案中,其主要內容如下:
remotedb =
(description =
(address_list =
(address = (protocol = tcp)(host = 192.168.10.6)(port = 1521))
)(connect_data =
(service_name = mydb.bawei)))
這樣,當在客戶端工具中輸入網路服務名remotedb時,將被解析為資料庫位址、埠、全域性資料庫名等資訊,與輸入的使用者名稱、密碼一起傳送到伺服器端,由***接收,並與監聽配置檔案對照,將請求轉交給相應的資料庫例項處理。
客戶端網路服務可以使用客戶端的oracle net manager工具進行修改,也可以新增新的客戶端網路服務名。
需要指出的是:
伺服器端的客戶工具(sql plus、企業管理控制台等)與資料庫服務的連線機制與遠端客戶端連線是一樣的。
在安裝完oracle資料庫後,系統預設在資料庫伺服器本地安裝了sql plus等客戶端工具,而且在監聽配置檔案的相同位置e:/oracle_server/oracle/ora92/network/admin資料夾中預設提供了伺服器端的網路服務連線配置檔案tnsnames.ora,其中包含乙個與資料庫例項sid同名的網路服務名配置,包括資料庫所在主機名或ip位址、監聽埠、資料庫服務名(全域性資料庫名)等。對於本安裝,該tnsnames.ora檔案主要內容如下:
mydb =
(description =
(address_list =
(address = (protocol = tcp)(host = tsinghua-p5z3mm)(port = 1521))
)(connect_data =
(server = dedicated)
(service_name = mydb.bawei)))
當使用資料庫伺服器端的客戶工具時,和從遠端客戶機連線伺服器一樣,也是根據輸入的使用者名稱、密碼及網路服務名(或類似connect username/password@net_service_name的sql命令列),查詢tnsnames.ora檔案,找到網路連線服務名等於net_service_name的一項,並獲取資料庫主機位址、監聽埠、全域性資料庫名等資訊。
該請求資訊同樣被傳輸到監聽埠,***再將該資訊與同在資料夾e:/oracle_server/oracle/ora92/network/admin中的listener.ora***配置檔案對照,如果listener.ora***配置檔案中包含匹配的項,則將該請求轉給對應的資料庫例項。
由此可見,伺服器端的客戶端工具與資料庫服務的連線與遠端客戶端連線一樣,執行了相同的的過程。
實際上,伺服器端的客戶工具是通過伺服器端tnsnames.ora和listener.ora進行驗證並建立連線;遠端客戶端是通過客戶端的tnsnames.ora和伺服器端的listener.ora執行驗證和建立連線。
Oracle客戶端的安裝與遠端連線配置
在繼續oracle客戶端的安裝之前,需要分析一下oracle客戶端與資料庫伺服器之間的連線機制。一 oracle客戶端與伺服器端的通訊機制 1 oracle net協議 如下圖所示,oracle通過oracle net協議實現客戶端與伺服器端的連線以及資料傳遞。oracle net是同時駐留在ora...
安裝oracle客戶端 plsql遠端連線
code orcl description address protocol tcp host 20101228 0959 port 1521 host的值為伺服器ip。區域網,ip和計算機名稱都行 connect data server dedicated service name orcl 3 ...
oracle客戶端安裝
instantclient basic win32 10.2.0.3 20061115.zip 解壓instantclient basic win32 10.2.0.3 20061115.zip到d盤,全路徑為 d instantclient 10 2 設定環境變數 tns admin d inst...