日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Oracle專用服務(wù)器與共享服務(wù)器的區(qū)別

系統(tǒng) 3336 0
在建立Oracle數(shù)據(jù)庫的時候,應(yīng)該會在數(shù)據(jù)庫建立助手向?qū)厦婵吹竭@么一個選項,就是數(shù)據(jù)庫的連接模式采用什么方式。在Oracle9i或者10g中,可以看到有2種連接模式,一種叫做專用 服務(wù)器 連接(dedicated server) ,另外一種叫做共享服務(wù)器連接(shared server)。下面我們來分類說一下這兩種連接方式的不同點。

  專用服務(wù)器模式就是說每次在對Oracle進行訪問的時候,Oracle服務(wù)器的Listener會得到這個訪問請求,然后回為這個訪問創(chuàng)建一 個新的進程來進行服務(wù)。所以說,對于每一個客戶端的訪問,都會生成一個新的進程進行服務(wù),是一種類似一對一的映射關(guān)系。這種連接模式的一個很重要的特點就 是UGA(用戶全局域)是存儲在PGA(進程全局域)中的,這個特性也很好說明了當前用戶的內(nèi)存空間是按照進程來進行分配的。

  而另外的共享服務(wù)器連接則是一種在 程序 編 寫的時候通常會用到的連接池(pool)的概念。采用這種模式的話,在數(shù)據(jù)庫的初始化的時候就會創(chuàng)建一批服務(wù)器連接的進程,然后把這些連接進程放入一個連 接池來進行管理。初始化的池中的進程數(shù)量在數(shù)據(jù)庫初始化建立的時候是可以手動設(shè)置的。在連接建立的時候,Listener首先接受到客戶端的建立連接的請 求,然后Listener去生成一個叫做調(diào)度器(dipatcher)的進程與客戶端進行連接。調(diào)度器把把客戶端的請求放在SGA(系統(tǒng)全局域)的一個請 求隊列中,然后再共享服務(wù)器連接池中查找有無空閑的連接,然后讓這個空閑的服務(wù)器進行處理。處理完畢以后再把處理結(jié)果放在SGA的相應(yīng)隊列中。調(diào)度器通過 查詢相應(yīng)隊列,得到返回結(jié)果,再返回給客戶端。這種連接模式的優(yōu)點在于服務(wù)器進程的數(shù)量可以得到控制,不大可能出現(xiàn)因為連接人數(shù)過多而造成服務(wù)器內(nèi)存崩 潰。但是由于增加了復雜度以及請求相應(yīng)隊列,可能性能上有所下降。

  總之,在開發(fā)階段中,用第一種專用服務(wù)器可能好一些,因為少了一些中間的復雜度,而且開發(fā)的時候一般連接的數(shù)量也少。而在多個應(yīng)用同時使用一個 數(shù)據(jù)庫的實際應(yīng)用環(huán)境下,采用第二種方法可能好一些,因為如果到時候突然有1000個或者10000個請求連接的話,數(shù)據(jù)庫服務(wù)器如果同時建立10000 個連接,肯定要受不了的。當然,也要看到時候的實際情況如何再做決定,兩者沒有絕對的哪種好哪種不好的差別

????? 關(guān)于這兩者的比較"假如你來到一個城市,要在這個城市的不同的地方辦幾件事情,在交通方面你有兩種選擇:一個是雇一輛專車,這輛專車將會把你從A帶到B, 一直等你把在B的事情辦完,在把你從B帶到C。。。。。。另一種選擇是給出租車公司打電話訂輛出租車,先把你從A帶到B,然后你和出租車該干嘛干嘛,你去 辦你的事情,出租車去接別的生意,等你在B的事情辦完了,你再跟出租車公司訂車,出租車公司將會聯(lián)系當時在B附近的其他出租車去接你。。。。。。

首先,dedicated servers的設(shè)置非常簡單-----不需要設(shè)置,這個是oracle的默認選項

而對于shared servers,你就要需要做一些額外的設(shè)置,當讓按照administrator guide并不難,關(guān)鍵是你需要決定到底需要多少個shared server servers和多少個dispatcher,這不僅僅需要經(jīng)驗的積累,還需要持續(xù)的觀察和調(diào)整。
在dedicated servers里,你所有的等待都是數(shù)據(jù)庫本身的等待,而在shared servers里你有可能需要等待一個available的shared server process。

很明顯,當用戶并發(fā)的連接數(shù)很大的時候,dedicated servers的server process個數(shù)也會變得很大,對于操作系統(tǒng)來說多一個process就意味著多一點管理負擔,要知道操作系統(tǒng)支持的同時并發(fā)數(shù)可不是無限的。這意味 著,在dedicate servers里,當你有大量的用戶連接(比如,同一時間超過5000個用戶連上來),你的系統(tǒng)負擔就會相當大。而這種情況shared servers就可以處理的相對好一些,因為加入同時有5000個用戶連上來而且我們知道一般只有1%的連接是active,那我們只需要設(shè)置50個 shared servers就可以把所有的用戶請求處理得很好,并節(jié)省了系統(tǒng)資源。

作為一個好處,shared servers可以用來控制concurrent。要知道用戶的并發(fā)數(shù)和系統(tǒng)的處理能力決不是成正比的(可以下面的圖),當用戶并發(fā)數(shù)超過一個閥值,系統(tǒng) 的處理能力會明顯下降。通過shared servers可以控制系統(tǒng)的concurrent不超過這個閥值。

在引入PGA的自動管理以前,shared servers是要比dedicated servers節(jié)省內(nèi)存的,然后在自動管理的PGA引入之后,shared servers的這個優(yōu)勢已經(jīng)不像我們想象的那么不明顯了。

dedicate servers一個server process為了一個較大的request而長時間的工作而不影響其它的users,然而在shared servers,一些較大的request會影響其它的用戶。

還需要考慮其他的因素,比如,如果在前端使用了weblogic的connecting pool,那么你在database level再使用shared servers可能就不是很必要,因為這時你的用戶連接已經(jīng)在weblogic層面上得到了控制。

shared servers還有一個所謂的偽死鎖的問題,這點大家參考一下tom的新書就知道了。

關(guān)于dedicated servers和shared servers的話題我們就討論這么多,最后給大家一個小提示:其實dedicated servers和shared servers是可以并存的,實際上,即使你使用了shared servers,某些管理操作也是必須在dedicated 模式下來做的,比如startup或shutdown database。如果你實在難以選擇,如果你的應(yīng)用可能一部分是OLTP的(用戶量也很大),一部分是DW的,其實你可以考慮同時使用 dedicated servers和shared servers。

"

查看運行情況 :

idle> show parameter shared_server mts_servers

NAME_COL_PLUS_SHOW_PARAM TYPE
---------------------------------------------------------------- -----------
VALUE_COL_PLUS_SHOW_PARAM
-----------------------------------------------------------------------------------------------------------------------------------
max_shared_servers integer
20
shared_server_sessions integer
165
shared_servers integer
1

--如果VALUE_COL_PLUS_SHOW_PARAM大于0為dedicated模式
idle> select p.program,s.server from v$session s , v$process p
2 where s.paddr = p.addr
3 ;

PROGRAM SERVER
------------------------------------------------ ---------
oracle@infa (PMON) DEDICATED
oracle@infa (DBW0) DEDICATED
oracle@infa (LGWR) DEDICATED
oracle@infa (CKPT) DEDICATED
oracle@infa (SMON) DEDICATED
oracle@infa (RECO) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED

15 rows selected.

模式切換 :

客戶端建立的連接。
如果服務(wù)器是專用模式,客戶端再怎么修改也沒有用。
服務(wù)器切換專有和共享模式的方法是修改參數(shù)文件中的參數(shù)。

sample:

trace: http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14231/manproc.htm#sthref630

大多數(shù)情況下我們更傾向或習慣專用模式,兩種模式下,對sga等分配都會有不同,所以如果轉(zhuǎn)換成mts模式,別忘了sga也是需要調(diào)整的。最典型的 是mts模式需要較大的large_pool_size。如果真想轉(zhuǎn)換還是仔細看看oracle關(guān)于mts的文檔。共享連接只是把連接SESSION信息 放在LARGE POOL,所以LARGE POOL要大一些。而專用連接的SESION信息放在PGA。

Note:
1. 如果是dedicated server,則客戶端只能創(chuàng)建dedicated server connection
2. 如果是shared server,則客戶端能創(chuàng)建dedicated server connection和shared server connection,只要在service name中指定server=dedicated or server=shared.

trace: http://fusnow.itpub.net/post/681/214188

trace: http://searchdatabase.techtarget.com.cn/tips/459/3063959.shtml

Oracle專用服務(wù)器與共享服務(wù)器的區(qū)別


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 抚远县| 光山县| 桂平市| 大悟县| 漾濞| 丹阳市| 溧阳市| 茌平县| 互助| 石柱| 安陆市| 太谷县| 梁平县| 长乐市| 宜君县| 定远县| 天柱县| 沙河市| 辽中县| 桂东县| 呼伦贝尔市| 克拉玛依市| 嘉兴市| 绥宁县| 阿图什市| 穆棱市| 高唐县| 惠来县| 嘉黎县| 楚雄市| 察隅县| 墨竹工卡县| 伊川县| 涟源市| 景德镇市| 余姚市| 丹寨县| 新巴尔虎左旗| 井研县| 池州市| 沽源县|