Bo's Oracle Station

【博客文章2015】共享服务器的研究,大部分同学不知道-:)

2015-2-24 20:34| 发布者: admin| 查看: 9297| 评论: 0|原作者: Bo Tang

摘要: 大部分同学不查的关于共享服务器的视图,和大部分同学不配的HOST和PORT参数。
共享服务器的研究

Author: Bo Tang

1. 与共享服务器配置相关的初始化参数

     SHARED_SERVERS: 初始化启动的共享服务器进程数和保留的最小共享服务器进程数;如果使用共享连接,这个参数是必配的。
    配置共享服务器连接的注意事项:

参数文件中SHARED_SERVERS大于0即可。其他参数不是必要的。
使用ALTER SYSTEM语句设置SHARED_SERVERS为大于0值,如:
ALTER SYSTEM SET SHARED_SERVERS = 5;


    如果要关闭共享服务连接:

设置SHARED_SERVERS=0;
关闭DISPATCH:
ALTER SYSTEM SET DISPATCHERS = '';


    MAX_SHARED_SERVERS: 最大的共享服务器进程数。
    SHARED_SERVER_SESSIONS: 可并发处理的最大共享用户会话数,超过此数值的用户会话将使用专有连接。

如果要满足“配置一个数据库能够支持300个会话,其中预留100个会话给dedicated连接”这样的需求,就要同时配置session参数和shared_server_sessions参数。dedicated连接数目就是逻辑会话的数目(对于dedicated连接,物理连接同时就是逻辑会话)。SQL> alter system set sessions=300 scope=spfile ;
SQL> alter system set shared_server_sessions=200 scope=both;

  
    DISPATCHERS: 共享连接的分派器数量。

例如:
每进程能支持970个连接,
TCP/IP连接最多有4000个会话,
安全(TCP/IP with SSL)最多有2,500个会话,
则用于TCP/IP协议的DISPATCHERS可设为5,(4000 / 970), 用于安全TCP/IP协议的dispatchers 可设为3,(2500 / 970):
DISPATCHERS='(PROT=tcp)(DISP=5)', '(PROT-tcps)(DISP=3)'

再例如:
强制特定的IP使用DISPATCH:
DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(HOST=144.25.16.201))(DISPATCHERS=2)"
这将产生两个DISPATCH监听特定的IP。

如果要强制DISPATCH使用特定端口:
DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5000))"
DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5001))"


    MAX_DISPATCHERS: 可同时存在的共享连接的最大的分派器数量,此参数目前可忽略。
  
以下示例实现:默认有3个TCP分派器
SQL>alter system set dispatchers="(PROTOCOL=TCP)(DISPATCHERS=3)" scope=both;

最多10个TCP分派器
SQL> alter system set max_dispatchers=10 scope=both;
当修改一个DISPATCH的DESCRIPTION, ADDRESS, PROTOCOL, CONNECTIONS,TICKS, MULTIPLEX, and POOL属性后,修改后的设置不能立即生效,需要强制性地杀掉现在的DISPATCH进程。
定位要关闭的进程:
SQL> SELECT NAME, NETWORK FROM V$DISPATCHER;
设置前,关闭DISPATCH进程:
ALTER SYSTEM SHUTDOWN IMMEDIATE 'D002'(DISPATCH NAME);
然后再使用alter system命令进行设置。


    CIRCUITS: 可用的虚拟回路数(就是共享服务器会话数)
  
3. 关于共享服务器说明:

    对于连接数不多的应用,适宜用专有连接,客户的请求响应及时;
    对于连接数较大的应用,适宜用共享连接,充分利用系统资源;
    后台作业和RMAN操作必须使用专有连接;

4.  与共享服务器配置相关的v$视图:

    察看DISPATCH的负载性能,可查询如下视图
   
V$QUEUE 提供共享服务器队列信息。  
    V$DISPATCHER提供DISPATCH进程信息,包括DISPATCH名称,网络,地址,状态,统计信息和索引号等。
    V$DISPATCHER_RATE 提供DISPATCH的速度(RATE)统计。   
    V$SHARED_SERVER_MONITOR 提供共享服务器的优化信息
    查询DISPATCH的配置
    V$DISPATCHER_CONFIG
提供DISPATCH的配置信息。
    V$SHARED_SERVER 提供共享服务器信息。
    V$CIRCUIT 提供用户通过DISPATCH连接到数据库的虚拟回路信息(virtual circuits)。

5

路过

雷人

握手

鲜花

鸡蛋

刚表态过的朋友 (5 人)

QQ|手机版|Bo's Oracle Station   

GMT+8, 2022-3-22 17:16 , Processed in 0.041144 second(s), 21 queries .

返回顶部