Oracle的共用伺服器模式及配置

來源:互聯網
上載者:User

一、共用伺服器模式工作機制:

共用伺服器模式(SHARED SERVER,也叫MTS Multi-Threaded Server):

資料庫啟動之後比專用伺服器模式會多出兩種進程,一種是調度進程(dispatcher),一種是共用伺服器處理序。來自用戶端的請求會被dispatcher接受,然後dispatcher將請求置入Request隊列。閒置Server Process會按照request隊列開始處理隊列中的請求。處理過後的結果放入Response隊列中。最後再由DIspatcher來將最後的結果返回給用戶端。

在共用伺服器模式下,用戶端通過監聽串連到dispatcher之後,dispatcher會隨機分配一個連接埠,此時用戶端斷開和監聽的串連,通過分配的連接埠和dispatcher串連。和監聽的串連是短暫的。

相比於專用伺服器模式,Server Process的UGA在SGA中,而專用伺服器模式的UGA在PGA當中,共用伺服器模式下如果設定了large_pool_size則使用者的UGA會在large_pool中。MTS減少的記憶體實際上是專用伺服器模式下每個使用者串連到作業系統進程所需的記憶體,共用伺服器模式由於限制了Server Process的數量,減少了建立Server Process所需要的記憶體,同時當並發量大時不需要頻繁的建立和刪除進程,減少了與之對應的開銷,提升了並發量。所以共用伺服器模式適合於高並發,處理量小的業務系統。

但相比於專用伺服器模式,共用伺服器模式也存在很大的問題:

1)共用伺服器的代碼路徑比專用伺服器長,所以它天生就比專用伺服器慢。
2)存在人為死結的可能,因為它是串列的,只要一個串連阻塞,則該伺服器處理序上的所有使用者都被阻塞,並且極可能死結。
3)存在獨佔事務的可能,因為如果一個會話的事務已耗用時間過長,它獨佔共用資源,其它使用者只能等待,而專用伺服器,每個用戶端是一個會話。
4)共用伺服器模式限制了某些資料庫特性,例如:不能單獨啟動和關閉執行個體,不能進行介質恢複,不能使用Log Miner,並且SQL_TRACE沒有意義(因為是共用而不是當前會話的)。

由於共用伺服器模式存在種種問題,同時中介軟體也完全可以實現串連池的效果,所以一般情況下不會共用伺服器模式,使用專用伺服器模式即可。

共用伺服器模式配置

配置共用伺服器模式需要配置以下參數:

dispatchers:(必須配置的)為指定的協議指定調度進程的初始數量。

shared_servers:初始啟動幾個共用伺服器處理序

max_shared_servers:最多啟動多少個共用伺服器處理序

max_dispatchers:調度進程的最大數量

shared_server_sessions:共用伺服器模式最多可以有多少個session,如果共用伺服器模式串連數超過此設定則會使用專用伺服器模式,注意此值大小要小於資料庫中sessions的設定。如果此值不設定則會所有session都為共用伺服器模式、

circuits:共用伺服器模式下oracle採用了virtual circuits來記錄了哪個請求來自於哪個用戶端,以保證請求處理完後能返回正確的用戶端。circuits的設定限制了請求隊列和響應隊列中可用迴路的總數量。共用伺服器模式下只有一個請求隊列,但每個dispatcher有自己的響應隊列。

large_pool_size:由於在UGA在large_pool中,所以large_pool的合適大小有助於提升系統的效能,能放下所有共用伺服器處理序的UGA就好。

以下是具體操作過程:

SYS@ORCL>show parameter processes

NAME                                 TYPE        VALUE

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

aq_tm_processes                      integer     0

db_writer_processes                  integer     1

gcs_server_processes                 integer     0

job_queue_processes                  integer     10

log_archive_max_processes            integer     2

processes                            integer     300

SYS@ORCL>show parameter sessions

NAME                                 TYPE        VALUE

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

java_max_sessionspace_size           integer     0

java_soft_sessionspace_limit         integer     0

license_max_sessions                 integer     0

license_sessions_warning             integer     0

logmnr_max_persistent_sessions       integer     1

sessions                             integer     335

shared_server_sessions               integer

SYS@ORCL>show parameter dispatcher

NAME                                 TYPE        VALUE

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

dispatchers                          string      (PROTOCOL=TCP) (SERVICE=ORCLXD

                                                 B)

max_dispatchers                      integer

SYS@ORCL>alter system set dispatchers='(PROTOCOL=TCP)(DISPATCHERS=2)(PROTOCOL=IPC)(DISPATCHERS=1)';

——在這裡為TCP協議配置了兩個調度進程,IPC協議配置了1個調度進程。

System altered.

SYS@ORCL>alter system set max_dispatchers=10;

——最多啟動10個發送器

System altered.

SYS@ORCL>show parameter shared_server

NAME                                 TYPE        VALUE

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

max_shared_servers                   integer

shared_server_sessions               integer

shared_servers                       integer     1

SYS@ORCL>alter system set shared_servers=10;

System altered.

SYS@ORCL>alter system set max_shared_servers=20;

System altered.

SYS@ORCL>alter system set shared_server_sessions=100;

System altered.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.