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

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

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

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

  專(zhuān)用服務(wù)器:一個(gè)客戶端連接對(duì)應(yīng)一個(gè)服務(wù)器進(jìn)程

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

  其實(shí)這個(gè)我之前也沒(méi)搞的清楚,所以像是測(cè)試機(jī)那樣的我就直接用了 專(zhuān)用服務(wù)器 模式,因?yàn)檎f(shuō)明上是寫(xiě)預(yù)期連接數(shù)較少的情況下,

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

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

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

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

  2)存在人為死鎖的可能,因?yàn)樗谴械?,只要一個(gè)連接阻塞,則該服務(wù)器進(jìn)程上的所有用戶都被阻塞,并且極可能死鎖。

  3)存在獨(dú)占事務(wù)的可能,因?yàn)槿绻粋€(gè)會(huì)話的事務(wù)運(yùn)行時(shí)間過(guò)長(zhǎng),它獨(dú)占共享資源,其它用戶只能等待,而專(zhuān)用服務(wù)器,每個(gè)客戶端是一個(gè)會(huì)話。

  4)共享服務(wù)器模式限制了某些數(shù)據(jù)庫(kù)特性,例如:不能單獨(dú)啟動(dòng)和關(guān)閉實(shí)例,不能進(jìn)行介質(zhì)恢復(fù),不能使用Log Miner,并且SQL_TRACE沒(méi)有意義(因?yàn)槭枪蚕矶皇钱?dāng)前會(huì)話的)。

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

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

  如果客戶端一次連接終身使用(會(huì)話生命周期內(nèi)),使用共享服務(wù)器模式的意義不大。因?yàn)榇蟛糠謺r(shí)間,一個(gè)會(huì)話就連接到一個(gè)服務(wù)器進(jìn)程,無(wú)法共享服務(wù)器進(jìn)程。

  因此,我們后面建的實(shí)例,就以oracle默認(rèn)的專(zhuān)用服務(wù)器方式就行了,沒(méi)必要使用共享服務(wù)器模式。

  判斷oracle是共享模式還是專(zhuān)用模式有以下方法:

  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ù)器或者專(zhuān)用服務(wù)器來(lái)聯(lián)接數(shù)據(jù)庫(kù),這個(gè)參數(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 專(zhuān)用模式連接 dxpt 實(shí)例

  寫(xiě)上 (SERVER = SHARED) 則是使用共享服務(wù)器模式,但是這時(shí)shared_server_process需要打開(kāi),要不然會(huì)出錯(cuò)連不上oracle

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

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

  依然是SERVER = DEDICATED

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

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

  另外,Background process ,以及通過(guò)本地連接進(jìn)來(lái)的,只能是DEDICATED .比如說(shuō)sqlplus user/pass形式

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

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

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

  來(lái)源一:

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

  具體表現(xiàn)在:

  1、在共享模式下,多個(gè)用戶進(jìn)程共享一個(gè)服務(wù)器進(jìn)程;在專(zhuān)用模式下,ORACLE為每一個(gè)用戶進(jìn)程準(zhǔn)備一個(gè)服務(wù)器進(jìn)程。

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

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

  簡(jiǎn)單的說(shuō),連接客戶數(shù)少,需要長(zhǎng)時(shí)間占用數(shù)據(jù)庫(kù)的,建議用專(zhuān)有模式,如果連接客戶數(shù)眾多,使用共享模式。

  來(lái)源二:

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

  專(zhuān)用服務(wù)器體系:每個(gè)客戶進(jìn)程與專(zhuān)用服務(wù)器進(jìn)程連接。服務(wù)器進(jìn)程沒(méi)被任何另外的客戶共享。

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

  來(lái)源三:

  專(zhuān)用是指一個(gè)用戶進(jìn)程對(duì)應(yīng)一個(gè)服務(wù)器進(jìn)程,也就是說(shuō),每個(gè)服務(wù)器進(jìn)程被特定用戶進(jìn)程所獨(dú)占。如果有50個(gè)用戶進(jìn)程,則會(huì)對(duì)應(yīng)50個(gè)服務(wù)器進(jìn)程。

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

  來(lái)源四:

  建議不要選共享的!

  就是配置MTS而已

  專(zhuān)用的安裝好后也可以配置的

  再說(shuō)了,mts不能亂用的

  來(lái)源五:

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

  8i mts_servers

  9i shared_server

  show parameter shared_server mts_servers

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

  2、在配置為共享服務(wù)器的情況,Client可以選擇用共享服務(wù)器或者專(zhuān)用服務(wù)器來(lái)連接到數(shù)據(jù)庫(kù),這個(gè)參數(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 ,以及通過(guò)本地連接進(jìn)來(lái)的,只能是DEDICATED,比如說(shuō)sqlplus user/pass 形式,如果DB沒(méi)有配置共享服務(wù)器,那么Client只能以DEDICATED方式連接DB。

#p#副標(biāo)題#e#

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

  A

  select server from v$session

  where ...

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

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

  server='NONE'的話,則是shared方式,并且當(dāng)前沒(méi)有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方式,并且當(dāng)前沒(méi)有shared_server_process為其服務(wù)。

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

  來(lái)源六:(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)鍵詞標(biāo)簽:oracle

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法