Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

3

主题
1#
发表于 2012-12-24 14:04:06 | 查看: 4513| 回复: 7

我发现这几条SESSION一直挂在系统上, 很久了, 我如何判断这些session, 是没有用的? 或是死进程?
  1. sys@ZZYDB> select SERIAL#,SID,USERNAME,MACHINE,LOGON_TIME from v$session where sid in (783,1158,974,1165,208);

  2.    SERIAL#          SID USERNAME                             MACHINE                    LOGON_TIME
  3. ---------- ---------- ------------------------------ ---------------------- -------------------
  4.       2999          208 CONSTSYN                             WORKGROUP\SHIBAOWEI    2012-12-05 11:26:02
  5.      21140          783 POPULARCENTER                     WORKGROUP\SHIBAOWEI    2012-11-07 16:48:10
  6.      45458          974 CONSTSYN                             WORKGROUP\SHIBAOWEI    2012-12-04 13:45:04
  7.      58765         1158 CONSTSYN                             WORKGROUP\SHIBAOWEI    2012-12-14 10:26:38
  8.      54981         1165 NXLTSMFLOW                     bjsjzx-1                    2012-11-19 13:20:03
复制代码
2#
发表于 2012-12-24 14:31:16
select status from v$session

回复 只看该作者 道具 举报

3#
发表于 2012-12-24 14:45:28

不可以这样判断吧! 既然进程已经被卡住, 它在ORACLE上看肯定是一个不准确的状态.

  1.   1  select vp.SPID,vs.status
  2.   2    from v$process vp,
  3.   3            v$session vs
  4.   4   where vs.sid in (783, 1158, 974, 208)
  5.   5         and vs.PADDR=vp.ADDR
  6. /

  7. SPID                         STATUS
  8. ------------------------ --------
  9. 5245                         ACTIVE
  10. 5102                         ACTIVE
  11. 6168                         ACTIVE
  12. 1239                         ACTIVE
复制代码

回复 只看该作者 道具 举报

4#
发表于 2012-12-24 14:47:59
v$session.status

STATUS        VARCHAR2(8)        Status of the session:
ACTIVE - Session currently executing SQL
INACTIVE
KILLED - Session marked to be killed
CACHED - Session temporarily cached for use by Oracle*XA
SNIPED - Session inactive, waiting on the client


http://docs.oracle.com/cd/B19306 ... 7/dynviews_2088.htm


一般来说 v$SESSION.STATUS是准确的, 例如 KILLED 和 INACTIVE


如果 session hang住,那么往往 status= ACTIVE 可以通过查看 stack call 和 processtate或者 session的等待事件判断 其具体状态

回复 只看该作者 道具 举报

5#
发表于 2012-12-24 15:18:08

如果我现在想分析这几条SESSION的状态, 我应该用什么跟踪事件好呢?

回复 只看该作者 道具 举报

6#
发表于 2012-12-24 15:29:38
wxfjordan 发表于 2012-12-24 15:18
如果我现在想分析这几条SESSION的状态, 我应该用什么跟踪事件好呢?

你为什么认为这几个session存在问题?

回复 只看该作者 道具 举报

7#
发表于 2012-12-24 15:47:57

这几条SESSION挂住已经有很长时间了, 而且是用TOAD程序连接的, 我问过用这个程序登录的开发人员, 他说已经很久没有登录这台服务器了. 而且我在 12月4日做巡检的时候就已经对这几条SESSION, 特别的留意了.
  1. SELECT e.sql_text,
  2.        r.name,
  3.        s.serial#,
  4.        s.sid,
  5.        s.username,
  6.        s.machine,
  7.        s.LOGON_TIME,
  8.        t.used_ublk*8192/1024/1024||'M' USED_M,
  9.        substr(s.program, 1, 78) pro
  10. FROM   sys.v_$session s,
  11.        sys.v_$transaction t,
  12.        sys.v_$rollname r,
  13.        sys.v_$sqlarea e
  14. WHERE  t.addr = s.taddr
  15.   and  t.xidusn = r.usn
  16.   and  e.address = DECODE(s.sql_hash_value, 0, s.prev_sql_addr, s.sql_address)
  17.   and  s.sid in (783,1158,974,1165,208)
  18. order  by t.USED_UBLK desc
  19. /

  20. SQL_TEXT                                                           NAME                   SERIAL#    SID        USERNAME           MACHINE                LOGON_TIME          USED_M          PRO
  21. ------------------------------------------------------------------ ---------------------- ---------- ---------- ------------------ ---------------------- ------------------- --------------- ----------
  22. insert into JSLT_DAILY_STS select * from V_DAILY_STA@DBLINKJSLT    _SYSSMU4_1440059666$   21140      783        POPULARCENTER      WORKGROUP\SHIBAOWEI    2012-11-07 16:48:10 .0234375M       Toad.exe
  23. where datetime >= to_char(sysdate - 30, 'yyyy-mm-') || '01'

  24. CREATE TABLE TEMP_PLATFORM8 AS SELECT * FROM T_COUNTRY_SEGMENT@SXL _SYSSMU10_4077337953$  58765      1158       CONSTSYN           WORKGROUP\SHIBAOWEI    2012-12-14 10:26:38 .015625M        Toad.exe
  25. TGJ

  26. CREATE TABLE TEMP_PLATFORM4 AS SELECT * FROM T_COUNTRY_SEGMENT@SXL _SYSSMU3_3720001429$   45458      974        CONSTSYN           WORKGROUP\SHIBAOWEI    2012-12-04 13:45:04 .015625M        Toad.exe
  27. TGJ

  28. select distinct substr(a.segment, 1, 5) head  from VALID_NUMBER_SE _SYSSMU8_3417650142$   2999       208        CONSTSYN           WORKGROUP\SHIBAOWEI    2012-12-05 11:26:02 .0078125M       Toad.exe
  29. CT@HLJTXZL a where a.segment not in(     select B.SEGMENT from
  30. t_phone_segment b join t_city c    on B.CITY_ID = C.CITY_ID   
  31. where B.TELECO_ID = 1 and C.PRO_ID = 11 ) order by 1
复制代码

回复 只看该作者 道具 举报

8#
发表于 2012-12-25 10:15:16
那么可能是dead connection ,确认不是应用连接数据库  而是TOAD的话 一般可以直接KILL掉

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 06:38 , Processed in 0.058525 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569