oracle包含
1、軟體
2、資料庫
3、例項
4、監聽(listener)
監聽的特點
可以獨立啟動,就是說,資料庫沒有啟動,監聽可以啟動;資料庫啟動,監聽也可以不啟動;資料庫啟動,監聽也啟動
監聽和資料庫是獨立分開的
資料庫的整個網路結構
圖解:
1、資料庫有資料庫的名字:dbname;例項有例項的名字:instancename;對整個資料庫來說,還有一個名字:servername(跟後面的負載均衡有關);預設情況下,這三個名字是一樣的,前兩個的名字不能改,但是servername是可以改的
2、資料庫啟動,監聽也啟動了,這時候,pmonitor程序會做一件事:就是把例項的名字和servername自動告訴(自動註冊)監聽,這個是oracle自動完成的,
3、使用者連線上資料庫的時候,監聽會啟動一個埠號:1521,使用者連線之後,監聽會返回來問使用者要連線哪個servername,然後根據servername就可以找到instancename,之後,例項就會起一個server process,同時把server process的地址告訴監聽,然後監聽把server process的地址告訴使用者,使用者直接透過server process連線例項,這時候例項會跟使用者要使用者名稱和密碼,然後跟例項的使用者名稱和密碼進行對比,正確的話,連線就正式建立了,也就是客戶端和例項之間就正式建立了一個連線,也就是建立了一個會話,客戶端就可以訪問資料庫例項了
4、連線建立以後,這時候如果把監聽關了,連線也在,連線也不會斷開
監聽只是負責使用者(客戶端)連線上資料庫例項的,連線上之後,監聽就沒有意義
監聽:
1、預設:1521埠啟動
以後配監聽的時候,必須確認這個監聽在哪個ip地址上,埠號是多少
2、監聽是獨立的
3、用於連線建立的
4、監聽和例項之間有一個關係
1、ip和埠
2、連線哪個servername
3、server process
4、username/password
5、使用者傳送SQL、PLSQL
使用sqlplus客戶端連線資料庫(網路連線):
sqlplus sysdb/oracle@192.168.56.1:1521/orcl --orcl:servername
手工配置監聽
監聽可能存在這麼一個問題:pmonitor可能沒有把instancename和servername那麼好的註冊到監聽裡,就導致使用者連線資料庫失敗了,這時候,我們可以手工配置
手工配置(靜態註冊)有這麼一個特點:監聽啟動以後,監聽裡面就有了servername和instancename,就算例項沒有啟動,也會認為監聽裡面有servername和instancename
當pmonitor自動註冊不穩定的時候,我們可以手工配置一下servername和instancename
使用者(客戶端)連線資料庫時候需要注意的幾個點:
1、監聽有沒有啟動了(監聽在不在,就是ip和埠號在不在)
2、判斷監聽下面有沒有servername和instancename,同時判斷監聽裡面的servername和客戶端要連線的servername是不是一致的
3、判斷例項是否啟動了
4、確認使用者名稱和密碼是否正確