2009年6月9日星期二

oracle server mode--dedicated and shared

Oracle 服务器模式
前言:oracle进程包括background process,server process,user process ,others
类型:dedicated and shared
区别:专用模式: 每个user连接进来,oracle启动一个server process来处理请求,N个用户,N个server process
共享模式: 所有user连接进来,oracle只启动固定数理的server process 处理请求,主要用在 OLTP 业务中
switcher进程来决定哪个用户请求使用哪一个server procsee 进程

共享模式配置:
1. 设置 DISPATCHERS 参数
*.DISPATCHERS='(PROTOCOL=TCP)(SERVICE=SKYSH)(DISPATCHERS=2)(PROTOCOL=IPC)(DISPATCHERS=1)'
DISPATCHER

的端口是随机分配的,如果要固定每个 DISPATCHER 的端口,可以用一下方法:
使用不同端口:

*.DISPATCHERS='(ADDRESS=(PROTOCOL=TCP)(PORT=5000))(DISPATCHERS=1)','(ADDRESS=(PROTOCOL=TCP)(PORT=5001))(DISPATCHERS=1)'

使用相同端口:

*.dispatchers='(ADDRESS=(PROTOCOL=TCP)(PORT=5002))(SERVICE=SKYSHR)(DISPATCHERS=1)'

DISPATCHERS 只能用 alter system set DISPATCHERS 来临时添加删除 dispatcher,重启之后又恢复原值,且不能使用 scope 参数。

其中,SERVICE=SKYSH 参数可以不指定,如果不指定,则需要指定 service_names 和 instance_name 初始参数,当 instance 启动时,PMON 会动态将 SERVICE 或者 service_names 指定的值邦定到 LISTENER,并生成 dispatchers。

DISPATCHERS=2 如果不指定,那么默认值是 1。
PROTOCOL:当使用 Shared Server 连接时,必须通过 Oracle Net Services,即使客户端和数据库在同一台机子上,如果在 Windows NT 上,dispatchers 只能使用 TCP/IP 协议。

2.设置客户端 tnsnames.ora 文件:

SKY3 =

(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.123)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = SKYSH.heysky.net)
(SERVER = SHARED)
)
)

相关参数更改

1、DISPATCHERS参数
数据库启动时,启动的调度程序的数量
eg:
配置2个TCP/IP调度程序和3个IPC调度程序
DISPATCHERS = “(PRO=TCP)(DIS=2)(PRO=IPC)(DIS=3)”

使用ALTER命令修改DISPATCHERS参数
ALTER SYSTEM SET DISPATCHERS = “(PRO=TCP)(DIS=2)”

使用DISPATCHERS参数配置连接集储(connection pooling)
连接集储定义:自动断开空闲连接和使用空闲连接为连接请求提供服务
eg:
DISPATCHERS=”(PROTOCOL=tcp)(DISPATCHERS=1)(POOL=ON)(TICK=1)(CONNECTIONS=500)(SESSIONS=1000)”
解释:
POOL=ON 打开连接集储
TICK=1 一个连接在经过一个非活动性的10分钟增量后被看做空闲的
2、MAX_DISPATCHERS参数
ORACLE SHARED SERVER需要的最大调度程序数据

使用ALTER命令修改
ALTER SYSTEM SET MAX_DISPATCHERS=10

3、SHARED_SERVERS参数
ORACLE实例启动和保持最小shared server数量

使用ALTER命令修改
ALTER SYSTEM SET SHARED_SERVERS=10

4、SHARED_SERVER_SESSION参数
ORACLE实例预测shared server会话的总数量

使用ALTER命令修改
ALTER SYSTEM SET SHARED_SERVER_SESSION =10

5、MAX_SHARED_SERVERS参数
并发运行shared server的最大数量
视图V$SHARED_SERVER_MONITOR可以查看ORACLE实例启动以来的shared server数量

使用ALTER命令修改
ALTER SYSTEM SET MAX_SHARED_SERVERS=10

6、CIRCUITS参数
控制一个输入输出网络会话所预测的虚拟电路的总数量

使用ALTER命令修改
ALTER SYSTEM SET CIRCUITS=10


没有评论:

发表评论