Oracle 資料表死結解決方案

來源:互聯網
上載者:User

Oracle查詢死結資訊的語句:

  1. select a.owner,   
  2.       a.object_name,   
  3.       b.xidusn,   
  4.       b.xidslot,   
  5.       b.xidsqn,   
  6.       b.session_id,   
  7.       b.oracle_username,   
  8.       b.os_user_name,   
  9.       b.process,   
  10.       b.locked_mode,   
  11.       c.machine,   
  12.       c.status,   
  13.       c.server,   
  14.       c.sid,   
  15.       c.serial#,   
  16.       c.program   
  17.  from all_objects a, v$locked_object b, sys.gv_$session c   
  18. where (a.object_id = b.object_id)   
  19.   and (b.process = c.process)   
  20. order by 1, 2  

第一步:查看是否有死結存在,查出有資料則代表有死結:

  1. select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name  from v$process p,v$session a,v$locked_object b,all_objects   c      
  2. where  p.addr=a.paddr      
  3. and    a.process=b.process      
  4. and    c.object_id=b.object_id   

第二步:查出死結session的精確資訊【sid 為前面語句的session_id】

SELECT sid, serial#, username, oSUSEr FROM v$session where sid='第一步查詢出來的session_id';  

第三步:刪除死結【第一個參數為sid,第二個為serial#】

alter system kill session 'sid,serial#';   

如果還不能解決,

select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr;  

其中sid用死結的sid替換。

  1. exit       
  2. ps -ef|grep spid   

其中spid是這個進程的進程號,kill掉這個Oracle進程。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.