概述
Oracle服務器處理請求的兩種最常用的方式,這兩種方式分別是專用服務器連接和共享服務器連接。
專用服務器:一個客戶端連接對應一個服務器進程
共享服務器:多個客戶端連接對應一個服務器進程,服務器端存在一個進程調度器來管理。
那麼,怎麼判斷你的oracle服務器是哪種模式呢,有以下幾種方法~
判斷Oracle服務器模式(專用/共享)?
1、show parameter shared_server 參數
是否為配置為共享服務器最主要的參數是:show parameter shared_server
如果數值 > 0 ,就是enable了共享服務器.
也可以從v$parameter 視圖中查.
2、查看tnsnames.ora
在配置為共享服務器的情況,Client可以選擇用共享服務器或者專用服務器來連接到數據庫,這個參數的控制是在tnsnames.ora裡設定的
aaaa=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = aaaa)(PORT = 1521))
)
(CONNECT_DATA =
(SID = aa)
(SERVER = DEDICATED)
)
)
加粗部分指定了用DEDICATED方式連接DB.
另外,Background process ,以及通過本地連接進來的,只能是DEDICATED
3、判斷一個已經連接的session的連接方式
有兩種方法
A.select username,server from v$session;
如果server = 'DEDICATED'則是DEDICATED方式
server='SHARED'則是shared方式,並且正有shared_server_process為其服務
server='NONE'的話,則是shared方式,並且當前沒有shared_server_process為其服務。
B. 僅用於Unix 底下,似乎windown不行
連接v$session, v$process 看process中的program
1 select p.program,s.server from v$session s , v$process p
2* where s.paddr = p.addr
如果 program 為 。。(S0NN) 的,則是shared方式,並且正有shared_server_process為其服務
如果 program 為 。。(D0NN) 的,則是shared方式,並且當前沒有shared_server_process為其服務
如果 program 為 其它的,則是'DEDICATED'方式
篇幅有限,關於專用服務器、共享服務器的體系結構和配置寫不了了(起碼3倍內容),大家有興趣的話可以關注我然後私信下找我拿,我把筆記分享給你~
閱讀更多 波波說運維 的文章