好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Oracle的session和process的区别与分析.docx

4页
  • 卖家[上传人]:平***
  • 文档编号:18014855
  • 上传时间:2017-11-13
  • 文档格式:DOCX
  • 文档大小:15KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Oracle 的 session 和 process 的区别与分析 session 和 process 的区别:连接 connects,会话 sessions 和进程 pocesses 的关系每个 sql login 称为一个连接( connection),而每个连接,可以产生一个或多个会话,如果数据库运行在专用服务器方式,一个会话对应一个服务器进程(process),如果数据库运行在共享服务器方式,一个服务器进程可以为多个会话服务session 和 process 的关系,tom 在他的书里写的很清楚了一个 process 可以有 0 个,1 个或者多个 session一个 session 也可以存在这个或者那个 process 中oracle 中 session 跟 process 的研究使用方法:首先看看 v$session 跟 v$process 中主要的字段属性:v$session(sid,serial#,paddr,username,status,machine,terminal,sql_hash_value,sql_address,,,)v$process(addr,spid,,,)可看到 v$session 中的 paddr 跟 v$process 中的 addr 对应 ,也即会话 session 在数据库主机上对应进程的进程地址.这里我们要先定位该 session 正在执行的 sql 语句, 此时我们可以查询如下的语句 :select sql_textfrom v$sqltext_with_newlineswhere (hash_value,address) in (select sql_hash_value,sql_address from v$session where sid=&sid) order by address,piece;若需手工 kill 一个 session,可采用"alter system kill session 'sid,serial#' immediate",此时session 的状态会标记为 killed,该 session 对应进程地址指向相同的虚拟地址,见如下的查询:SQL> select sid,serial#,paddr,status from v$session where username='SHIYIHAI';SID SERIAL# PADDR STATUS---------- ---------- ---------------- --------234 14409 C0000000B2BADB28 INACTIVE245 14374 C0000000B2BAB748 INACTIVESQL> alter system kill session '234,14409' immediate;System alteredSQL> select sid,serial#,paddr,status from v$session where username='SHIYIHAI';SID SERIAL# PADDR STATUS---------- ---------- ---------------- --------234 14409 C0000000B2C750B8 KILLED245 14374 C0000000B2BAB748 INACTIVESQL> alter system kill session '245,14374' immediate;System alteredSQL> select sid,serial#,paddr,status from v$session where username='SHIYIHAI';SID SERIAL# PADDR STATUS---------- ---------- ---------------- --------234 14409 C0000000B2C750B8 KILLED245 14374 C0000000B2C750B8 KILLEDSQL>我们知道很多时候被 kill 掉的 session 并不能马上释放资源,我们需要从 os 上 kill 掉对应的进程,但由于 session 的 paddr 被修改为虚拟地址了,导致无法关联 v$process,找不到进程的 spid 进程号.此时我们可以执行如下查询:SQL> SELECT s.username,s.status,2 x.ADDR,x.KSLLAPSC,x.KSLLAPSN,x.KSLLASPO,x.KSLLID1R,x.KSLLRTYP,3 decode(bitand (x.ksuprflg,2),0,null,1)4 FROM x$ksupr x,v$session s5 WHERE s.paddr(+)=x.addr6 and bitand(ksspaflg,1)!=07 and s.status is null;USERNAME STATUS ADDR KSLLAPSC KSLLAPSN KSLLASPO KSLLID1R KSLLRTYP DECODE(BITAND(X.KSUPRFLG,2),0,------------------------------ -------- ---------------- ---------- ---------- ------------ ---------- -------- ------------------------------C0000000B2B58D08 0 0 0 C0000000B2BA4688 298 9 4669 0 C0000000B2BAB748 1 16 4675 197 EV C0000000B2BADB28 1 16 4675 197 EVSQL>或查询如下的语句:SQL> select p.addr from v$process p where pid 从查询结果中可发现被 kill 掉的 session 对应的进程地址.然后通过进程地址来查询对应的进程号,见如下的查询:SQL> select spid from v$process where addr in ('C0000000B2BAB748','C0000000B2BADB28');SPID------------1301313015。

      点击阅读更多内容
      相关文档
      高一历史上学期期末考前必刷卷统编版03考试版A4含答案.docx 高中英语考试各题型突破攻略听力篇高一高二高三的都要看.docx 高一历史上学期期末考前必刷卷统编版01考试版A3含答案.docx 高中英语考试各题型突破攻略语法填空篇高一高二高三的都要看.docx 高一历史上学期期末考前必刷卷统编版02考试版A3含答案.docx 高中英语考试各题型突破攻略完形填空篇高一高二高三的都要看.docx 高中英语考试各题型突破攻略作文篇高一高二高三的都要看.docx 高考政治如何规范化答题?.docx 高一历史上学期期末考前必刷卷统编版03考试版A3含答案.docx 高一历史上学期期末考前必刷卷统编版02考试版A4含答案.docx 高一历史上学期期末测试卷01统编版中外历史纲要上129课含答案.docx 日历表2028年日历中文版纵向排版周一开始带周数带农历带节假日调休安排1.docx 日历表2028年日历中文版横向排版周一开始带农历带节假日调休安排1.docx 八年级数学北师大版上册课时练第7章《3 平行线的判定》含答案解析.docx 日历表2029年日历中文版横向排版周一开始带周数带农历带节假日调休安排1.docx 日历表2028年日历中文版纵向排版周一开始带周数带农历.docx 人教版二年级数学下册同步测试-有余数的除法含答案解析3含答案.docx 日历表2028年日历中文版横向排版周一开始带农历1.docx 人教版二年级数学下册同步测试-总复习含答案解析-人教新课标含答案.docx 日历表2028年日历中文版横向排版周一开始带周数带农历1.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.