專用服務器進程(Dedicated server)
對于專用服務器配置,在登錄時,Oracle總會創(chuàng)建一個新的進程,這個服務器進程會在會話生存期中專門這個連接服務。對于每個會話,都會出現(xiàn)一個新的專用服務器,會話與專用服務器之間存在一對一的映射。按照定義,這個專用服務器不是實例的一部分用戶進程和服務器進程是分開的。每個用戶進程都有自己的服務器進程。
用戶進程和服務器進程可在不同的機器上運行,以利用分布式處理的優(yōu)勢。
用戶進程和服務器進程的比率是1 比1。
即使用戶進程不發(fā)出數(shù)據(jù)庫請求,專用服務器也存在,只是保持空閑狀態(tài)。
何時使用專用服務器
提交批作業(yè)(預計很少有或沒有空閑時間)
以sysdba 身份連接以啟動、關閉或執(zhí)行恢復
要請求使用專用服務器,必須在tnsnames.ora 文件內(nèi)的Oracle Net TNS 連接字符串中
包含SERVER=DEDICATED 子句。
注:對于大多數(shù)平臺來說,如果您的機器有足夠的內(nèi)存支持專用服務器,則應使用專用服
務器。這樣性能可能更好些。
但也有例外,例如Windows NT,在該系統(tǒng)中,由于共享服務器體系結構的異步特性,使
用Oracle Shared Server 配置性能可能會有所提高。
如何連接專用服務器
在客戶端服務器中的tnsnames.ora文件里進行設置:
dedicated =(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.52)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = itpux)
(server = dedicated)
)
)
共享服務器(shared server),正式的說法是多線程服務器(Multi-Threaded Server)或MTS。如果采用這種方式,就不會對每條用戶連接創(chuàng)建另外的線程或新的UNIX 進程
Oracle Shared Server 的優(yōu)點
減少針對某一例程的進程數(shù)目
增加可服務的用戶數(shù)
實現(xiàn)負載平衡
減少空閑服務器進程的數(shù)目
減少內(nèi)存占用和系統(tǒng)開銷
如何連接共享服務器
不能使用共享服務器執(zhí)行某些類型的數(shù)據(jù)庫工作:
數(shù)據(jù)庫管理
備份和恢復操作
批處理和批量加載操作
數(shù)據(jù)倉庫操作
共享服務器具有以下一些缺點
一般我們以oracle默認的專用服務器方式就行了,沒必要使用共享服務器模式。一個是我們是使用中間件(如:weblogic)去連oracle的,中間件本身有連接池機制,另外就是oracle的這個共享服務器方式也做的不夠好了,有諸多缺點。
1)共享服務器的代碼路徑比專用服務器長,所以它天生就比專用服務器慢。
2)存在人為死鎖的可能,因為它是串行的,只要一個連接阻塞,則該服務器進程上的所有用戶都被阻塞,并且極可能死鎖。 ITPUX 技術網(wǎng)(http://www.itpux.com),中國最專業(yè)最全面的 IT 行業(yè)技術網(wǎng)站。
3)存在獨占事務的可能,因為如果一個會話的事務運行時間過長,它獨占共享資源,其它用戶只能等待,而專用服務器,每個客戶端是一個會話。
4)共享服務器模式限制了某些數(shù)據(jù)庫特性,例如:不能單獨啟動和關閉實例,不能進行介質(zhì)恢復,不能使用Log Miner,并且SQL_TRACE沒有意義(因為是共享而不是當前會話的)。
怎么知道oracle當前是 DEDICATED SERVER 還是 SHARED SERVER?
最簡單的一個方法是查看監(jiān)聽: lsnrctl service
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。