解決資料庫事務未提交等造成的死鎖

2021-09-19 03:12:20 字數 596 閱讀 7345

程式bug或者慢sql都可能會造成死鎖等問題,在這裡整理了一些解決這類問題的方法

1.檢視當前連線id(執行緒id)

select connection_id();

2.可以通過檢視表information_schema.innodb_lock,獲取鎖的狀態

select * from information_schema.innodb_locks;

3.檢視系統引數鎖超時時間 innodb_lock_wait_timeout

show variables like innodb_lock_wait_timeout;

4.檢視未提交的事務

select * from information_schema.innodb_trx

5.獲取事物的描述

show engine innodb status\g

主要看transactions 這部分

如何解決未提交的事務

kill掉這個執行緒id號,讓事務回滾

show processlist;

獲取所有處理執行緒,找到相對應引起死鎖的執行緒id

kill id

orcale因事務未提交造成的鎖表的解決辦法

在plsql操作orcale表時候,會偶爾碰到因未提交執行commit 造成事務未提交,而鎖表的情況解決辦法為 前提條件有對應檢視鎖表許可權的使用者,第一步檢視被鎖表 檢視鎖表名稱,使用者等 select b.owner,b.object name,a.session id,a.locked mod...

解決plsql因事務未提交造成的鎖表問題

1 執行以下語句可查詢被鎖的表 select b.owner,b.object name,a.session id,a.locked mode from v locked object a,dba objects b where b.object id a.object id 2 執行以下語句可查詢...

plsql因事務未提交造成的鎖表的解決辦法

1 執行以下語句可查詢被鎖的表 select b.owner,b.object name,a.session id,a.locked mode from v locked object a,dba objects b where b.object id a.object id 2 執行以下語句可查詢...