oracle中会话和连接数的简单分析

Posted 金陵大掌柜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中会话和连接数的简单分析相关的知识,希望对你有一定的参考价值。

        通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息.
        连接(Connection):连接是从客户端到ORACLE实例的一条物理路径。连接可以在网络上建立,或者在本机通过IPC机制建立。通常会在客户端进程与一个专用服务器或一个调度器之间建立连接。

        会话(Session) 是和连接(Connection)是同时建立的,两者是对同一件事情不同层次的描述。简单讲,连接(Connection)是物理上的客户端同服务器的通信链路,会话(Session)是逻辑上的用户同服务器的通信交互。 

        ORACLE中一个用户登录ORACLE服务器的前提,就是该用户具有ORACLE的 “CREATE SESSION”权限。ORACE允许同一个用户在同一个客户机上建立多个同服务器的会话,每个SESSION都代表了用户与服务器的一个交互。就像你用IE浏览器打开博客园网站,然后你再打开一个IE窗口,又打开一个博客园网站。两个IE窗口就相当于两个SESSION, 而物理链路就相当于连接(Connection)。后台进程PMON会每隔一段时间,就会检测用户连接状况,如果连接已断开,PMON会清理现场,释放相关的资源。 

        一个会话可以有连接也可以没有连接。使用高级Oracle Net特性(如连接池)时,客户可以删除一条物理连接,而会话依然保留(但是会话会空闲)。客户在这个会话上执行某个操作时,它会重新建立物理连接。

举个例子:        

有A/B两个城市,需要从A运送白菜到B城

我们先开通一条公路C

然后运送白菜过去,包括准备白菜和运送白菜以及返回等一系列的动作。

一条公路,可以运送0-n次的白菜

当然从A到B的公路也可能不只一条

每一次运送白菜,可以在真正上路时才开通某一条道路

一次运送不会影响别的运送的状态

对应数据库

A代表客户端进程

B代表服务器端进程

公路代表连接,

运送一次白菜代表一个会话

一个连接可以进行多次的会话

一个会话可以不依赖于某个连接,甚至没有连接(当我准备好了,真正开始运送时再建立连接)

一个会话不会影响别的会话
 


以上是关于oracle中会话和连接数的简单分析的主要内容,如果未能解决你的问题,请参考以下文章

最大并发连接数和最大会话数的区别

如何查看oracle当前连接数,会话数

oracle 会话和事务的区别

Oracle 11g DRCP配置与使用

Oracle的连接与会话

win7系统遇到远程桌面超出了最大允许连接数的问题如何解决