专有服务器模式(dedicated server mode):专有服务器进程在服务器端与用户进程一一对应服务关系。适合以下的应用:
1.批处理,使服务器进程一直处于忙碌的状态。不会浪费系统资源。
2.使用recovery manager (RMAN)进行备份或者恢复。
共享服务器模式(shared server mode):共享服务器适合有大量并发用户的应用。包含
1.监听器。
2. 一个或多个调度进程(dispatcher processes)
3. 一个或多个共享服务器进程(shared server processes)
默认是dedicated模式
如果服务器是dedicated server,客户端只能创建dedicated server connection
如果是shared server,客户端可以创建dedicated和shared,只要在service name指定server=dedicated or server=shared.
1.手动配置数据库为共享模式,或通过DBCA
- 生成初始化参数文件(PFILE)
SQL>create PFILE=‘e:\oracle102\dbs\initwm.ora‘ fromsfpfile=‘e:\oracle102\dbs\spfilewm.ora‘
2. 修改初始化参数文件
shared_servers=3 启动时最小数量
max_shared_servers=39
dispatchers=“(protocol=TCP)(serv=wm)(list=wm)(poo=on)(disp=5)(con=33)(sess=224)“
max_dispatchers=19
3. 关闭数据库
SQL>shutdown immediate;
4. 根据初始化参数文件生成SPFILE
SQL>create SPFILE=“e:\oracle102\dbs\SPFILEwm.ora‘ from PFILE=‘e:\oracle102\dbs\initwm.ora‘
5. 重新启动数据库
2. 显示共享服务器进程的配置参数,如果max_shared_servers, shared_server_sessions的值大于0就是共享模式。
SQL> show parameter share
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
max_shared_servers integer
shared_memory_address integer 0
shared_pool_reserved_size big integer 16567500
shared_pool_size big integer 0
shared_server_sessions integer
shared_servers integer 1
判断是否专用模式第二种方法
SQL>select username, server, program from v$session where username is not null;
USERNAME SERVER
------------------------------ ---------
PROGRAM
------------------------------------------------
SYSMAN DEDICATED
OMS
SYSMAN DEDICATED
OMS
判断是否专用模式第三种方法
[oracle@localhost dbs]$ lsnrctl service
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-MAY-2013 14:05:05
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:5068 refused:0 state:ready
LOCAL SERVER
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: localhost.localdomain, pid: 2878>
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=34473))
The command completed successfully
判断请求是哪一种数据库连接类型
SQL>select server from v$session where SID=(select distinct sid from v$mystat);
SERVER
---------
DEDICATED
3. 显示调度进程的配置
SQL> show parameter disp
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cell_offload_plan_display string AUTO
dispatchers string (PROTOCOL=TCP) (SERVICE=orclXD
B)
max_dispatchers integer
4. 查看共享服务器进程
SQL> select * from v$shared_server;
NAME PADDR STATUS MESSAGES BYTES BREAKS
---- ---------------- ---------------- ---------- ---------- ----------
CIRCUIT IDLE BUSY IN_NET OUT_NET REQUESTS
---------------- ---------- ---------- ---------- ---------- ----------
S000 0000000091489F90 WAIT(COMMON) 0 0 0
00 34738755 4 0 0 0
5. 修改共享服务器进程的数量
SQL>alter system set shared_servers=8 scope=both;
6. 查看调度进程的情况
SQL> select * from v$dispatcher;
NAME
----
NETWORK
--------------------------------------------------------------------------------
PADDR STATUS ACC MESSAGES BYTES BREAKS
---------------- ---------------- --- ---------- ---------- ----------
OWNED CREATED IDLE BUSY LISTENER CONF_INDX
---------- ---------- ---------- ---------- ---------- ----------
D000
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=34473))
0000000091488F50 WAIT YES 0 0 0
0 0 34746957 11 0 0
7. 修改调度进程的数量
SQL>alter system set dispatchers=“(protocol=tcp)(disp=6)“ scope=both;
8. 关闭调度进程
SQL>alter system shutdown immediate ‘D000‘;
9. 数据库配置成共享服务器模式,请求一个专有服务器连接, 当执行数据库的关闭和启动时,
必须以专有服务器方式连接
修改客户端的tnsnames.ora
增加一行server=dedicated
浙公网安备 33010602011771号