共享服务器模式设置

     

     

    一,相关参数说明

    Shared_servers  指定实例启动时可以创建的共享服务的最小数量  最大不能超过max_shared_servers    是唯一要求设置的参数 

    指定了当instance 启动的时候 shared server process 启动的数量,不要将这个参数设置得太大,否者启动数据库instance 的时候

    就会花更多时间,Oracle启动过后会根据负载来动态调整shared_servers。如果为0,表示数据库没有启动共享服务模式。 这个参数是

    配置shared server 必须的,而且只有这个参数是必须的。

     

    --修改参数: alter system set shared_servers=1;

    max_shared_servers 指定共享服务能同时运行的最大数量  

    ORACLE在同一个时刻最大能够使用的 shared server process.不要将这个参数设置小于 shared_servers,如果动态修改

    shared_servers大于max_shared_servers,ORACLE会覆盖max_shared_servers的值,此时你需要修改max_shared_servers.

    同时也不能大于processes。这个参数是为了给占用很大资源操作而设的(批处理),为了预留一些process 给DBA任务(rman备份)

     

    SHARED_SERVER_SESSIONS 指定了总共允许的的 shared server session 的数量。如果设置了这个参数,那么就不要将这个值超过sessions,如果没有设置这个值,那么只要还有空闲的session,就可以被使用。设置这个值是为专有连接预留 user sessions.

    DISPATCHERS  配置调度进程  

    配置 dispatcher process .如果不设置这个参数,只要设置了shared_servers,oracle 也会自动设置一个基于tcp协议的dispatcher。

    还需要查看操作系统支持一个dispatcher能处理多少个connections

    MAX_DISPATCHERS  调度进程并发的最大数

    设置同一时刻能够同时运行的dispatchers的数量,必须大于等于 dispatchers ,小于processes。这个参数也会被dispatchers覆盖。

    CIRCUITS  指定网络会话入站和出站可用的虚拟线路总数

    SQL> select * from V$CIRCUIT;

    二,使shared server可用

    只要shared_servers非0,其他参数不需要设置    

    这个参数不在参数文件中设置或者在参数文件中设置了但是值为0,share server都是不可用的

    另外,即使是shared_servers没有在参数文件中设置,但是dispatchers在参数文件中设置了,共享服务就可用,并且shared_servers默认为1

    特殊说明:如果使用DBCA建库,DBCA会为oracle XML DB配置一个dispatchers,因为像HTTP,FTP要求一个共享服务,结果查看shared_servers的值为1.虽然shared server可用,但是限制在连接XDB的会话可以使用shared server。如果想要使常规的数据库会话能使用shared server,你必须额外的配置dispatchers或者覆盖已经存在的dispatchers配置

    如:查看参数文件

      dispatchers              = "(PROTOCOL=TCP) (SERVICE=asm00XDB)"

    三,shared_servers的值的设置

    服务数和会话数稳定在1:10之间

    四,配置调度进程

    至少有一个调度进程,如果设置shared_servers为1,不设置dispatchers,则默认有一个dispatchers

    语法:

                                 
      

     DISPATCHERS = 'dispatch_clause'

      
      

     

      
      

     

      
      

    dispatch_clause::=

      

    (PROTOCOL   = protocol) |

      

    (ADDRESS   = address) |

      

    (DESCRIPTION   = description )

      

    [options_clause]

      
      

     

      
      

    options_clause::=

      

    (DISPATCHERS   = integer |

      

    SESSIONS   = integer |

      

    CONNECTIONS   = integer |

      

    TICKS =   seconds |

      

    POOL =   {1 | ON | YES | TRUE | BOTH |

      

    ({IN |   OUT} = ticks) | 0 | OFF | NO | FALSE   |

      

    ticks} |

      

    MULTIPLEX   = {1 | ON | YES | TRUE |

      

    0 | OFF   | NO | FALSE | BOTH | IN | OUT} |

      

    LISTENER   = tnsname |

      

    SERVICE   = service |

      

    INDEX =   integer)

      

    例如:DISPATCHERS = '(PROTOCOL=TCP)(DISPATCHERS=3)'

    五,配置调度进程的数量

    公式:

    Number of dispatchers = CEIL ( max. concurrent sessions / connections for each dispatcher )

    最大的并发会话数/每个调度的连接数   取大于所得数的最小整数

    例如:

    假设一个系统每个进程支持970个会话

    通过TCP/IP的最大并发会话数是4000

    通过SSL的最大并发会话数是2500

    则TCP/IP需要的dispatchers为4000/970=4.1多为5个

    SSL需要2500/970=2.57为3个

     

    DISPATCHERS='(PROT=tcp)(DISP=5)', '(PROT-tcps)(DISP=3)'

    典型的配置

    DISPATCHERS="(PROTOCOL=TCP)(DISPATCHERS=2)"

    指定IP地址

    DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(HOST=144.25.16.201))(DISPATCHERS=2)"

    指定端口

    DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5000))"
      DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5001))"

    五,查看dispatchers

       
    • V$QUEUE 
    • V$DISPATCHER 
    • V$DISPATCHER_RATE 
    • V$DISPATCHER_CONFIG     

     

    六,修改dispatchers的数量

    如:参数文件中指定

    DISPATCHERS='(PROT=tcp)(DISP=2)', '(PROT=tcps)(DISP=2)'

    修改:两种方式

    ALTER SYSTEM SET DISPATCHERS = '(INDEX=0)(DISP=3)', '(INDEX=1)(DISP=1)';

    ALTER SYSTEM SET DISPATCHERS = '(PROT=tcp)(DISP=3)', '(PROT-tcps)(DISP=1)';

     

    如果要增加一个dispatchers

    ALTER SYSTEM SET DISPATCHERS = '(INDEX=2)(PROT=tcp)(POOL=on)';   如果省略index则会覆盖INDEX0的进程

    七,关闭一个调度进程

    1SELECT NAME, NETWORK FROM V$DISPATCHER;
     
    2ALTER SYSTEM SHUTDOWN IMMEDIATE 'D002';     -----D002NAME

    如果不加IMMEDIATE关键字,dispatcher会等待所有链接断开后才关闭

    八,使shared server不可用

    设置shared_servers为0即可

     

    ALTER SYSTEM SET DISPATCHERS = '';

    九,相关视图

                                                                                                                 
      

    View

      
      

    Description

      
      

    V$DISPATCHER

      
      

    Provides   information on the dispatcher processes, including name, network address,   status, various usage statistics, and index number.

      
      

    V$DISPATCHER_CONFIG

      
      

    Provides   configuration information about the dispatchers.

      
      

    V$DISPATCHER_RATE

      
      

    Provides   rate statistics for the dispatcher processes.

      
      

    V$QUEUE

      
      

    Contains   information on the shared server message queues.

      
      

    V$SHARED_SERVER

      
      

    Contains   information on the shared servers.

      
      

    V$CIRCUIT

      
      

    Contains   information about virtual circuits, which are user connections to the   database through dispatchers and servers.

      
      

    V$SHARED_SERVER_MONITOR

      
      

    Contains   information for tuning shared server.

      
      

    V$SGA

      
      

    Contains   size information about various system global area (SGA) groups. May be   useful when tuning shared server.

      
      

    V$SGASTAT

      
      

    Contains   detailed statistical information about the SGA, useful for tuning.

      
      

    V$SHARED_POOL_RESERVED

      
      

    Lists   statistics to help tune the reserved pool and space within the shared pool.

      

     

     

     

你可能感兴趣的:(共享服务器模式设置)