概念
適用場景
通用引數
local_listener
pmon只會動態註冊port等於1521的監聽,否則pmon不能動態註冊listener,要想讓pmon動態註冊listener,需要設定local_listener引數。
listener_networks:配置多個remote_listener、local_listener時需要,平時很少用
例子:alter system set listener_networks='((name=network1)(local_listener=listener_net1)(remote_listener=scanone.gaopp.com:1521))','((name=network2)(local_listener=listener_net2)(remote_listener=remote_net2))';
共享引數
記憶體
程序
資料庫啟動之後比專用伺服器模式會多出兩種程序,一種是排程程序(dnnn),一種是共享伺服器程序(snnn)。來自客戶端的請求會被dispatcher接受,然後dispatcher將請求置入request佇列。空閒的server process會按照request佇列開始處理佇列中的請求。處理過後的結果放入response佇列中。最後再由dispatcher來將最後的結果返回給客戶端。
優點
缺點:由於共享伺服器模式存在種種問題,同時中介軟體也完全可以實現連線池的效果,所以一般情況下不會共享伺服器模式,使用專用伺服器模式即可。
event
檢視
只需要將引數shared_servers設定為0,即可關閉資料庫的共享模式。執行該指令碼後,所有以共享方式連線到資料庫都不能成功,但是未釋放的共享連線會繼續保持連線,直到斷開為止。
alter system set shared_servers=0;
如果同時將引數shared_servers和max_shared_servers都設定為0,那麼共享連線方式將被終結。所有的共享方式連線都會斷開(已經連線的會話也會斷開)
設定shared_servers這個引數,將其值設定為大於0即可開啟伺服器共享模式。其他的共享伺服器引數可以不用設定,但是最好也設定一下max_shared_servers引數
alter system set shared_servers=1 scope=both;
alter system set max_shared_servers =24 scope=both;
關於引數dispatchers的設定,可以使用下面命令
alter system set dispatchers='(protocol=tcp)(disp=8)(serv=***)』
前面表示的是協議,disp表示排程器(dipatcher)的程序數量,service分別指定要採用共享伺服器模式的服務名稱。使用上面的模式指定只啟動某個服務的共享模式,如果要設定所有服務都使用共享模式,則設定為:
alter system set dispatchers='(protocol=tcp)';
檢視v$session檢視
通過v$session檢視的server欄位來進一步判斷當前連線模式
select sid, username, osuser, machine,terminal, server
from v$session
where username is not null;
檢視連線資料庫的tns配置檔案,如下所示
test =
(description =
(address_list =
(address = (protocol = tcp)(host = 192.168.16.22)(port = 1521))
)(connect_data =
# server = dedicated為專用服務模式
(server = shared)
(service_name = epps)
))
共享模式 專有模式
概念 適用場景 通用引數 local listener pmon只會動態註冊port等於1521的監聽,否則pmon不能動態註冊listener,要想讓pmon動態註冊listener,需要設定local listener引數。listener networks 配置多個remote listene...
設計模式 共享模式
看了果凍兄的部落格,發現大家對裡面的乙個實現有一些不同的見解,貼出來記錄一下,其博文如下 共享模式的主要想法就是 運用共享技術有效地支援大量細粒度的物件。所以應該將物件的外部特徵由更高一級的物件來管理。在原文中,博主將棋子的外部特徵 座標 作為了棋子的乙個屬性來管理,又在棋盤類中採用覆蓋的方法來每一...
設計模式 共享模式
一 共享模式 共享模式 運用共享技術有效的支援大量細粒度的物件 flyweigth類,具有所有享元類的超類或介面 abstract class flyweigth concreteflyweigth是繼承flyweigth超累或實現介面,並為內部狀態增加儲存空間 class concreteflyw...