官方文档的位置:Administrator Guide --> Managing Processes -->openConfiguring Oracle Database for Shared Server
一、Shared Server配置的相关参数
使用shared server 可以减少对db server 的CPU和内存资源的消耗。
和Shared Server相关的参数主要有两个:shared_server和dispatchers。后一个参数用来设置分发器,可以针对不同的协议设置分发器,比如这样
DISPATCHERS = “(PRO=TCP)(DIS=3)(PRO=IPC)(DIS=2)”
复杂一点的,带有连接池的
DISPATCHERS="(PROTOCOL=tcp)(DISPATCHERS=1)(POOL=on)(TICK=1)(CONNECTIONS=500)(SESSIONS=1000)"
Shared_server用来定义系统启动时启动的Shared server数量,如果是0,就取消了Shared mode。
除了这两个主要的参数,还有几个其他参数。
MAX_DISPATCHERS:设置最大的调度器数
SHARED_SERVER_SESSIONS:限制PMON能够自动创建的SHARED SERVER的最大session数。注意shared server processes的数量也收 processes参数的限制。
MAX_SHARED_SERVERS:设置最大的SHARED_SERVER数。如果未给此参数附值,那么SHARED_SERVER数库无限制。
一般情况下为10个shared server process 创建一个dispatcher,具体情况根据系统来定。
相关视图:
V$SHARED_SERVER
V$DISPATCHER
V$SHARED_SERVER_MONITOR
V$SESSION
二、如何配置共享服务器
1)配置共享服务器参数
alter system set shared_servers=10 scope=both;
alter system set max_dispatchers=7 scope=both;
ALTER SYSTEM SET DISPATCHERS = '(PROT=tcp)(DISP=3)', '(PROT=tcps)(DISP=3)';
注意:这里max_dispathers 的数量如果比所有类型dispatchers数量总数少,命令也能成功,但是Oracle会在alert中给出警告。
在设置完shared_servers参数后,Oracle会通过PMON自动创建一些shared_server processes ,通过操作系统命令查看。
ps -ef|grep ora_|grep s00|grep testdb|grep -v
SYS@kyle>!ps -ef|grep ora_|grep s00|grep testdb|grep -v grep
oracle 15515 1 0 18:34 ? 00:00:05 ora_s000_testdb
oracle 15517 1 0 18:34 ? 00:00:00 ora_s001_testdb
oracle 15519 1 0 18:34 ? 00:00:00 ora_s002_testdb
oracle 15521 1 0 18:34 ? 00:00:00 ora_s003_testdb
oracle 15523 1 0 18:34 ? 00:00:00 ora_s004_testdb
oracle 15525 1 0 18:34 ? 00:00:00 ora_s005_testdb
oracle 15527 1 0 18:34 ? 00:00:00 ora_s006_testdb
oracle 15529 1 0 18:34 ? 00:00:00 ora_s007_testdb
oracle 15531 1 0 18:34 ? 00:00:00 ora_s008_testdb
oracle 15533 1 0 18:34 ? 00:00:03 ora_s009_testdb
查看创建的dispatchers
SYS@kyle>col name for a10
SYS@kyle>col network for a60
SYS@kyle>SELECT NAME, NETWORK FROM V$DISPATCHER;
NAME NETWORK
---------- ------------------------------------------------------------
D000 (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=11733))
D001 (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=48313))
D002 (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=48142))
D003 (ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=14360))
D004 (ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=54000))
D005 (ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=42408))
也可以通过下面命令单独关闭某个Dispatcher
ALTER SYSTEM SHUTDOWN IMMEDIATE 'D002';
2)配置tnsnames.ora文件
dedicated =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.2.99)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = hong)
(server = shared)
)
)
3)使用共享模式连接数据库
sqlplus kyle/kyle@testdb_shared
4)查看shared 会话
set line 120
col server for a20
col program for a30
col username for a15
select server,program,username,status from v$session
where server in ('SHARED','NONE')
order by program;
还可以通过操作系统命令,查看是哪个dispatcher进行的调度
netstat -anp|grep ora_
可以同过这个命令查找是哪个dispatcher调度了会话
tcp 0 0 127.0.0.1:13279 127.0.0.1:1522 ESTABLISHED 18894/ora_lreg_db12
tcp 0 0 :::63244 :::* LISTEN 15503/ora_d000_test
tcp 0 0 :::59441 :::* LISTEN 15509/ora_d003_test
tcp 0 0 :::16465 :::* LISTEN 15507/ora_d002_test
tcp 0 0 :::16081 :::* LISTEN 18902/ora_d000_db12
tcp 0 0 :::57621 :::* LISTEN 15511/ora_d004_test
tcp 0 0 :::17090 :::* LISTEN 15505/ora_d001_test
tcp 0 0 :::42663 :::* LISTEN 15513/ora_d005_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15078 ESTABLISHED 15503/ora_d000_test
tcp 0 0 ::ffff:10.68.32.199:1521 ::ffff:10.68.32.199:59961 ESTABLISHED 15507/ora_d002_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15072 ESTABLISHED 15505/ora_d001_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15034 ESTABLISHED 15507/ora_d002_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15021 ESTABLISHED 15503/ora_d000_test
tcp 0 0 ::1:19698 ::1:1521 ESTABLISHED 15471/ora_pmon_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15161 ESTABLISHED 15505/ora_d001_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15024 ESTABLISHED 15505/ora_d001_test
三、如何禁用shared server
ALTER SYSTEM SET DISPATCHERS = '';
or
ALTER SYSTEM SET SHARED_SERVERS=0 SCOPE=BOTH;
一、Shared Server配置的相关参数
使用shared server 可以减少对db server 的CPU和内存资源的消耗。
和Shared Server相关的参数主要有两个:shared_server和dispatchers。后一个参数用来设置分发器,可以针对不同的协议设置分发器,比如这样
DISPATCHERS = “(PRO=TCP)(DIS=3)(PRO=IPC)(DIS=2)”
复杂一点的,带有连接池的
DISPATCHERS="(PROTOCOL=tcp)(DISPATCHERS=1)(POOL=on)(TICK=1)(CONNECTIONS=500)(SESSIONS=1000)"
Shared_server用来定义系统启动时启动的Shared server数量,如果是0,就取消了Shared mode。
除了这两个主要的参数,还有几个其他参数。
MAX_DISPATCHERS:设置最大的调度器数
SHARED_SERVER_SESSIONS:限制PMON能够自动创建的SHARED SERVER的最大session数。注意shared server processes的数量也收 processes参数的限制。
MAX_SHARED_SERVERS:设置最大的SHARED_SERVER数。如果未给此参数附值,那么SHARED_SERVER数库无限制。
一般情况下为10个shared server process 创建一个dispatcher,具体情况根据系统来定。
相关视图:
V$SHARED_SERVER
V$DISPATCHER
V$SHARED_SERVER_MONITOR
V$SESSION
二、如何配置共享服务器
1)配置共享服务器参数
alter system set shared_servers=10 scope=both;
alter system set max_dispatchers=7 scope=both;
ALTER SYSTEM SET DISPATCHERS = '(PROT=tcp)(DISP=3)', '(PROT=tcps)(DISP=3)';
注意:这里max_dispathers 的数量如果比所有类型dispatchers数量总数少,命令也能成功,但是Oracle会在alert中给出警告。
在设置完shared_servers参数后,Oracle会通过PMON自动创建一些shared_server processes ,通过操作系统命令查看。
ps -ef|grep ora_|grep s00|grep testdb|grep -v
SYS@kyle>!ps -ef|grep ora_|grep s00|grep testdb|grep -v grep
oracle 15515 1 0 18:34 ? 00:00:05 ora_s000_testdb
oracle 15517 1 0 18:34 ? 00:00:00 ora_s001_testdb
oracle 15519 1 0 18:34 ? 00:00:00 ora_s002_testdb
oracle 15521 1 0 18:34 ? 00:00:00 ora_s003_testdb
oracle 15523 1 0 18:34 ? 00:00:00 ora_s004_testdb
oracle 15525 1 0 18:34 ? 00:00:00 ora_s005_testdb
oracle 15527 1 0 18:34 ? 00:00:00 ora_s006_testdb
oracle 15529 1 0 18:34 ? 00:00:00 ora_s007_testdb
oracle 15531 1 0 18:34 ? 00:00:00 ora_s008_testdb
oracle 15533 1 0 18:34 ? 00:00:03 ora_s009_testdb
查看创建的dispatchers
SYS@kyle>col name for a10
SYS@kyle>col network for a60
SYS@kyle>SELECT NAME, NETWORK FROM V$DISPATCHER;
NAME NETWORK
---------- ------------------------------------------------------------
D000 (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=11733))
D001 (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=48313))
D002 (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=48142))
D003 (ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=14360))
D004 (ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=54000))
D005 (ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=42408))
也可以通过下面命令单独关闭某个Dispatcher
ALTER SYSTEM SHUTDOWN IMMEDIATE 'D002';
2)配置tnsnames.ora文件
dedicated =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.2.99)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = hong)
(server = shared)
)
)
3)使用共享模式连接数据库
sqlplus kyle/kyle@testdb_shared
4)查看shared 会话
set line 120
col server for a20
col program for a30
col username for a15
select server,program,username,status from v$session
where server in ('SHARED','NONE')
order by program;
还可以通过操作系统命令,查看是哪个dispatcher进行的调度
netstat -anp|grep ora_
可以同过这个命令查找是哪个dispatcher调度了会话
tcp 0 0 127.0.0.1:13279 127.0.0.1:1522 ESTABLISHED 18894/ora_lreg_db12
tcp 0 0 :::63244 :::* LISTEN 15503/ora_d000_test
tcp 0 0 :::59441 :::* LISTEN 15509/ora_d003_test
tcp 0 0 :::16465 :::* LISTEN 15507/ora_d002_test
tcp 0 0 :::16081 :::* LISTEN 18902/ora_d000_db12
tcp 0 0 :::57621 :::* LISTEN 15511/ora_d004_test
tcp 0 0 :::17090 :::* LISTEN 15505/ora_d001_test
tcp 0 0 :::42663 :::* LISTEN 15513/ora_d005_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15078 ESTABLISHED 15503/ora_d000_test
tcp 0 0 ::ffff:10.68.32.199:1521 ::ffff:10.68.32.199:59961 ESTABLISHED 15507/ora_d002_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15072 ESTABLISHED 15505/ora_d001_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15034 ESTABLISHED 15507/ora_d002_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15021 ESTABLISHED 15503/ora_d000_test
tcp 0 0 ::1:19698 ::1:1521 ESTABLISHED 15471/ora_pmon_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15161 ESTABLISHED 15505/ora_d001_test
tcp 0 0 ::ffff:127.0.0.1:1521 ::ffff:127.0.0.1:15024 ESTABLISHED 15505/ora_d001_test
三、如何禁用shared server
ALTER SYSTEM SET DISPATCHERS = '';
or
ALTER SYSTEM SET SHARED_SERVERS=0 SCOPE=BOTH;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26723566/viewspace-2137139/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26723566/viewspace-2137139/