Oracle shared server 配置详解

官方文档的位置: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;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26723566/viewspace-2137139/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26723566/viewspace-2137139/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值