Oracle服务器处理请求的两种最常用的方式,这两种方式分别是专用服务器连接和共享服务器连接。
专用服务器:一个客户端连接对应一个服务器进程
共享服务器:多个客户端连接对应一个服务器进程,服务器端存在一个进程调度器来管理。
那么,怎么判断你的oracle服务器是哪种模式呢,有以下几种方法~
1、show parameter shared_server 参数
是否为配置为共享服务器最主要的参数是:show parameter shared_server
如果数值 > 0 ,就是enable了共享服务器.
也可以从v$parameter 视图中查.
2、查看tnsnames.ora
在配置为共享服务器的情况,Client可以选择用共享服务器或者专用服务器来连接到数据库,这个参数的控制是在tnsnames.ora里设定的
aaaa=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = aaaa)(PORT = 1521))
)
(CONNECT_DATA =
(SID = aa)
(SERVER = DEDICATED)
)
)
加粗部分指定了用DEDICATED方式连接DB.
另外,Background process ,以及通过本地连接进来的,只能是DEDICATED
3、判断一个已经连接的session的连接方式
有两种方法
A.select username,server from v$session;
如果server = ‘DEDICATED’则是DEDICATED方式
server=’SHARED’则是shared方式,并且正有shared_server_process为其服务
server=’NONE’的话,则是shared方式,并且当前没有shared_server_process为其服务。
B. 仅用于Unix 底下,似乎windown不行
连接v$session, v$process 看process中的program
1 select p.program,s.server from v$session s , v$process p
2* where s.paddr = p.addr
如果 program 为 。。(S0NN) 的,则是shared方式,并且正有shared_server_process为其服务
如果 program 为 。。(D0NN) 的,则是shared方式,并且当前没有shared_server_process为其服务
如果 program 为 其它的,则是’DEDICATED’方式