也可以根據物件模糊匹配直接查詢死鎖的session資訊
select vl.session_id || ',' || b.serial#, ao.object_name, b.*
from vlocked_object vl, all_objects ao, vsession b
where vl.object_id = ao.object_id
and vl.session_id = b.sid
and b.status = 'active' --session狀態根據需要新增
and ao.object_name like 'object_name';
在資料庫中,殺掉程序:alter system kill session '查出的sid, 查出的serial#';
死鎖的解決辦法(2)
查詢死鎖的物件:
select username,lockwait,status,machine,program from v$session where sid in
(select session_id from v$locked_object);
查詢死鎖語句:
select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object));
select s.lockwait,s.status,s.username,l.object_id,l.session_id,s.serial#,l.oracle_username,l.os_user_name,l.process
from vlocked_object l,vsession s
where l.session_id=s.sid and s.status='act\ive';
alter system kill session '25,16823' immediate;
alter system kill session 『sid,serial#』 immediate;
mysql資料庫死鎖
當我們頻繁的對資料庫進行插入或更新的時候,有可能會直接報sql錯誤1205 lock wait timeout exceeded。資料庫的死鎖。一般innodb資料庫會自動新增事務,當進行插入或者更新的時候,如果上次commit尚未執行完,而又有一次新的commit提交的時候,系統就會報sql錯誤1...
mysql解決資料庫死鎖問題
為了保證資料的正確性,對資料庫進行操作的時候都會進行上鎖,也就是進行修改資料的時候同一時間只能有乙個程序,當這個程序處理完了,釋放鎖了,其他程序才可以進行操作!總是會碰見一些意外情況,導致資料庫死鎖,任何程序操作該資料都會拋異常,也無法修改成功!這個時候我們可以找到對應的資料庫事務程序,殺死程序即可...
資料庫死鎖
1.死鎖的概念 死鎖是程序死鎖的簡稱,是由dijkstra於1965年研究銀行家演算法時首先提出來的。它是計算機作業系統乃至併發程式設計中最難處理的問題之一。實際上,死鎖問題不僅在計算機系統中存在,在我們日常生活中它也廣泛存在。我們先看看這樣乙個生活中的例子 在一條河上有一座橋,橋面較窄,只能容納一...