怎麼判斷Oracle伺服器模式(專用

概述

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的連接方式

怎麼判斷Oracle服務器模式(專用/共享)?

有兩種方法

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倍內容),大家有興趣的話可以關注我然後私信下找我拿,我把筆記分享給你~

怎麼判斷Oracle服務器模式(專用/共享)?


分享到:


相關文章: