本文從幾大方面詳細講述了Oracle資料庫的配置方案。
所有串連到Oracle的使用者必須執行兩個代碼模組:
應用或Oracle工具:一資料庫使用者執行一資料庫應用或一個Oracle工具,可向Oracle資料庫發出SQL語句。
Oracle伺服器程式:負責解釋和處理應用中的SQL語句。
在多進程執行個體中,串連使用者的代碼可按下列三種方案之一配置:
1、對於每一個使用者,其資料庫應用程式和伺服器程式組合成單個使用者進程;
2、對於每一個使用者,其資料庫應用是由使用者進程所運行,並有一個專用伺服器處理序。執行Oracle伺服器的代碼。這樣的配置稱為專用伺服器體繫結構;
3、執行資料庫應用的進程不同於執行Oracle伺服器代碼的進程,而且每一個伺服器處理序(執行Oracle伺服器代碼)可服務於多個使用者進程,這樣的配置稱為多線索伺服器體繫結構。
1) USER/SERVER進程相結合的結構:
在這種配置下,資料庫應用和Oracle伺服器程式是在同一個進程中運行,該進程稱為使用者進程。
這種Oracle配置有時稱為單任務Oracle(single_task Oracle),該配置適用於這樣的作業系統,它可在同一進程中的資料庫應用和Oracle代碼之間維護一個隔離,該隔離是為資料安全性和完整性所需。其中程式介面(program interface)是負責Oracle伺服器代碼的隔離和保護,在資料庫應用和Oracle使用者程式之間傳送資料。
2) 使用專用伺服器處理序的系統結構:
使用專用伺服器處理序的Oracle系統在兩台電腦上運行。在這種系統中,在一電腦上使用者進程執行資料庫應用,而在另一台電腦上的伺服器處理序執行相應的Oracle伺服器代碼,這兩個進程是分離的。為每個使用者進程建立的不同的伺服器處理序稱為專用伺服器處理序,因為該伺服器處理序僅對相連的使用者進程起作用。這種配置又稱為兩任務Oracle。每一個串連到Oracle的使用者進程有一個相應的專用服務進程。這種系統結構允許客戶應用是有工作站上執行,通過網路與運行Oracle的電腦通訊。當客戶應用和Oracle伺服器代碼是在同一台電腦上執行時,這種結構也可用。
3) 多線索伺服器的系統結構:
多線索伺服器配置允許許多使用者進程共用很少伺服器處理序。在沒有多線索伺服器的配置中,每一個使用者進程需要自己的專用伺服器處理序。在具有多線索伺服器的配置中,許多使用者進程串連到調度進程,由調度進程將客戶請求發送到一個共用伺服器處理序。多線索伺服器配置的優點是降低系統開銷,增加使用者個數。
該系統中需要下列類型的進程:
1、網路接收器進程,將使用者進程串連到調度進程和專用伺服器處理序。
2、一個或多個調度進程。
3、一個或多個共用伺服器處理序。
其中網路接收器進程等待新來的串連請求,決定每一使用者進程能否用共用伺服器處理序。如果可以使用,接收器進程將一調度進程的地址返回給使用者進程。如果使用者進程請求一專用伺服器,該接收器進程將建立一個專用伺服器處理序,將使用者進程串連到該專用伺服器處理序。對於資料庫客戶機所使用的每種網路通訊協定至少配置一個調度進程,並啟動它。
當使用者作一次調用時,調度進程將請求放置在SGA的請求隊列中,由可用的共用伺服器處理序擷取。共用伺服器處理序為完成每一個使用者進程的請求作所有必要的資料庫調用。當伺服器完成請求時,將結果返回到調度進程的隊列,然後由調度進程將完成的請求返回給使用者進程。
共用伺服器處理序:除共用伺服器處理序不是串連指定的使用者進程外,共用伺服器處理序和專用伺服器處理序提供相同的功能,一個共用伺服器處理序在多線索伺服器的配置中可為任何客戶請求服務。一個共用伺服器處理序的SGA不包含有與使用者相關的資料,其資訊可為所有共用伺服器處理序存取,它僅包含棧空間、進程指定變數。所有與會話有關的資訊是包含有SGA中。每一個共用伺服器處理序可存取全部會話的資料空間,以致任何服務進程可處理任何會話的請求。對於每一個會話的資料空間是在SGA中分配空間。
Oracle根據請求隊列的長度可動態地調整共用伺服器處理序。可建立的共用伺服器處理序將請求放到請求隊列。一個使用者請求是對資料庫的一次程式介面調用,為SQL語句。在SGA中請求隊列對執行個體的全部調度進程是公用的。伺服器處理序為新請求 檢查公用請求隊列,按先進先出的原則從隊列檢出一個請求,然後為完成該請求對資料庫作必要的調用。共用伺服器處理序將響應放在調度進程的響應隊列。每一個調度進程在SGA中有自己的響應隊列,每個調度進程負責將完成的請求回送給相應的使用者進程。