需要先了解oracle一个概念:shared server模式和dedicated server模式
在创建数据库时,可以选择创建哪种模式的数据库。
简单描述2种模式的区别:
专用服务器模式 (dedicated server): 每次访问oracle服务时,创建一个新的进程。
共享服务器模式(shared server): 类似于数据库连接池的概念,初始化的时候就会创建一批服务器连接.
1. 如果是dedicated server,则客户端只能创建dedicated connection进行连接
2. 如果是shared server,则客户端能创建dedicated server connection和shared server connection,只要在service name中指定server=dedicated or server=shared.(可通过修改tnsnames.ora文件测试)
关于2种模式的详解:
推荐几篇文章,如下:
http://blog.csdn.net/kellyseeme/article/details/8959980
http://blog.itpub.net/7724693/viewspace-1026681/
connect(连接):使用plsql连接到oracle后,就是建立了一个连接(一次login)
session(会话):决定同时登陆到数据库的并发用户数(数据库层面)
processes:也决定同时登陆到数据库的并发用户数(操作系统层面)
session的设置和processes的设置共同决定了数据库允许的最大并发用户数。
connect与session的关系: 一个connect对应0或多个会话。
测试方式:
使用plsql连接oracle数据库后,每新增一个查询窗口执行查询后,使用语句:
select * from v$session where username is not null
就可以查看到多了一个会话session
固:使用plsql存在大量未关闭的执行窗口,就会占用大量的session数。所以说,仅需一个连接就可以达到所谓的最大并发用户数。
session与processes的关系如下:
1.当dedicated server模式下:
关系为一一对应。一个session对应一个processes。
2.当shared server模式下:
一个processes可以对应多个session.
常用查询sql记录:
允许最大进程数processes:
select value from v$parameter where name = 'processes' ;
当前已用进程数processes:
select count(*) from v$process ;
最大允许会话数session:
show parameter sessions
当前已用会话数session:
select count(1) from v$session;
查看当前数据库使用的模式:
select count(*) from v$shared_server;(结果不为0,表示共享模式)
使用共享模式连接示例:
ORCL_146 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.146)(PORT = 1521))
)
(CONNECT_DATA =
(server = shared )
(sid = orcl)
)
)
使用专用服务器模式连接示例:
ORCL_146 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.146)(PORT = 1521))
)
(CONNECT_DATA =
(server = dedicated )
(sid = orcl)
)
)
分享到:
相关推荐
oracle中参数session和processes的设置
oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解...
自己整理的关于oracle session的状态查看,对新手有一定的帮助,希望您喜欢。
oracle中已killed session的处理
本文章详细介绍了Oracle中connect by...start with...的用法。
快速杀死oracle的session快速杀死oracle的session快速杀死oracle的session快速杀死oracle的session快速杀死oracle的session快速杀死oracle的session
Oracle 数据库解锁session方式
BLOG_Oracle_lhr_【sessions】Oracle中sessions和processes的大小关系(10g和11g不同).pdf
重启oracle服务,删除session,亲测没有问题
有效关闭Oracle死锁进程,和释放状态为killed的session
本文将详细探讨下Oracle中的Connect/session和process的区别及关系,感兴趣的你可以参考下,希望可以帮助到你
Oracle疑难:session无法完全删除问题
在Oracle中用Start with...Connect By子句递归查询
oracle process与session 查询 设定 与关系
彻底清除Oracle中长时间持锁的session
非常好的oracle session 连接关系图
ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X 共享行专用(SRX):阻止其他...
Oracle_Kill_Session_终极篇
orckle kill session,讲述如何去kill session