Oracle共享伺服器的連線模式

AlfredZhao發表於2019-05-23

一般Oracle資料庫安裝預設都是選擇專用伺服器模式的連線方式,但實際上Oracle也支援共享伺服器的連線模式,不過這種在實際生產中見到的很少,我個人只在一些醫院行業的客戶生產環境中見到過這類配置。
在OCM的上機考試中其實也有考察大家這個知識點,比如讓配置資料庫使其支援300個sessions,其中100個專有伺服器模式連線:

shared_server_sessions=200;
dispatchers=3,max_dispatchers=10;
shared_servers=10,max_shared_servers=30;

1.資料庫預設配置情況

檢視當前資料庫dispatch和shared_server相關引數的預設配置情況:

SQL> show parameter dispatch

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (PROTOCOL=TCP) (SERVICE=PROD1X
                                                 DB)
max_dispatchers                      integer
SQL> show parameter shared_server

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers                   integer
shared_server_sessions               integer
shared_servers                       integer     1

2.修改配置

按要求修改資料庫配置(均為動態引數,即時生效):

SQL> alter system set dispatchers='(PROTOCOL=TCP)(DISPATCHERS=3)';
SQL> alter system set max_dispatchers = 10;

SQL> alter system set shared_servers = 10;
SQL> alter system set max_shared_servers = 30;
SQL> alter system set shared_server_sessions = 200;

檢視修改後結果:

SQL> show parameter dispatch

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (PROTOCOL=TCP)(DISPATCHERS=3)
max_dispatchers                      integer     10
SQL> 
SQL> show parameter shared_server

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers                   integer     30
shared_server_sessions               integer     200
shared_servers                       integer     10

3.恢復預設值

--恢復預設值
show parameter dispatch
show parameter shared_server

alter system set dispatchers='(PROTOCOL=TCP)(SERVICE=PROD1XDB)';
alter system reset max_dispatchers;

alter system set shared_servers = 1;
alter system reset max_shared_servers;
alter system reset shared_server_sessions;

注意:雖然都是動態引數,但是因為有些引數是使用reset方式還原到預設值,所以這種情況是需要重啟資料庫生效還原的。

相關文章