Oracle服务器体系简述

服务器体系

专用服务器体系:多个会话通过监听器生成多个服务器进程,浪费过多资源,消耗过多内存。
共享服务器体系:客户端发送会话连接通过监听器到公共请求队列中进行排队,通过提前设定好的共享服务器进程(SHARED_SERVER)进程数进行SGA访问,最后将访问的结果会放在响应队列里面中,通过数据库调度进程(DISPATCHER)将公共请求队列和响应队列中会话相同的ID返回给客户端,共享服务器体系只会有固定的服务器进程数去工作,采用队列的形式
减缓服务器压力,节省更多创建进程所消耗的资源和内存。

两种方法专用服务器体系配置共享服务器体系:
第一种:手动生成一个静态参数文件,修改里面的值,然后通过静态参数文件再次生成动态参数文件(CREATE SPFILE FROM PFILE)
第二种:直接通过SQL自动在线修改参数值,以下为操作步骤:

--查看目前数据库进程数
SELECT COUNT(*) FROM V$PROCESS;

--查看目前服务器体系(专用服务器体系DEDICATED,共享服务器体系SHARED)
SELECT DISTINCT SERVER FROM V$SESSION;

--查看共享服务器进程数量,一般默认为1
SHOW PARAMETER SHARED_SERVER; 

--查看调度进程,一般默认为(PROTOCOL=TCP) (SERVICE=PASXDB)
SHOW PARAMETER DISPATCHER 

--修改共享服务器进程数,从默认参数1改为3
ALTER SYSTEM SET SHARED_SERVERS = 3;

--修改调度进程数,从默认1改为4,其中里面SERVICE参数值要注意要回对应自己实例的名称
ALTER SYSTEM SET DISPATCHERS="(PROTOCOL=TCP)(DISPATCHERS=4) (SERVICE=PAS)";

--查看系统目前现有的共享服务器进程,一般都是以S00开头。
SELECT PROGRAM FROM V$PROCESS WHERE PROGRAM LIKE '%S00%';

--查看系统目前现有的调度进程,一般都是以D00开头。
SELECT PROGRAM FROM V$PROCESS WHERE PROGRAM LIKE '%D00%';

当以上参数配置完成查看,重启数据库,通过命令查看目前服务器体系,会发现多了一个SHARED,这个
就是通过我们刚刚设置了共享服务器进程数和调度进程数形成的一个共享服务器体系(SHARED),但是
虽然服务器上已经有SHARED,但是同时也存在DEDICATED,如果直接现在用客户端发起会话连接还是
会在服务器上生成新的进程,这个时候就需要在客户端的TNSNAMES.ORA文件中,以下为文件内容:

PAS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PAS)
)
)
这段配置信息中有一项(SERVER = DEDICATED),这里就是配置了客户端连接服务器的信息并且指定了是以
专有服务器体系去进行连接的,所以这里需要将它修改(SERVER = SHARED),保存,然后再重新建立连接,
这样就不会再生成新的数据库进程数,但是这里有点需要注意,当设置了SHARED以后,发现数据库进程数还是
会有波动,这点因为数据库有部分进程还没关闭或者正在执行,只需要等待一会儿即可;
总结一点,要使用共享服务器进程必须前提服务器已经配置共享服务器体系并且客户端
要求指定连接方式也是采用共享服务器体系才能享受共享服务器体系结构。

猜你喜欢

转载自blog.csdn.net/m0_38036502/article/details/106351749
今日推荐