![Oracle專用與共享服務器的區(qū)別_第1頁](http://file4.renrendoc.com/view/ba9789d2b498cc9a5ed4b3036e084ce0/ba9789d2b498cc9a5ed4b3036e084ce01.gif)
![Oracle專用與共享服務器的區(qū)別_第2頁](http://file4.renrendoc.com/view/ba9789d2b498cc9a5ed4b3036e084ce0/ba9789d2b498cc9a5ed4b3036e084ce02.gif)
![Oracle專用與共享服務器的區(qū)別_第3頁](http://file4.renrendoc.com/view/ba9789d2b498cc9a5ed4b3036e084ce0/ba9789d2b498cc9a5ed4b3036e084ce03.gif)
![Oracle專用與共享服務器的區(qū)別_第4頁](http://file4.renrendoc.com/view/ba9789d2b498cc9a5ed4b3036e084ce0/ba9789d2b498cc9a5ed4b3036e084ce04.gif)
![Oracle專用與共享服務器的區(qū)別_第5頁](http://file4.renrendoc.com/view/ba9789d2b498cc9a5ed4b3036e084ce0/ba9789d2b498cc9a5ed4b3036e084ce05.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Oracle專用服務器與共享服務器的區(qū)別 1、原理 在建立Oracle數(shù)據(jù)庫的時候,應該會在數(shù)據(jù)庫建立助手向?qū)厦婵吹竭@么一個選項,就是數(shù)據(jù)庫的連接 模式采用什么方式。在Oracle9i或者10g中,可以看到有2種連接模式,一種叫做專用服務器連接 (dedicated server),另外一種叫做共享服務器連接(shared server)。下面我們來分類說一下這兩種 連接方式的不同點。專用服務器模式就是說每次在對Oracle進行訪問的時候,Oracle服務器的Listener會得到這個訪問 請求,然后回為這個訪問創(chuàng)建一個新的進程來進行服務。所以說,對于每一個客戶端的訪問,都會生成 一個新的進
2、程進行服務,是一種類似一對一的映射關系。這種連接模式的一個很重要的特點就是UGA(用 戶全局域)是存儲在PGA(進程全局域)中的,這個特性也很好說明了當前用戶的內(nèi)存空間是按照進程來進 行分配的。而另外的共享服務器連接則是一種在程序編寫的時候通常會用到的連接池(pool)的概念。采用這種 模式的話,在數(shù)據(jù)庫的初始化的時候就會創(chuàng)建一批服務器連接的進程,然后把這些連接進程放入一個連 接池來進行管理。初始化的池中的進程數(shù)量在數(shù)據(jù)庫初始化建立的時候是可以手動設置的。在連接建立 的時候,Listener首先接受到客戶端的建立連接的請求,然后Listener去生成一個叫做調(diào)度器(dipatcher) 的進程
3、與客戶端進行連接。調(diào)度器把把客戶端的請求放在SGA(系統(tǒng)全局域)的一個請求隊列中,然后再共 享服務器連接池中查找有無空閑的連接,然后讓這個空閑的服務器進行處理。處理完畢以后再把處理結 果放在SGA的相應隊列中。調(diào)度器通過查詢相應隊列,得到返回結果,再返回給客戶端。這種連接模式的 優(yōu)點在于服務器進程的數(shù)量可以得到控制,不大可能出現(xiàn)因為連接人數(shù)過多而造成服務器內(nèi)存崩潰。但 是由于增加了復雜度以及請求相應隊列,可能性能上有所下降??傊?,在開發(fā)階段中,用第一種專用服務器可能好一些,因為少了一些中間的復雜度,而且開發(fā)的 時候一般連接的數(shù)量也少。而在多個應用同時使用一個數(shù)據(jù)庫的實際應用環(huán)境下,采用第二種方
4、法可能 好一些,因為如果到時候突然有1000個或者10000個請求連接的話,數(shù)據(jù)庫服務器如果同時建立10000個 連接,肯定要受不了的。當然,也要看到時候的實際情況如何再做決定,兩者沒有絕對的哪種好哪種不 好的差別關于這兩者的比較假如你來到一個城市,要在這個城市的不同的地方辦幾件事情,在交通方面你 有兩種選擇:一個是雇一輛專車,這輛專車將會把你從入帶到B,一直等你把在B的事情辦完,在把你從B 帶到C。另一種選擇是給出租車公司打電話訂輛出租車,先把你從帶到B,然后你和出租車該 干嘛干嘛,你去辦你的事情,出租車去接別的生意,等你在B的事情辦完了,你再跟出租車公司訂車,出 租車公司將會聯(lián)系當時在B附
5、近的其他出租車去接你。對于shared servers,你就要需要做一些額外的設置,當讓按照administrator guide并不難,關鍵是你 需要決定到底需要多少個shared server servers和多少個dispatcher,這不僅僅需要經(jīng)驗的積累,還需 要持續(xù)的觀察和調(diào)整。在dedicated servers里,你所有的等待都是數(shù)據(jù)庫本身的等待,而在shared servers里你有可能需要等 彳寺一個 availabl e 的 shared server process。很明顯,當用戶并發(fā)的連接數(shù)很大的時候,dedicated servers的server process個
6、數(shù)也會變得很大,對 于操作系統(tǒng)來說多一個process就意味著多一點管理負擔,要知道操作系統(tǒng)支持的同時并發(fā)數(shù)可不是無限 的。這意味著,在dedicate servers里,當你有大量的用戶連接(比如,同一時間超過5000個用戶連上 來),你的系統(tǒng)負擔就會相當大。而這種情況shared servers就可以處理的相對好一些,因為加入同時 有5000個用戶連上來而且我們知道一般只有1%的連接是active,那我們只需要設置50個shared servers 就可以把所有的用戶請求處理得很好,并節(jié)省了系統(tǒng)資源。作為一個好處,shared servers可以用來控制concurrent。要知道用戶的并
7、發(fā)數(shù)和系統(tǒng)的處理能力決不 是成正比的(可以下面的圖),當用戶并發(fā)數(shù)超過一個閥值,系統(tǒng)的處理能力會明顯下降。通過shared servers可以控制系統(tǒng)的concurrent不超過這個閥值。在引入PGA的自動管理以前,shared servers是要比dedicated servers節(jié)省內(nèi)存的,然后在自動管理的 ?仔入引入之后,shared servers的這個優(yōu)勢已經(jīng)不像我們想象的那么不明顯了。dedicate servers一個server process為了一個較大的request而長時間的工作而不影響其它的users, 然而在shared servers, 一些較大的request會影
8、響其它的用戶。還需要考慮其他的因素,比如,如果在前端使用了weblogic的connecting pool,那么你在database level 再使用shared servers可能就不是很必要,因為這時你的用戶連接已經(jīng)在weblogic層面上得到了控制。shared servers還有一個所謂的偽死鎖的問題,這點大家參考一下tom的新書就知道了。關于dedicated servers和shared servers的話題我們就討論這么多,最后給大家一個小提示:其實 dedicated servers和shared servers是可以并存的,實際上,即使你使用了shared servers,
9、某些管理 操作也是必須在dedicated模式下來做的,比如startup或shutdown database0如果你實在難以選擇, 如果你的應用可能一部分是OLTP的(用戶量也很大),一部分是DW的,其實你可以考慮同時使用dedicated servers和shared servers。2、服務器模式的設置 啟用專用服務器dedicated servers不需要專門的設置,這個是oracle的默認選項。啟用共享服務器 要切換到共享模式,可以使用以下步驟:設置初始化參數(shù)SHARED_SERVERS大于0,可以使用alter system命令動態(tài)的設置也可以在spfile里 面修改初始化參數(shù)SH
10、ARED_SERVERS 的值大于0,然后shutdown oracle,然后restart oracle 即可 啟動共享模式,其他的共享服務器參數(shù)可以不用設置參考語句:alter system set shared_servers = 1 scope=both ;alter system set max_shared_servers = 5 scope=both ;設置dispatchers參數(shù),可以采用下面的方法設置:alter system set dispatchers=(PROTOCOL=TCP) (SERVICE=mydbXDB)(SERVICE=mydb);前面表示的是協(xié)議,后面
11、的service分別指定要采用共享服務器模式的服務名稱oracle文檔上說該步驟不是必須做的,但是我在實際中發(fā)現(xiàn)如果只是設置了 shared_server參數(shù), 而把dispatches參數(shù)設置為空的話,不能啟動共享服務器,使用上面的模式指定只啟動某個服務的 共享模式,如果要設置所有服務都使用共享模式,則設置為:alter system set dispatchers=(PROTOCOL=TCP);在客戶端的tnsnames.ora的tns設置中,在CONNECT_DATA設置一項中增加(server=shared ) 一項, 即可使用共享服務器連接如果服務器端沒有啟動共享服務器模式,而客戶端
12、使用shared方式連接的話,會出現(xiàn)錯誤提示:“ORA-12520: TNS:監(jiān)聽程序無法找到需要的服務器類型的可用句柄”;和共享服務器相關的參數(shù)如下:max_shared_servers最大服務器進程數(shù)SHARED_SERVER_SESSIONS 指定可以同時運行的最大的共享服務會話數(shù)dispatchers協(xié)議,調(diào)度程序數(shù),每個調(diào)度程序的最大連接數(shù)max_dispatchers最大調(diào)度程序數(shù)shared_servers-服務器進程數(shù)CIRCUITS指定網(wǎng)絡會話層出入的總的虛擬回路3、判斷數(shù)據(jù)庫使用的連接模式查看當前數(shù)據(jù)庫服務器的運行情況有一下幾種辦法:從v$session里面查看:SQL s
13、elect distinct server from v$session ;SQLSERVERDEDICATEDNONESQL如果顯示的除了dedicated,還有NONE,則說明當前啟動了共享服務器,并且server為none的會話正使用 共享服務器連接,同時,如果只顯示有dedicated,則不能說明服務器就一定工作在專用服務器下面,此時只能說明有可能 啟動了共享模式,但是無連接可以使用下面的語句查詢采用共享服務器的會話信息:select saddr,program ,server from v$session;SQL /SADDR PROGRAMSERVER296FB24C plsqld
14、ev.exeNONE296FFD1C oracleB851 (q001)DEDICATED29705AA0 oracleB851 (q000)DEDICATED查詢視圖:在網(wǎng)上有的資料上說只要查詢下面三個視圖,有記錄則說明啟動了共享模式,經(jīng)過驗證,具體情況如下:select * from v$shared_server;-有記錄,且STATUS字段為WAIT(COMMON),則說明啟動共享;status為TERMINATED或者無記錄,則說明沒有啟動共享服務器select * from v$dispatcher;-有無記錄都不能說明啟動共享服務器,只能說明是配置了dispatchers 參數(shù)s
15、elect * from V$CIRCUIT-有記錄說明當前有使用共享模式的連接,無記錄則不能判定服務器模式實際查詢?nèi)缦?啟動共享服務器的情況):SQL select * from v$shared_server;NAME PADDR STATUSMESSAGES BYTES BREAKS CIRCUIT IDLEBUSY REQUESTS2961ACA0 WAIT(COMMON)7356115203 00561435 TOC o 1-5 h zED8 TERMINATED22600 00300130301SQL select CIRCUIT,DISPATCHER,S
16、ERVER,WAITER,SADDR,STATUS,BYTES from v$circuit ;CIRCUIT DISPATCH SERVER WAITER SADDR STATUSBYTES 2743471C 2961A6EC 0000296FB24C NORMAL10364SQL select name,paddr,created,bytes from v$dispatcher;NAME PADDRCREATED BYTESD000 2961A6EC7612551SQL注意上述視圖之間的聯(lián)系,v$circuit中的saddr和v$session中的saddr是相等的查詢監(jiān)聽器的狀態(tài):LSN
17、RCTL serviceConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=B851)(PORT=1542)Services Summary.Service PLSExtProc has 1 instance(s).Instance PLSExtProc”, status UNKNOWN, has 1 handler(s) for this service.Handler(s):DEDICATED established:0 refused:0LOCAL SERVERService mydb has 1 instance(s).Ins
18、tance mydb”, status READY, has 1 handler(s) for this service. Handler(s):DEDICATED established:0 refused:0 state:ready LOCAL SERVERService mydb_XPT has 1 instance(s).Instance mydb”, status READY, has 1 handler(s) for this service. Handler(s):DEDICATED established:0 refused:0 state:ready LOCAL SERVER
19、The command completed successfullyLSNRCTL其中的DEDICATED表示當前服務器處于專用服務器模式如果啟動共享服務器,則得到的狀態(tài)是LSNRCTL serviceConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=B851)(PORT=1542) Services Summary.Service PLSExtProc has 1 instance(s).Instance PLSExtProc”, status UNKNOWN, has 1 handler(s) for this service.
20、 Handler(s):DEDICATED established:0 refused:0LOCAL SERVERService mydb has 1 instance(s).Instance mydb”, status READY, has 2 handler(s) for this service. Handler(s):D000 established:3 refused:0 current:3 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=B851)(PORT=60606)DEDICATED establish
21、ed:0 refused:0 state:ready LOCAL SERVERService mydbXDB has 1 instance(s).Instance mydb, status READY, has 0 handler(s) for this service.Service mydb_XPT has 1 instance(s).Instance mydb”, status READY, has 1 handler(s) for this service.Handler(s):DEDICATED established:0 refused:0 state:readyLOCAL SER
22、VERThe command completed successfullyLSNRCTL可以看出此時,mydb服務啟動了共享模式,但是同時也支持專用模式在實際的使用中還發(fā)現(xiàn)有趣的現(xiàn)象,如果把shared_servers和max_shared_servers同時設置成0, 但是保持dispatcher參數(shù)的值不變,則再查看監(jiān)聽時,出現(xiàn)下面的情況: Service mydb has 1 instance(s).Instance mydb”, status READY, has 2 handler(s) for this service.Handler(s):D000 established:0 r
23、efused:0 current:0 max:1022 state:blockedDISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=LOCALHOST)(PORT=60606)DEDICATED established:0 refused:0 state:ready LOCAL SERVER此時的共享進程還在,但是狀態(tài)為阻塞4、客戶端建立的連接模式=當服務器采用專用服務器模式時,客戶端只能使用專用模式連接,也就是在connect_data數(shù)據(jù)中只能 使用 server=dedicated。當服務器采用共享服務器模式時,客戶端可以選擇建立共享還是專用連接,conne
24、ction,只要在 connect_data 中指定server=dedicated or server=shared大多數(shù)情況下我們更傾向或習慣專用模式,兩種模式下,對sga等分配都會有不同,所以如果轉(zhuǎn)換成mts 模式,別忘了sga也是需要調(diào)整的。最典型的是mts模式需要較大的large_pool_size。如果真想轉(zhuǎn)換還是 仔細看看oracle關于mts的文檔。共享連接只是把連接SESSION信息放在LARGE POOL,所以LARGE POOL要 大一些。而專用連接的SESION信息放在PGA。5、禁用共享服務器模式You disable shared server by setting
25、 SHARED_SERVERS to 0. No new client can connect in shared mode. However, when you set SHARED_SERVERS to 0, Oracle Database retains some shared servers until all shared server connections are closed. The number of shared servers retained is either the number specified by the preceding setting of SHAR
26、ED_SERVERS or the value of the MAX_SHARED_SERVERS parameter, whichever is smaller. If both SHARED_SERVERS and MAX_SHARED_SERVERS are set to 0, then all shared servers will terminate and requests from remaining shared server clients will be queued until the value of SHARED_SERVERS or MAX_SHARED_SERVE
27、RS is raised again.-如果同時把SHARED_SERVERS and MAX_SHARED_SERVERS都設置成0,則共享服務器將關閉,并且保留 的共享服務器的請求將進入隊列等待,一直到這兩個參數(shù)的值重新被設置To terminate dispatchers once all shared server clients disconnect, enter this statement:ALTER SYSTEM SET DISPATCHERS =;禁用的實驗:alter system set shared_servers = 0 ;alter system set max_s
28、hared_servers = 0 ;在已經(jīng)建立共享模式的客戶端執(zhí)行查詢,一直處于等待,查看視圖: SQL select circuit,saddr,status,queue from v$circuit;CIRCUIT SADDRSTATUSQUEUE27434010 296F8CE4NORMALCOMMON2743471C 296FB24CNORMALNONE2 rows selected.SQL select program,saddr,server,status from v$session where saddr in (296F8CE4,296FB24C);PROGRAMSADDR
29、 SERVER STATUSplsqldev.exe296F8CE4 NONEINACTIVEplsqldev.exe296FB24C NONEINACTIVE2 rows selected.SQL恢復參數(shù)值: SQL alter system set shared_servers = 1;System altered.SQL alter system set max_shared_servers = 5;System altered.SQL前臺的查詢恢復正常,查看視圖: SQL select circuit,saddr,status,queue from v$circuit;CIRCUIT SADDRSTATUSQUEUE 27434010 296F8CE4NORMALNONE2743471C 296F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年劍道項目可行性研究報告
- 2025至2030年家用垃圾桶項目投資價值分析報告
- 2025至2030年婦陰潔項目投資價值分析報告
- 2025至2030年丁烷發(fā)泡片材生產(chǎn)線項目投資價值分析報告
- 2025年鍋爐減速機項目可行性研究報告
- 2025旅游業(yè)總經(jīng)理述職報告范文
- 二零二五年度葡萄產(chǎn)業(yè)園區(qū)土地租賃合同范本下載2篇
- 二零二五年度退休人員擔任企業(yè)環(huán)保技術顧問合同
- 2025年度混凝土攪拌站租賃與資源優(yōu)化配置服務合同3篇
- 二零二五年度文化旅游項目土地及房屋投資合同
- 電網(wǎng)工程設備材料信息參考價(2024年第四季度)
- 部編版小學語文二年級下冊第三單元集體備課教材分析
- 高中英語選擇性必修二 Unit 1 Period 1 Reading and thinking(課件)(共38張)
- 小學生電子小報通用模板-A4電子小報15
- CAS云計算軟件平臺深入介紹
- 課堂教學方法與手段(課堂PPT)課件(PPT 16頁)
- 固定資產(chǎn)投資統(tǒng)計培訓PPT課件
- 立體幾何專題:距離和角
- 一年級上冊必背古詩
- 平頂山第四屆名師名班主任名校長培養(yǎng)方案
- 2.通信光纜線路(管道)工程施工及驗收技術規(guī)程要點
評論
0/150
提交評論