Oracle的共享服务器进程
一、
共享服务器初始化参数
DISPATCHERS:配置调度程序进程
MAX_DISPATCHERS:指定同时运行的调度程序进程最大数目
用于设置调度程序的起始数目,初始化文件可以指定多个DISPATCHERS参数,但必须是彼此相邻的。Oracle内部为每个DISPATCHERS参数分配一个INDEX索引值,以方便之后使用ALTER SYSTEM语句时明确引用某个DISPATCHERS参数。
对一般系统来说,每1000个连接分配1个调度程序,运转好的话再多一些。太多的调度程序会降低系统性能,所以要实现估计好连接数。
举例:
DISPATCHERS = "(PROTOCOL = TCP)" --基本参数
DISPATCHERS = "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.2.1.81)) (DISPATCHERS = 2)" --强调IP
DISPATCHERS = "(ADDRESS = (PROTOCOL = TCP)(PORT = 5000))" --强调端口
SHARED_SERVERS:指定启动实例时可创建的共享服务器进程数
MAX_SHARED_SERVERS:指定可以同时运行的共享服务器进程最大数目
指定了启动时希望创建的共享服务进程的数目。Oracle会在SHARED_SERVERS和MAX_SHARED_SERVERS之间的数目中,根据请求队列的长度动态调整共享服务器的数目。一般来说,10个连接分配一个共享服务器。
MAX_SHARED_SERVERS是一个静态初始参数,但SHARED_SERVERS是动态参数,可以使用ALTER SYSTEM语句修改。
CIRCUTTS:进出网络会话时可以利用的虚拟回路总数
SHARED_SERVER_SESSIONS:用户会话允许的共享服务器总数,可以为专门服务器保留用户会话
LARGE_POOL_SIZE:指定大型存储池分配字节大小
SESSIONS:系统可创建的最大会话数目
二、修改调度程序和服务器进程
1、调度进程
可通过V$QUEUE、V$DISPATCHER、V$DISPATCHER_RATE来查看
通过ALTER SYSTEM修改DISPATCHERS参数值
ALTER SYSTEM SET DISPATCHERS =
'(PROTOCOL = TCP)(DISPATCHERS = 5)(INDEX = 0)',
'(PROTOCOL = TCPS)(DISPATCHERS = 2)(INDEX = 1)';
注1:DISPATCHERS:是参数;DISPATCHERS=5 才是调度进程个数;
注2:INDEX用于识别DISPATCHERS参数,从0到n依次排列,即V$DISPATCHER中的CONF_INDX值
2、关闭调度进程
首先要查询到DISPATCHERS的NAME:
SELECT NAME,NETWORK FROM V$DISPATCHER;
然后关闭调度进程:
ALTER SYSTEM SHUTDOWN IMMEDIATE 'D000';
更改共享服务器进程最少数目:
ALTER SYSTEM SET SHARED_SERVERS = 2;
3、监视共享服务器
V$DISPATCHER:提供有关调度程序进程的信息;
V$DISPATCHER_RATE:提供调度程序进程的速率统计表;
V$QUEUE:包含有关共享服务器的消息队列的信息;
V$SHARED_SERVER:包含有关共享服务器进程的信息;
V$CIRCUIT:包含有关虚拟回路的信息;
V$SHARED_SERVER_MONITOR:包含协调共享服务器的信息;
V$SGA:包含各个系统全局区(SGA)组的容量信息;
V$SGASTAT:关于DGA的详细统计信息,用于协调共享服务器;
V$SHARED_POOL_RESERVED:共享存储池的信息
-The End-