Oracle 的两种工作模式Dedicated Server 和 Shared Server
生活随笔
收集整理的這篇文章主要介紹了
Oracle 的两种工作模式Dedicated Server 和 Shared Server
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
???????? Oracle可以分成兩種工作模式, 分別是 Dedicated Server 和 Shared Server
????????
???????? 1? Dedicated Server
???????????????? 從字面上理解的就是專用服務器模式,? 實際上意思就是指每當有1個新的用戶客戶端提出連接請求. 建立1個session時, Oracle 服務器端都會啟動1個對應的服務器進程(server process)與其對接. 那么這個server process就專門為這個session服務了.
???????????????? 簡單d來講 Dedicated Server 模式下,? 每1個連接中的session都會有1個server process與其對接.?
???????????????? Dedicated Server 模式是Oracle最常用的模式.
???????? 2? Shared Server
????????????? 另一種模式就是shared模式了, shared 模式簡單點來講就是1個server process 可以為不同的session服務, 那么這個是怎樣實現的呢? 畫個圖便于理解.
????????????????
?
?
???????????????? 如上圖, 這種模式沒有server process, 但是有1個共享 server 池. 里面有若干個 共享server進程. (share server process)
???????????????? 當最左邊的客戶端連接(sessions)要連接數據庫時, 并不能直接訪問服務器的shared server process, 而是同個一個或一組調度進程(Dispatcher)進行調度管理.
????????????????? 如上圖中有3個調度進程.假如同一時間共有90個 session要連接數據庫. 那么每個dispatcher就會接管30個session, 他們會把sessions的請求依次放入到sga里面的請求隊列(Request Queue)中,?? 當上面的share server池中有空閑的shared server process時. 這個shared server process就會從Request Queue中提取并處理1個請求,? 當處理完成時.會將響應放入sga里的 響應隊列中(response Queue) , dispatchers 會將 response queue里的響應逐個返回給客戶端session..
?????????????????? Shared Server 模式做成這么復雜自然有它的原因.? 當1個服務器同時要鏈接很多數量的session時, 例如10000個, 如果在上面的Dediacted Server模式中就要在服務器建立對應的10000條服務器進程, 一般的服務器就很難管理這么海量的進程數量. 有可能就掛了.
??????????????????? 而在Shared Server模式中,? shared server process就是那么多個,? 再多的session請求都會放入 隊列中由空閑的shared server process逐個處理. 所以Shared Server的優點就是可以應付大量的用戶連接sessions.
???????????????????? 所以在數據庫連接量非常大.但是每個連接的負載都很小的情況下,會建議使用shared Server 模式.
?????????????????? 但是缺點也明顯. 因為流程復查,而且請求要排隊(隊列), 所以shared Server模式的速度天生就比 Dedicated Server 模式慢的,? 而且當隊列中1個對象失去響應..那么隊列中其他的對象也只能干等..相當于整個數據庫失去響應了....
總結
以上是生活随笔為你收集整理的Oracle 的两种工作模式Dedicated Server 和 Shared Server的全部內容,希望文章能夠幫你解決所遇到的問題。