sqlplus "/as sysdba" (sys/change_on_install)
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID; sql
alter system kill session ‘sid,serial#’; (其中sid=l.session_id) 數據庫
select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr; session
其中sid用死鎖的sid替換: exit
ps -ef|grep spid 對象
其中spid是這個進程的進程號,kill掉這個Oracle進程 進程
KILL -9 「剛纔查出的SPID」
在WINDOWS平臺,能夠是偶那個orakill。
hash
select A.SQL_TEXT, B.USERNAME, C.OBJECT_ID, C.SESSION_ID, it
B.SERIAL#, C.ORACLE_USERNAME,C.OS_USER_NAME,C.Process,
''''||C.Session_ID||','||B.SERIAL#||''''
from v$sql A, v$session B, v$locked_object C
where A.HASH_VALUE = B.SQL_HASH_VALUE and
B.SID = C.Session_ID io
--一、查找被鎖表的object_id
select object_id from all_objects where object_name = upper('table_name') and object_type = 'TABLE'
--二、根據第1步查到的object_id查找被鎖對象的會話ID
select session_id from v$locked_object where object_id = 1779474
--三、根據第2步查到的session_id查找serial#
select sid,serial# from v$session where sid = 284
--四、根據session_id和serial#殺掉進程
alter system kill session 'sid,serial#'
--查找在被鎖對象上的操做語句
select sql_text from v$sqlarea where address = '00' --address爲v$session中的sql_address字段 table