IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當前所在位置:首頁數(shù)據(jù)庫Oracle → oracle共享模式與專用模式使用上的區(qū)別

oracle共享模式與專用模式使用上的區(qū)別

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  專用服務(wù)器:一個客戶端連接對應(yīng)一個服務(wù)器進程

  共享服務(wù)器:多個客戶端連接對應(yīng)一個服務(wù)器進程,服務(wù)器端存在一個進程調(diào)度器來管理。

  其實這個我之前也沒搞的清楚,所以像是測試機那樣的我就直接用了 專用服務(wù)器 模式,因為說明上是寫預(yù)期連接數(shù)較少的情況下,

  而正式機上,都建了共享服務(wù)器模式。其實現(xiàn)在看來,真是沒必要。一個是我們是使用中間件去連oracle的,中間件本身有連接池機制,

  另外就是oracle的這個共享服務(wù)器方式也做的不夠好了,有諸多缺點。

  從網(wǎng)上查來,共享服務(wù)器具有以下一些缺點:

  1)共享服務(wù)器的代碼路徑比專用服務(wù)器長,所以它天生就比專用服務(wù)器慢。

  2)存在人為死鎖的可能,因為它是串行的,只要一個連接阻塞,則該服務(wù)器進程上的所有用戶都被阻塞,并且極可能死鎖。

  3)存在獨占事務(wù)的可能,因為如果一個會話的事務(wù)運行時間過長,它獨占共享資源,其它用戶只能等待,而專用服務(wù)器,每個客戶端是一個會話。

  4)共享服務(wù)器模式限制了某些數(shù)據(jù)庫特性,例如:不能單獨啟動和關(guān)閉實例,不能進行介質(zhì)恢復(fù),不能使用Log Miner,并且SQL_TRACE沒有意義(因為是共享而不是當前會話的)。

  MTS減少的內(nèi)存實際上是專用服務(wù)器模式下每個用戶連接到操作系統(tǒng)進程所需的內(nèi)存,但它卻使用SGA的Large_Pool來分配UGA,拆東墻補西墻,所減少的內(nèi)存是很少的。

  如果用戶會話的連接和斷開很頻繁,數(shù)據(jù)庫進程的創(chuàng)建和刪除的開銷會非常大,這種情況最好采用共享服務(wù)器模式(否則,應(yīng)該使用連接池技術(shù))。

  如果客戶端一次連接終身使用(會話生命周期內(nèi)),使用共享服務(wù)器模式的意義不大。因為大部分時間,一個會話就連接到一個服務(wù)器進程,無法共享服務(wù)器進程。

  因此,我們后面建的實例,就以oracle默認的專用服務(wù)器方式就行了,沒必要使用共享服務(wù)器模式。

  判斷oracle是共享模式還是專用模式有以下方法:

  1) show parameter shared_server; (注:8i應(yīng)為:show parameter mts_servers;)

  如果數(shù)值> 0 ,就是enable了共享服務(wù)器.

  NAME   TYPE  VALUE

  ------------------------------------ ----------- ------------------------------

  max_shared_servers    integer     20

  shared_server_sessions   integer     330

  shared_servers  integer     1

  2).在配置為共享服務(wù)器的情況,Client可以用共享服務(wù)器或者專用服務(wù)器來聯(lián)接數(shù)據(jù)庫,這個參數(shù)的控制是在tnsnames.ora里設(shè)定的。如:

  DXPT =

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.10)(PORT = 1521))

  )

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = dxpt)

  )

  )

  這樣就是以DEDICATED 專用模式連接 dxpt 實例

  寫上 (SERVER = SHARED) 則是使用共享服務(wù)器模式,但是這時shared_server_process需要打開,要不然會出錯連不上oracle

  要是這段放空沒寫,那么系統(tǒng)會根據(jù)服務(wù)器模式自動調(diào)節(jié),

  不過根據(jù)實測結(jié)果,就算服務(wù)器是定義成共享服務(wù)器模式,shared_server_process沒打開的情況下,在v$session中查到的連接

  依然是SERVER = DEDICATED

  所以基本上我們這段話我們都是可以放空著不寫的,但是有時候要連上我們的共享服務(wù)器模式的數(shù)據(jù)庫,

  放空有可能系統(tǒng)認為要用共享服務(wù)器方式去連,那時就要聲明 SERVER = DEDICATED采用專用服務(wù)器方式去連接。

  另外,Background process ,以及通過本地連接進來的,只能是DEDICATED .比如說sqlplus user/pass形式

  如果數(shù)據(jù)庫沒有配置共享服務(wù)器,那么客戶端只能以DEDICATED方式連接數(shù)據(jù)庫.

  =================

  oracle的 專用模式和共享模式(2008-09-24 17:43:10)轉(zhuǎn)載標簽:it 分類:oracle基礎(chǔ)

  來源一:

  專用模式和共享模式的本質(zhì)區(qū)別就是:用戶進程對ORACLE服務(wù)器所在的計算機的內(nèi)存區(qū)里"服務(wù)器進程"是專用還是共享。

  具體表現(xiàn)在:

  1、在共享模式下,多個用戶進程共享一個服務(wù)器進程;在專用模式下,ORACLE為每一個用戶進程準備一個服務(wù)器進程。

  2、在實際情況中,應(yīng)用系統(tǒng)與數(shù)據(jù)庫的連接請求總是很多,導(dǎo)致用戶進程也很多,如果你的內(nèi)存和CPU是有限的,同時,用戶進程對數(shù)據(jù)庫的操作占用空間不多,那你就把數(shù)據(jù)庫連接模式設(shè)置為共享模式,這樣,ORACLE內(nèi)存區(qū)的服務(wù)器進程只是有限的幾個,這幾個服務(wù)器進程會通過一個調(diào)度程序來應(yīng)付若干用戶進程的請求。

  3、如果你的硬件資源比較好,就設(shè)置成專用模式,每一個用戶進程都有一個服務(wù)器進程對應(yīng),這樣,你的用戶進程對數(shù)據(jù)的處理會非常快!

  簡單的說,連接客戶數(shù)少,需要長時間占用數(shù)據(jù)庫的,建議用專有模式,如果連接客戶數(shù)眾多,使用共享模式。

  來源二:

  共享服務(wù)器體系:客戶進程最終與一個調(diào)度程序連接,PMON進程注冊了調(diào)度程序的位置和負荷,使監(jiān)聽器能夠提交到負荷最小的調(diào)度程序。一個調(diào)度程序能并發(fā)地支持多重的客戶連接。

  專用服務(wù)器體系:每個客戶進程與專用服務(wù)器進程連接。服務(wù)器進程沒被任何另外的客戶共享。

  另:專用服務(wù)器體系結(jié)構(gòu)不支持HTTP和IIOP客戶,僅支持TTC客戶。

  來源三:

  專用是指一個用戶進程對應(yīng)一個服務(wù)器進程,也就是說,每個服務(wù)器進程被特定用戶進程所獨占。如果有50個用戶進程,則會對應(yīng)50個服務(wù)器進程。

  共享是多個用戶進程可以共享一個服務(wù)器進程,中間是通過一個調(diào)度進程實現(xiàn)的,由于共享,所以服務(wù)器消耗較小。具體的配置,需要配置mts參數(shù)。

  來源四:

  建議不要選共享的!

  就是配置MTS而已

  專用的安裝好后也可以配置的

  再說了,mts不能亂用的

  來源五:

  1、是否為配置為共享服務(wù)器,最主要的參數(shù)是

  8i mts_servers

  9i shared_server

  show parameter shared_server mts_servers

  如果數(shù)值 > 0 ,就是enable了共享服務(wù)器.

  2、在配置為共享服務(wù)器的情況,Client可以選擇用共享服務(wù)器或者專用服務(wù)器來連接到數(shù)據(jù)庫,這個參數(shù)的控制是在tnsnames.ora里設(shè)定的

  aaaa=

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = aaaa)(PORT = 1521))

  )

  (CONNECT_DATA =

  (SID = aa)

  (SERVER = DEDICATED)

  )

  )

  紅色部分指定了用DEDICATED方式連接DB。

  另外,Background process ,以及通過本地連接進來的,只能是DEDICATED,比如說sqlplus user/pass 形式,如果DB沒有配置共享服務(wù)器,那么Client只能以DEDICATED方式連接DB。

#p#副標題#e#

  3、判斷一個已經(jīng)連接的session的連接方式有兩種方法

  A

  select server from v$session

  where ...

  如果server = 'DEDICATED'則是DEDICATED方式

  server='SHARED'則是shared方式,并且正有shared_server_process為其服務(wù)

  server='NONE'的話,則是shared方式,并且當前沒有shared_server_process為其服務(wù)。

  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為其服務(wù)。

  如果 program 為 。。(D0NN) 的,則是shared方式,并且當前沒有shared_server_process為其服務(wù)。

  如果 program 為 其它的,則是'DEDICATED'方式。

  來源六:(ORACLE用戶文檔)

  In Dedicated Server Mode, there is a dedicated server process for each user process.

  Select this option when the number of total clients is expected to be small, or when

  database clients will make persistent, long-running requests to the database.

  In Shared Server Mode, several client connections share a database-allocated pool of

  resources. Use this mode when a large number of users need to connect to the

<

關(guān)鍵詞標簽:oracle

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列Oracle中使用alter table來增加,刪除,修改列oracle中使用SQL語句修改字段類型-oracle修oracle中使用SQL語句修改字段類型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限Oracle對user的訪問控制Oracle對user的訪問控制

相關(guān)下載

人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語句Oracle中使用alter table來增加,刪除,修改列的語法ORACLE和SQL語法區(qū)別歸納(1)oracle grant 授權(quán)語句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權(quán)限