Oracle配置管理

一、Oracle客戶端與服務器端的通信機制

Oracle產品安裝完成後,服務器和客戶端都需要進行網絡配置才能實現網絡連接,服務器端配置監聽器,客戶端配置網絡服務名。

 

1、oracle net協議

Oracle通過oracle net協議實現客戶端與服務器端的連接及數據傳遞。Oracle net是同時駐留在服務器端和客戶端上的一個軟件層,它封裝了TCP/IP,負責建立與維護客戶端應用程序到數據庫服務器的連接。有協議就要有相應的端口,所以oracle NET有個默認的偵聽端口1521

blob.png.

客戶端發出的請求首先通過oracle net協議轉換,轉換成可以通過網絡傳輸的信息,通過tcp/ip網絡將請求傳輸到數據庫服務器端,服務器端收到客戶端請求後通過oracle net協議轉換,將請求轉換成數據庫可以解釋執行的本地指令,並在服務器端執行,並將結果通過tcp/iporacle  net協議傳輸給客戶端顯示。

 

2、客戶端與服務器端的連接過程

Oracle服務器通過一個名爲“oracle  net監聽器”的組件接收來自客戶端的連接請求,監聽位於服務器端的一個後臺進程。發送的客戶端連接請求,首先被服務器的監聽器所偵聽,並交給對應的數據庫實例,從而建立起客戶端與服務器的連接。連接建立後,客戶端與服務器端就可以直接進行通信,不需要監聽器參與。要實現監聽器對客戶請求的監聽,需要對監聽器進行配置。

Oracle網絡服務名是一個標識符,代表客戶端連接服務器的配置信息。

blob.png

客戶端與服務器端的連接過程如下:

1)在服務器端有一個常駐的監聽器,監聽客戶端發出的連接請求。

2)用戶在客戶端使用(企業管理器或sql工具),輸入用戶名、口令及網絡服務名,或在sql命令行中輸入類似“CONNECT username/password@net_service_name”的請求。

3)客戶端查看網絡服務配置文件tnsnames.ora文件,將網絡服務名映射爲包含oracle服務器地址、監聽端口和全局數據庫名的連接描述符。

4)客戶端根據連接描述符定位監聽器,並通過網絡連接信息傳遞給監聽器。

5)監聽器查詢監聽配置文件listener.ora,找出所要連接的服務器。

6)客戶端和服務器開始通信。

 

3、配置和管理Oracle網絡配置的工具常見的有以下幾種:

blob.png

1)netca方式

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

查看監聽文件

blob.png

 

開啓新的監聽器

blob.png

查看監聽器狀態

blob.png

2)netmgr方式

blob.png

添加監聽器即可

 

3)命令方式

修改vim /opt/oracle/product/11.2/db_1/network/admin/listener.ora

增加新的偵聽器,代碼如下:


blob.png

開啓新的監聽器

blob.png


blob.png

上面紅框中的代碼the  listener supports no services顯示沒有任何服務註冊到該監聽器上,這與監聽和數據庫實例的啓動先後順序有關。

 

解決方法:監聽啓動和數據庫實例啓動的順序

根據前面的知識,啓動完數據庫實例後,啓動監聽,在連接數據庫時,只有這二者兼備,oracle才能向外提供服務。

監聽和實例啓動順序的先後會對二者之間的工作協調產生影響,具體如下:

 

先啓動監聽,後啓動實例:此時遠程客戶端連接實例是正常的,不會有問題,因爲監聽先啓動,在啓動實例時後臺進程PMON會向監聽註冊服務器,當用戶請求服務時,兩者的協調工作已準備就緒。

先啓動實例,後啓動監聽:如果監聽剛啓動,用戶馬上連接實例,可能會報“監聽程序當前無法識別連接描述符中請求的服務”的錯誤,原因在於PMON還沒來得及向監聽註冊實例服務。但是這個問題只會存在很短的一段時間,再連接就不會有問題了,爲什麼等一會就好了呢?因爲PMON每隔一段時間都會看有無服務需要向監聽註冊,此時若監聽已啓動,PMON就能註冊成功,二者的協調工作就準備就緒了。

有沒有辦法解決很短的一段時間內的這個問題呢?答案是一定的。就是以靜態註冊的方式,即將實例的服務描述添加到listener.ora,這樣只要啓動監聽,對應的服務在監聽中就註冊了。這是隻要實例正常啓動完成,就可以對外提供服務器了。在Listener.ora代碼中添加如下代碼即可。

blob.png

4、客戶端的連接

客戶端連接到數據庫服務器必須知道一些信息,如數據庫服務器的主機名或ip地址,使用的通信協議、端口號、以及對應的數據庫服務名,這些需要在客戶端設置

1)win7上安裝oracle客戶端軟件

blob.png

雙擊上圖中第二個文件安裝

 

安裝完成時候會在c:盤下生成oracle文件夾:

blob.png

2)找到c:\oracle\product\11.2.0\client_lite\network\admin\tnsnames.ora文件,並修改,修改結果如下:

blob.png

 

3)注意:需要在hosts文件裏面添加解析

blob.png

 

4)在win7客戶端上打開命名行,執行命令連接

blob.png

已經遠程連接到oracle服務器


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章