Oracle服務模式區別

     一、共享服務器模式。
  共享服務器模式,也叫做多線程服務器模式。在這種模式下,Oracle數據庫允許多個用戶進程共享非常少的服務器進程。所以,可以同時實現用戶併發訪問的人數也就大大的增加。如果使用專用服務器模式,則每個用戶連接數據庫時,每個用戶進程需要他自己的專用服務器進程。也就是說,客戶端進程與服務器端進程是一一對應的。
  而如果採用共享服務器模式的話,則多個用戶可以共用一個服務器進程,也就是說,此時客戶端進程與服務器進程是多對一的情況。這主要是通過調度程序來實現的。調度程序將多個加入數據庫訪問會話請求指引到一個共用隊列。服務器進程共享池中某個閒置的共享服務器進程依次從隊列中獲得一個請求。也就是說,一個很小的服務器進程共享池可以爲大量的客戶機提供服務。
  共享服務器的優缺點可以利用兩句話概括。優點是客戶端進程多對一,增加了數據庫可以支持的用戶數。缺點就是各個用戶共享一個進程,對用戶訪問數據庫的性能有所影響。
  具體的來說,在以下應用情景下,可以選擇採用共享服務器模式。
  1、 前臺客戶端數量比較多。
  當大量用戶需要連接到數據庫並且需要有效的使用可用的系統資源的時候,則需要考慮採用共享服務器模式。具體的來說,像現在採用的一些客戶端/服務器端模式的網絡應用軟件,如ERP系統等等。一方面因爲用戶人數比較多;另一方面企業由於資金有限,所以購置的是一般的服務器。這些服務器由於硬件方面的一些限制,如數據庫系統與前臺應用服務器採用統一臺服務器。所以往往要求數據庫能夠充分使用硬件資源,以減少兩者之間的衝突。
  在這種情況下,往往採用共享式的服務器模式,比較合適。
  2、 服務器內存限制比較大。
  共享服務器模式下,當連接用戶增加時,其內存使用率增加不會很多。因爲他們共享一個服務器進程。所以,從這一個角度講,共享服務器模式可以減少內存的使用。但在專用服務器模式下,內存的使用幾乎與用戶的數量成比例增加。
  所以,用戶若在一些老的服務器上部署Oracle數據庫的話,因爲其主板對內存的升級有所限制,所以,爲了得到一個不錯的數據庫性能,往往採用共享服務器模式。如此,即時同時訪問數據庫的用戶有所增加,其內存也不會有多大的影響。可以大大的降低內存的壓力。
  3、 某些特定功能要求採用共享服務器模式。
  雖然說,共享服務器模式與專用服務器模式在大部分情況下,都是通用的,支持Oracle數據庫系統的大部分功能。但是,某一些特定的功能,仍然需要數據庫管理員在共享服務器模式下,才能夠啓用。比較典型的,如Oracle數據庫服務器的連接共享、連接集中與負載均衡技術等等。他們必須在共享模式下才能夠運行。
  負載均衡用來在羣集環境下實現多機共享數據庫,以保證應用的高可用性。同時可以自動實現並行處理以及均分負載,還能夠實現數據庫在故障時的容錯和無斷點恢復。所以,在一些對於性能與穩定性要求比較高的應用場景中,如銀行中,往往都會採用負載均衡技術。此時,數據庫管理員在配置數據庫的時候,就需要考慮採用共享服務器模式。
  二、專用服務器模式。
  在專用服務器模式下,數據庫服務器要求每個用戶擁有一個專用服務器進程。也就是說,每個服務器擁有一個服務器進程。數據庫服務器把現有的服務器進程地質發回客戶機,然後客戶機將連接請求重新發送到提供的服務器地質,與專用服務器比較。專用服務器模式由於客戶端與服務器端進程是一一對應的,所以,其性能上可能會比較有優勢。但是,當用戶比較多的時候,則其對服務器的硬件資源,特別是內存,會產生比較大的壓力。
  若企業應用場景符合如下特徵的話,則採用專用年服務器模式能夠取得比較好的效果。
  1、 只有少數客戶端。
  若連接到數據庫的用戶比較少,則專用服務器模式是首選。如企業前臺是一個財務管理系統,則其使用的人數就會比較少。因爲其往往只涉及到一個部門。但是,其數據量會比較多。因爲我們知道,對於每一筆交易都需要在財務系統中進行詳細的紀錄。所以,雖然只是財務一個部門用,但是其紀錄量往往是其他各個部門紀錄量的總合。在紀錄量多、連接用戶又比較少的情況下,採用專用服務器模式,可以說是比較明智的選擇。
  2、 爲數據倉庫搭建的數據庫系統。
  數據倉庫是數據庫技術的一個非常典型的應用。他是一個面向主體、集成、時變、非易失的數據集和,是支持管理部門的決策過程。他跟Oracle數據庫一樣,都是關係型數據庫,其中的紀錄以表格的方式存儲,並且能夠用統一的結構化語言進行數據查詢。採用數據倉庫的主要目的,是爲了及時完成業務處理,及時給與客戶響應。
  雖然說,關係數據庫能夠適應大型數據庫應用的需要,但是,不能夠將其簡單的堆砌就直接成爲數據倉庫來使用。因爲數據倉庫主要用來處理多維數據。他存儲紀錄的方式跟普通的有所不同。數據倉庫主要通過數組方式來存儲紀錄,即沒有統一的規律可循,也沒有統一的多維模型可循,他只恩能夠購按其所屬類別進行歸類。雖然說傳統的二維數據庫不能夠簡單的堆砌來成爲數據倉庫。但是,在設計數據倉庫的時候,並不是說要完全另起爐竈,而是可以利用現有的Oracle數據庫系統來處理數據,從中進行信息的綜合,從而構造出滿足不同需要的數據倉庫。
  所以,如果這個數據庫是爲了實現數據倉庫而搭建的,則必須要採用專屬服務器模式。這是Oracle數據庫的強制要求。
  3、 聯機事務處理系統。
  聯機事務處理系統,英文簡稱爲OLTP。在這種應用下,採用什麼模式爲好呢?這在業界,沒有統一的標準。有的說因爲聯機事務處理系統使用人數比較多,應該採用共享連接服務器模式;而有的又說聯機處理系統對於及時性要求比較高,而共享服務器模式可能會有比較長的等待時間,所以應該採用專用連接服務器模式。筆者是比較傾向於後面這種意見。
  聯機事務處理系統,通常來說,有比較多的長事務與大事務。如用戶的某幾個操,必須作爲一個事務處理等的觀念。此時,若用戶請求數大於共享服務器進程數的話,此時,就會發生排隊現象。假設現在有一個共享服務器進程正在執行一個長事務,那麼請求隊列就需要一直等。直道這個事務完成爲止。若從客戶端的角度來講,則客戶請求的響應時間就加長了。所以,當用戶的連接請求數比共享進程要多時,那麼長事務的共享連接必將會造成共享進程的排隊。事務越長,其排隊的時間也就越長,用戶響應的時間也就越長。如此惡性循環下去的話,很多聯機事務作業都會受到不同程度的影響。所以,若聯機事務處理系統統是符合兩個條件(用戶連接請求數大於共享進程並且其事務大部分是長事務或者大事務),則採用專用服務器連接模式比採用共享服務器連接模式效率要高。爲了保障聯機事務處理系統正常運行,筆者建議數據庫管理員爲其配置專用服務器連接模式。若不符合這兩個條件的一個,則採用共享連接模式更加合理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章