DB2鎖表或超時解決方案


DB2鎖表或超時

 

一、場景

對數據表進行更新(查詢沒問題),錯誤提示如下:

SQLCODE=-911, SQLSTATE=40001, DRIVER=3.63.75
SQL0911N The current transaction has been rolled back because of a deadlock

這是DB2表死鎖或超時的錯誤:

二、解決方案

1、進入數據庫服務器后台,進入一個實例
 su - 實例名(比如我們使用的是DB2inst)

2、使用命令get snapshot來查詢哪些進程鎖了哪些表
db2 get snapshot for locks on databasename

3、使用命令force來斷開這些進行了死鎖的進程。命令如下:

db2 "force application (handle id)"

4、使用命令list application查看是否已經斷開了哪些進行了死鎖的進程。命令如下:

db2inst1@HOST1:db2 list applications

 

查看是否所有相關的進程都停止,若還有沒殺掉的,再次殺掉即可。


PS:如果確定殺掉所有進程沒有影響,可以殺掉所有進程,命令如下:
db2 "force application all"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM