日期:2014-05-16  浏览次数:20528 次

Oracle shared server配置
接触Oracle这么些年来,看到Oracle不少,起码也有几百个了吧,但数据库s是shared server配置只有一个。所以也一直没有好好研究它。OCM考试大纲中有Configure the database instance to support shared server connections 一栏,那今天就来配置一下Oracle shared server。



由上图可知,shared server进程主要通过disipatch进程进行派发,此进程起到了类似中间件的作用。采用shared server模式,可以最大程度的减少主机用户进程数(也就意味着shared server模式比dedicated sever模式更加节约操作系统资源)。以下为shared server配置过程(从dedicated sever转变成shared server)。
1、配置dispatch进程数,协议为TCP
SQL> alter system set dispatchers='(PROTOCOL=TCP) (DISPATCHERS=20)';     

System altered.
2、配置最大dispatch进程数,需要注意的是如果dispatchers参数配置中大于30,如dispatchers='(PROTOCOL=TCP) (DISPATCHERS=40)',将覆盖max_dispatchers=30
SQL> alter system set max_dispatchers=30 ;

System altered.
3、设置Oracle启动时最小的shared server进程数,需要注意的是不要将此参数设置太高。
SQL> alter system set shared_servers=5;

System altered.
4、设置Oracle允许最大shared server session数。需要注意的是当设置此参数之后不能大于参数sessions。如果不设置此参数,Oracle将会根据空闲槽(free slot)创建shared server session数。

SQL> 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     500
shared_server_sessions               integer
SQL> alter system set shared_server_sessions=400;

System altered.

当配置完成shared server之后,可以看到操作系统中fork出20个dispatch进程
[ora10g@mcprod admin]$ ps -ef|grep ora_d|grep -v grep|grep -v  ora_dbw
ora10g   13915     1  0 18:03 ?        00:00:00 ora_d001_mcstar
ora10g   13917     1  0 18:03 ?        00:00:00 ora_d002_mcstar
ora10g   13919     1  0 18:03 ?        00:00:00 ora_d003_mcstar
ora10g   13921     1  0 18:03 ?        00:00:00 ora_d004_mcstar
ora10g   13923     1  0 18:03 ?        00:00:00 ora_d005_mcstar
ora10g   13925     1  0 18:03 ?        00:00:00 ora_d006_mcstar
ora10g   13927     1  0 18:03 ?        00:00:00 ora_d007_mcstar
ora10g   13929     1  0 18:03 ?        00:00:00 ora_d008_mcstar
ora10g   13931     1  0 18:03 ?        00:00:00 ora_d009_mcstar
ora10g   13933