1、独占服务器(dedicatedserver)每一个session单独分配一个serverprocess,直到用户断开连接,才释放该进程所占用的资源。而大多数时候session都是idle的,所以存在占用资源的情况。在有些情况下,必须使用独占服务器模式:(本地连接)SQL> select username,SERVER,PROGRAM,OSUSER,MACHINEfrom v$session where username is not null;
USERNAME SERVER PROGRAM OSUSER MACHINE ------------------------------ --------------------------------------------------------- ------------------------------------------------------------ SYS DEDICATEDsqlplus@ora11g (TNS V1-V3) Oracle ora11g2、shared server特点共享服务器响应用户请求的步骤如下:1) 客户传送一个请求到调度程序。2) 调度程序将请求放在SGA中的请求队列中(share pool 或 large pool)。3) 其中的一个共享服务器进程响应并处理这个请求。4) 共享服务器进程把处理完的请求回复放到SGA中的响应队列中。5) 调度器从响应队列中取出已经完成的请求。6) 调度器把完成的请求回复给客户关于SGA的请求和相应队列以及Dispatcher,具有如下的一些特点: 1)在SGA中只有一个请求队列。 2)共享服务器监控请求队列的使用情况。 3)请求队列遵循先进先出(FIFO)的原则。 4)共享服务器将已经完成的请求放在提交该请求的dispatcher所对应的response队列中。 5)每一个dispatcher在SGA中都由一个对应的response队列。 6)Dispatcher需要负责将完成的请求回复给相应的用户进程。 7)在同一个session中,用户进程始终连接的是同一个Dspatcher。3、配置shared server1)、配置dispatchsSQL> alter system setdispatchers="(PROTOCOL=tcp)(DISPATCHERS=5)";
System altered.
SQL> show parameters dispa
NAME TYPE VALUE ----------------------------------------------- ------------------------------ dispatchers string (PROTOCOL=tcp)(DISPATCHERS=5) max_dispatchers integer
TNS Ping Utility for Linux: Version11.2.0.4.0 - Production on 04-NOV-2015 15:42:39
Copyright (c) 1997, 2013, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST=ora11g)(PORT = 1521)) (CONNECT_DATA = (SEVER =SHARED) (SERVICE_NAME = prod))) OK (10 msec)测试:[oracle@ora11g admin]$ sqlplus system/oracle@test
SQL*Plus: Release 11.2.0.4.0 Production onWed Nov 4 15:42:49 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to: Oracle Database 11g Enterprise EditionRelease 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Miningand Real Application Testing options
SQL>
SQL> select username,sid,server fromv$session where username is not null;
USERNAME SID SERVER ------------------------------ ------------------- SYS 9 DEDICATED SYSTEM 12 NONE
SQL> selectusername,SERVER,PROGRAM,OSUSER,MACHINE from v$session where username is notnull;
USERNAME SERVER PROGRAM OSUSER MACHINE ------------------------------ --------------------------------------------------------- ------------------------------------------------------------ SYS DEDICATEDsqlplus@ora11g (TNS V1-V3) oracle ora11g SYSTEM NONE sqlplus@ora11g (TNS V1-V3) oracle ora11g4、监控共享serverSQL> col network for a50 SQL> select name ,NETWORK,PADDR,STATUS,ACCEPT ,idle,busy from v$dispatcher;
NAME busy rate ---- ---------- D000 0 D001 0 D002 0 D003 0 D004 .003085705关注客户请求在请求队列中等待了多长时间,请求队列中等待的时间越长,则说明客户等待的时间也越长。SQL> select decode(totalq,0,"Norequests") "wait time", 2 wait/totalq||"hundredths ofseconds" "Average wait time per request" 3 from v$queue 4 where type="COMMON";
wait time Average wait time per request ------------------------------------------------------------------------ 0hundredths of seconds 0hundredths of seconds更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址