Oracle Shared Server(OSS)笔记

Oracle Shared Server(OSS)笔记 (zt)
===========================================================
作者: tolywang(http://tolywang.itpub.net)
发表于:2007.07.19 09:59
分类: Oracle数据库管理
出处:http://tolywang.itpub.net/post/48/309884
---------------------------------------------------------------

1、overview:
dedicated Server: 每一个session分配一个server process,而大多数时候session都是idle的,占用资源
流程:user process(client)<--->server process<--->SGA
user session data放在PGA中。

shared Server: OSS类似于Connection pool,但跟java中的连接池不一样。
流程:user process(client)--->dispatcher process-->request queue-->shared server process-->response queue-->dispatcher process-->user process(client),如图:
user session data 放在SGA,最好设置LARGE_POOL_SIZE,用来保存session data.
Shared server也可以建立dedicated server process,配置tnsnames.ora: SERVER=DECICATED,因为某些操作必须使用专用连接,如:
1、Submitting batch job
2、DBA job
什么时候使用OSS:
- 系统运行在Dedicated模式下负载过大
- limit of resources

配置OSS,initSID.ora:
- DISPATCHER="(PROTOCOL=TCP)(DISPATCHERS=3)", Dynamic, default NULL
- SHARED_SERVERS=3, Dynamic, default 0
optional parameters:
- MAX_DISPATCHERS, static, default 5
- MAX_SHARED_SERVERS, static, default 20 OR 2*SHARED_SERVERS
- CIRCUITS, static, default SESSIONS or 0
- SHARED_SERVER_SESSIONS, total number of user sessions, static, default: min(CIRCUITS, SESSIONS-5)
- LARGE_POOL_SIZE
几个相关view: v$circuit, v$shared_server, v$queue, v$dispatcher, v$shared_server_monitor, v$session

tuning几个方面:
1、dispatchers争用:dispatchers不会自动根据系统负载调整,必须监视,并且手动调整,
- Busy rate,view v$dispatchers, if > 50%, add dispatchers
- Dispatcher waiting time, view v$queue, v$dispatchers, 如果稳定上升,add dispatchers
2、shared servers: 系统可动态调整,由PMON完成,但也有限度,(SHARED_SERVERS, MAX_SHARED_SERVERS)
view v$shared_server, v$queue
3、监视process usage, view v$circuit
- Server address
- Dispatcher address
- user session address

troubleshooting
1、listener没运行
2、不要在操作系统级别kill user process, 用alter system kill session代替!!!
3、DBA没有专用连接
4、参数(INSTANCE_NAME, SERVICE_NAMES, DB_NAME)没有设置, 实例自动注册失败。

tolywang 发表于:2007.07.19 09:59 ::分类: ( Oracle数据库管理 ) ::阅读:(315次) :: 评论 (1) :: 引用 (0)  re: Oracle Shared Server(OSS)笔记 (zt) [回复]
Oracle shared server & dedicated server

Oracle shared server的应用一般是基于表单的,并涉及给数据库提交小数据量信息,因而返回给客户的是小的结果集合。ORACLE采用不同的方式管理专用服务器和共享服务器连接。在一个ORACLE SHARED SERVER环境中,调度程序[Dispatcher]进程负责服务客户请求。在一个专用服务器环境中单个客户进程由单个服务器进程处理.

ORACLE给SGA增加两种新型的结构:请求队列和响应队列。这两种结构是在专用服务器环境中是不存在的。here is one request queue for all dispatchers, but each dispatcher has its own response queue.

Shared Server SGA 与 Dedicated server SGA 区别:

Shared Server SGA有 LARGE POOL ,LARGE POOL 有UGA(USER GLOBAL AREA)

The PGA is an area of memory where information about each client session is maintained. This information includes bind variables, cursor information, and the client’s sort area. In an Oracle Shared Server environment, this information is moved from the PGA to an area of the SGA called the User Global Area (UGA)

ORACLE SHARED SERVER的优点和缺点:

优点:ORACLE SHARED SERVER能够减少服务器上的总内存与进程需求。由于客户正共享进程,所以总进程数量减少。

缺点:生成大量网络通信信息或产生大型结果集合的应用软件不是ORACLE SHARED SERVER连接的合适侯选者。

ORACLE SHARED SERVER一个可缩放性增强选件,不是一个性能增强选件

you should not perform certain administrative tasks using Oracle Shared Server connections, including bulk loads of data, index and table rebuilds, and table analysis. These types of tasks deal with manipulating large data sets and should use dedicated connections

By default, if Oracle Shared Server is configured, a client is connected to a dispatcher unless the client explicitly requests a dedicated connection.

# tnsnames.ora Network Configuration File:
# C:oracleproduct10.1.0db_1 etworkadmin nsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MJW01)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
(SRVR = DEDICATED) # Request a dedicated connection for DBA
)

使用localnaming在TNSNAMES中指定连接方式,那么客户端也可以以DEDICATED方式连接Oracle Shared Server

listerner--dispatcher--request queue--shared server process--response queue

原文地址:https://www.cnblogs.com/lovewife/p/1427839.html