【原】oracle session and connection

简介: 作者:david_zhang@sh 【转载时请以超链接形式标明文章】链接:http://www.cnblogs.com/david-zhang-index/archive/2012/09/13/2682876.html 连接和会话不是同义词。

作者:david_zhang@sh 【转载时请以超链接形式标明文章】
链接:http://www.cnblogs.com/david-zhang-index/archive/2012/09/13/2682876.html

连接和会话不是同义词。连接是从客户端到oracle实例的一条物理路径;会话是实例中存在的一个逻辑实体;

在一个连接上可以建立0个、一个或多个会话;一个会话可以有或者也可以没有连接;

试验一:一个连接上多个会话

 1 SQL>  select username,sid,serial#,server,paddr,status from v$session where username='SYS';
 2 
 3 USERNAME          SID    SERIAL# SERVER    PADDR            STATUS
 4 ---------- ---------- ---------- --------- ---------------- --------
 5 SYS               659      35747 DEDICATED 00000001DC88BDA0 ACTIVE
 6 
 7 SQL> set autotrace on statistics;
 8 SQL> select username,sid,serial#,server,paddr,status from v$session where username='SYS';
 9 
10 USERNAME          SID    SERIAL# SERVER    PADDR            STATUS
11 ---------- ---------- ---------- --------- ---------------- --------
12 SYS               648      65428 DEDICATED 00000001DC88BDA0 INACTIVE
13 SYS               659      35747 DEDICATED 00000001DC88BDA0 ACTIVE
14 
15 
16 Statistics
17 ----------------------------------------------------------
18          17  recursive calls
19           0  db block gets
20           0  consistent gets
21           0  physical reads
22           0  redo size
23         991  bytes sent via SQL*Net to client
24         520  bytes received via SQL*Net from client
25           2  SQL*Net roundtrips to/from client
26           0  sorts (memory)
27           0  sorts (disk)
28           2  rows processed
29 
30 SQL> set autotrace off;

试验中,进行了两次查询,一次是没有开启autotrace,paddr表示服务器进程地址(实质是一个连接id);开启autotrace查询,可以看到两条结果(两个会话)但是paddr是相同的(即同一连接)。

试验二:在上个试验的基础上,实验二证明没有任何会话连接依然存在情况

 1 SQL> disconnect;
 2 Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
 3 With the Partitioning, OLAP, Data Mining and Real Application Testing options
 4 
 5 SQL> conn test/test
 6 Connected.
 7 SQL> select * from v$session where uername = 'SYS';
 8 no rows selected

10 SQL> select username,program from v$process where addr = hextoraw ('00000001DC88BDA0');
11 
12 USERNAME PROGRAM
13 ---------- ------------------------------------------------
14 oracle oracle@DCMSBDM (TNS V1-V3)

disconnect表示关闭所有会话,在用test账号登陆数据库查看sys会话(这里说明下,在试验一中最好不好用sys账号做,可以新建一个账号),会发现没有会话,因为disconnect了,但是通过paddr在v$process里面可以查到仍有一个进程物理连接,所以就有没有会话的“连接”。

使用sqlplus的conn命令再次连接进来,在原来的进程中又创建一个新会话,如下,而paddr依然是同一个,更加证明这个问题。

1 SQL> conn /as sysdba
2 Connected.
3 SQL> select username,sid,serial#,server,paddr,status from v$session where username='SYS';
4 
5 USERNAME          SID    SERIAL# SERVER    PADDR            STATUS
6 ---------- ---------- ---------- --------- ---------------- --------
7 SYS               659      35851 DEDICATED 00000001DC88BDA0 ACTIVE
相关文章
|
6月前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错之使用oracle-cdc的,遇到错误:ORA-01292: no log file has been specified for the current LogMiner session,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
3月前
|
Oracle 关系型数据库
Navicat 连接Oracle ORA-28547: connection to server failed, probable Oracle Net admin error
Navicat 连接Oracle ORA-28547: connection to server failed, probable Oracle Net admin error
100 0
|
SQL Oracle 关系型数据库
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
2049 0
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
|
Oracle 关系型数据库 数据库
Oracle 查看当前会话 SESSION ID 方法
查看当前会话的session  ID 有如下三种方法:   1.   v$mystat视图   SQL> desc v$mystat  Name                ...
1740 0
|
SQL Oracle 网络协议
SQL Developer 连接 oracle数据库 报错 Io 异常 The Network Adapter could not establish the connection的三种解决方法
SQL Developer 连接 oracle数据库 报错 Io 异常 The Network Adapter could not establish the connection的三种解决方法
1309 0
SQL Developer 连接 oracle数据库 报错 Io 异常 The Network Adapter could not establish the connection的三种解决方法
|
SQL Oracle 关系型数据库
Oracle 技巧篇-快速批量删除当前数据库连接的用户,一键清空所有session会话方法
Oracle 技巧篇-快速批量删除当前数据库连接的用户,一键清空所有session会话方法
768 0
Oracle 技巧篇-快速批量删除当前数据库连接的用户,一键清空所有session会话方法
|
SQL Oracle 关系型数据库
Oracle 数据库利用sql语句杀掉用户session进程,“ORA-01940: 无法删除当前连接的用户“问题解决办法
Oracle 数据库利用sql语句杀掉用户session进程,“ORA-01940: 无法删除当前连接的用户“问题解决办法
358 0
Oracle 数据库利用sql语句杀掉用户session进程,“ORA-01940: 无法删除当前连接的用户“问题解决办法
|
SQL Oracle 关系型数据库
Oracle中Error while performing database login with the XXXdriver; Listener refused the connection wit...
Oracle中Error while performing database login with the XXXdriver; Listener refused the connection wit...
253 0