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 ora11g
2、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 server
1)、配置dispatchs
SQL> 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
oracle 21441 1 0 15:22 ? 00:00:00 ora_pmon_prod
oracle 21443 1 0 15:22 ? 00:00:00 ora_psp0_prod
oracle 21445 1 1 15:22 ? 00:00:14 ora_vktm_prod
oracle 21449 1 0 15:22 ? 00:00:00 ora_gen0_prod
oracle 21451 1 0 15:22 ? 00:00:00 ora_diag_prod
oracle 21453 1 0 15:22 ? 00:00:00 ora_dbrm_prod
oracle 21455 1 0 15:22 ? 00:00:00 ora_dia0_prod
oracle 21457 1 0 15:22 ? 00:00:00 ora_mman_prod
oracle 21459 1 0 15:22 ? 00:00:00 ora_dbw0_prod
oracle 21461 1 0 15:22 ? 00:00:00 ora_dbw1_prod
oracle 21463 1 0 15:22 ? 00:00:00 ora_lgwr_prod
oracle 21465 1 0 15:22 ? 00:00:00 ora_ckpt_prod
oracle 21467 1 0 15:22 ? 00:00:00 ora_smon_prod
oracle 21469 1 0 15:22 ? 00:00:00 ora_reco_prod
oracle 21471 1 0 15:22 ? 00:00:01 ora_mmon_prod
oracle 21473 1 0 15:22 ? 00:00:00 ora_mmnl_prod
oracle 21475 1 0 15:22 ? 00:00:00 ora_d000_prod
oracle 21477 1 0 15:22 ? 00:00:00 ora_s000_prod
oracle 21485 1 0 15:23 ? 00:00:00 ora_qmnc_prod
oracle 21514 1 0 15:23 ? 00:00:00 ora_q000_prod
oracle 21516 1 0 15:23 ? 00:00:00 ora_q001_prod
oracle 21862 1 0 15:33 ? 00:00:00 ora_smco_prod
oracle 21881 1 0 15:33 ? 00:00:00 ora_w000_prod
oracle 21972 1 0 15:35 ? 00:00:00 ora_d001_prod --调度进程启用
oracle 21974 1 0 15:35 ? 00:00:00 ora_d002_prod
oracle 21976 1 0 15:35 ? 00:00:00 ora_d003_prod
oracle 21978 1 0 15:35 ? 00:00:00 ora_d004_prod
2)、配置sharedserver
SQL> alter system set shared_servers=10;
System altered.
oracle 21441 1 0 15:22 ? 00:00:00 ora_pmon_prod
oracle 21443 1 0 15:22 ? 00:00:00 ora_psp0_prod
oracle 21445 1 1 15:22 ? 00:00:16 ora_vktm_prod
oracle 21449 1 0 15:22 ? 00:00:00 ora_gen0_prod
oracle 21451 1 0 15:22 ? 00:00:00 ora_diag_prod
oracle 21453 1 0 15:22 ? 00:00:00 ora_dbrm_prod
oracle 21455 1 0 15:22 ? 00:00:00 ora_dia0_prod
oracle 21457 1 0 15:22 ? 00:00:00 ora_mman_prod
oracle 21459 1 0 15:22 ? 00:00:00 ora_dbw0_prod
oracle 21461 1 0 15:22 ? 00:00:00 ora_dbw1_prod
oracle 21463 1 0 15:22 ? 00:00:00 ora_lgwr_prod
oracle 21465 1 0 15:22 ? 00:00:00 ora_ckpt_prod
oracle 21467 1 0 15:22 ? 00:00:00 ora_smon_prod
oracle 21469 1 0 15:22 ? 00:00:00 ora_reco_prod
oracle 21471 1 0 15:22 ? 00:00:01 ora_mmon_prod
oracle 21473 1 0 15:22 ? 00:00:00 ora_mmnl_prod
oracle 21475 1 0 15:22 ? 00:00:00 ora_d000_prod
oracle 21477 1 0 15:22 ? 00:00:00 ora_s000_prod
oracle 21485 1 0 15:23 ? 00:00:00 ora_qmnc_prod
oracle 21514 1 0 15:23 ? 00:00:00 ora_q000_prod
oracle 21516 1 0 15:23 ? 00:00:00 ora_q001_prod
oracle 21862 1 0 15:33 ? 00:00:00 ora_smco_prod
oracle 21881 1 0 15:33 ? 00:00:00 ora_w000_prod
oracle 21972 1 0 15:35 ? 00:00:00 ora_d001_prod
oracle 21974 1 0 15:35 ? 00:00:00 ora_d002_prod
oracle 21976 1 0 15:35 ? 00:00:00 ora_d003_prod
oracle 21978 1 0 15:35 ? 00:00:00 ora_d004_prod
oracle 22098 1 0 15:38 ? 00:00:00 ora_s001_prod
oracle 22100 1 0 15:38 ? 00:00:00 ora_s002_prod
oracle 22102 1 0 15:38 ? 00:00:00 ora_s003_prod
oracle 22104 1 0 15:38 ? 00:00:00 ora_s004_prod
oracle 22106 1 0 15:38 ? 00:00:00 ora_s005_prod
oracle 22108 1 0 15:38 ? 00:00:00 ora_s006_prod --server进程启动
oracle 22110 1 0 15:38 ? 00:00:00 ora_s007_prod
oracle 22112 1 015:38 ? 00:00:00 ora_s008_prod
oracle 22114 1 0 15:38 ? 00:00:00 ora_s009_prod
3)客户端配置
在Oracle server 启动listener
客户端配置tnsnames.ora