打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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     1  0 18:03 ?        00:00:00 ora_d010_mcstar
ora10g   13935     1  0 18:03 ?        00:00:00 ora_d011_mcstar
ora10g   13937     1  0 18:03 ?        00:00:00 ora_d012_mcstar
ora10g   13939     1  0 18:03 ?        00:00:00 ora_d013_mcstar
ora10g   13941     1  0 18:03 ?        00:00:00 ora_d014_mcstar
ora10g   13943     1  0 18:03 ?        00:00:00 ora_d015_mcstar
ora10g   13945     1  0 18:03 ?        00:00:00 ora_d016_mcstar
ora10g   13947     1  0 18:03 ?        00:00:00 ora_d017_mcstar
ora10g   13968     1  0 18:03 ?        00:00:00 ora_d018_mcstar
ora10g   13982     1  0 18:03 ?        00:00:00 ora_d019_mcstar
ora10g   17123     1  0 Apr03 ?        00:00:00 ora_d000_mcstar
操作系统fork出5个shared server进程
[ora10g@mcprod admin]$  ps -ef|grep ora_s|grep -v ora_smon_mcstar
ora10g    3097     1  0 18:22 ?        00:00:00 ora_s000_mcstar
ora10g    7909     1  0 18:24 ?        00:00:00 ora_s001_mcstar
ora10g    7911     1  0 18:24 ?        00:00:00 ora_s002_mcstar
ora10g    7913     1  0 18:24 ?        00:00:00 ora_s003_mcstar
ora10g    7915     1  0 18:24 ?        00:00:00 ora_s004_mcstar
查看监听service可以看dispatch状态
[ora10g@mcprod admin]$ lsnrctl services

LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 06-APR-2011 18:24:53

Copyright (c) 1991, 2006, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.4.163)(PORT=1521)))
Services Summary...
Service "mcstar" has 1 instance(s).
  Instance "mcstar", status READY, has 21 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:17 refused:0 state:ready
         LOCAL SERVER
      "D018" established:0 refused:0 current:0 max:972 state:ready
         DISPATCHER <machine: mcprod, pid: 7086>
         (ADDRESS=(PROTOCOL=tcp)(HOST=mcprod)(PORT=30802))
      "D017" established:0 refused:0 current:0 max:972 state:ready
         DISPATCHER <machine: mcprod, pid: 7084>
         (ADDRESS=(PROTOCOL=tcp)(HOST=mcprod)(PORT=61930))
      "D016" established:0 refused:0 current:0 max:972 state:ready
         DISPATCHER <machine: mcprod, pid: 7082>
         (ADDRESS=(PROTOCOL=tcp)(HOST=mcprod)(PORT=18529))
      "D015" established:0 refused:0 current:0 max:972 state:ready
         DISPATCHER <machine: mcprod, pid: 7080>
         (ADDRESS=(PROTOCOL=tcp)(HOST=mcprod)(PORT=61294))
      "D014" established:0 refused:0 current:0 max:972 state:ready
         DISPATCHER <machine: mcprod, pid: 7078>
         (ADDRESS=(PROTOCOL=tcp)(HOST=mcprod)(PORT=8452))
      "D013" established:0 refused:0 current:0 max:972 state:ready
         DISPATCHER <machine: mcprod, pid: 7076>
         (ADDRESS=(PROTOCOL=tcp)(HOST=mcprod)(PORT=7950))
。。。
在共享模式下,如果local naming,tnsnames.ora也可以配置成专用模式,需要注意的是如果使用参数DEDICATED,Oracle将单独派生进程进行客户端处理,也就是专用模式。
mcstar =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.4.163)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (service_name = mcstar2)
    )
  )
如果要使用shared server模式,需要将tnsnames.ora配置成
mcstar =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.4.163)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = shared)
      (sid = mcstar)
    )
  )
需要注意的是配置成shared server模式之后,我们建议将larger pool加大,因为在shared server模式下,配置larger pool之后,UGA将保存在larger pool下,这样可以分担shared pool部分压力。此外配置成shared pool之后,尤其当数据库出现性能问题时,如下视图将变得十分重要:v$shared_sevrver,v$circuit,v$dispatcher,v$queue。





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Oracle12c 安装(二)
关于Oracle Shared Server及一些参数设置 - air--13910587...
Oracle与SQLserver数据库互建跨库链接
ORA-12518: TNS:listener could not hand off client connection
【监听】手工配置tnsnames.ora文件注意事项
ORA-3136 连接超时问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服