unable to extend segment by 8 in undo tablespace 'UNDOTBS1'解決辦法

解決該問題分三步走

(一)
--查看undo表空間使用狀況
--插入 和 刪除操做才產生對undo空間使用
select  s.username,  s.sid,       rn.name,     rs.extents
                 ,rs.status,  t.used_ublk,  t.used_urec, round(t.used_ublk*8/1024,1) as "SIZE(MB)"
                 ,do.object_name
          from    v$transaction   t
                 ,v$session       s
                 ,v$rollname      rn
                 ,v$rollstat      rs
                 ,v$locked_object lo
                 ,dba_objects     do
          where  t.addr        = s.taddr
          and    t.xidusn      = rn.usn
          and    rn.usn        = rs.usn
          and    t.xidusn      = lo.xidusn(+)
          and    do.object_id  = lo.object_id
           
(二)
--鎖解決方法
select b.owner,b.object_name,l.session_id,l.locked_mode  
from v$locked_object l, dba_objects b  
where b.object_id=l.object_id  

select t2.username,t2.sid,t2.serial#,t2.logon_time   
from v$locked_object t1,v$session t2   
where t1.session_id=t2.sid order by t2.logon_time  

--查看對應執行的SQL
select sql_text from v$sqltext where address in(select sql_address from v$session where sid=&sid)order by piece


(三)
--kill session
alter system kill session 'sid,serial#'

--若是上面KILL不行則須要在os級進行進程切斷
select spid from v$session s ,v$process p where p.addr=s.paddr and s.sid=&sid

--oracle用戶下執行以下命令
kill -9 &spid
sql

相關文章
相關標籤/搜索