oracle专用服务器与共享服务器的研究 下载本文

oracle专用服务器与共享服务器的研究

by 陈一贤

一、 oracle服务客户连接的方式

oracle创建一个服务进程来处理用户进程连接数据库的请求,服务进程包括以下两种:

? 专用服务器进程

? 共享服务器进程

一个专用服务器进程仅仅服务一个用户进程,而一个共享服务器进程可以服务多个用户进程。通常来说,共享服务器对资源的使用更加有效率,因为这样的模式可以让服务器进程数保持在一个相对少的水平。

专用服务器中,一个用户进程连着一个数据库服务进程,这个用户进程也不会时时刻刻在执行SQL操作,总有空闲的时候,有的甚至可能长时间处于空闲状态,在session方面就表现为session的状态为inactive。如果有较多的用户处于空闲状态,那么对数据库来说,就是一种资源的浪费,最主要表现在数据库内存资源的浪费。

二、 专用服务器与共享服务器的对比

1. 基础比较

2. 内存消耗比较(举例)

假如一个应用连接数据库的session的内存消耗是400KB,每一个服务进程的内存消耗是4MB,共享服务器的数据是400个。如果有5000个客户端连接,那么两种模式的数据库内存消耗分别如下:

? 专用服务器

内存消耗:5000*(400KB+4MB)=22GB;

? 共享服务器

内存消耗:5000*400KB+100*4MB=2.5GB (其中2GB从SGA中获得)

小结:共享服务器比专用服务器节省了接近20GB的内存。对于内存资源紧张的数据库而言,共享服务器的模式更为可取。

三、 两种连接方式的优缺点

1. 共享服务器的优点

1) 减少操作系统的进程数;

2) 减少PGA的内存使用;

3) 增强应用的扩展性以及增加同时连到数据库的客户端数;

4) 在高并发多连接的情况下,性能可能比专用服务器更好。

2. 共享服务器的缺点

1) 在某些情况下,响应时间会更长;

2) 增加设置以及调优的复杂性;

3) 存在独占事务的可能,因为如果一个会话的事务运行时间过长,它独占共享

资源,其它用户只能等待。

3. 专用服务器的优点

1) 专用服务器是数据库默认的进程管理模式,基本不用配置;

2) 在充足的资源的情况下,采用专用服务器可以避免资源竞争,较快的响应时

间;

3) 适合于长时间运行的事务,例如批处理的任务,使用恢复管理器(RMAN)来

备份、还原或者恢复数据库。

4. 专用服务器的缺点

1) 当数据库接到一个新的客户端连接请求后,会新重建一个服务进程来服务用

户连接,直到这个会话中止,会较多地占用服务器资源;

2) 即使session处于空闲状态(inactive),其对应的server process仍然占

用服务器资源,是对服务资源的一种浪费。

四、 配置原则

1) 在高并发多连接,而操作系统无法处理(资源限制)的情况下使用共享服务

器的模式;

2) 在高并发、短事务的应用中,也可以使用共享服务器的模式;

3) 一个数据库可以同时支持共享服务器与专用服务器的连接模式,也就是一个

用户用专用服务器的模式连接到数据库,同时,另一个用户用共享服务器的模式连接到数据库。