程式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 執行以下語句可查詢...