首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 資料庫死鎖監控與分析實戰步驟

     編輯:DB2 教學

啟用鎖監控

首先開啟鎖監控開關:

db2 update monitor switches using lock on

擷取鎖快照

讓系統運行一段時間後,取得鎖快照:

db2 get snapshot for locks on <資料庫名稱>

分析重點

  • Application Handle:識別持有/等待鎖的應用程式
  • Lock Mode:X (排他)、S (共享)、U (更新) 等
  • Lock Status:Granted (已獲取) / Waiting (等待中)
  • Table/Row Identification:定位具體資源

進階:建立死鎖事件監控器

mkdir /tmp/dlmon
db2 connect to <db>
db2 create event monitor dlmon for deadlocks with detail write to file '/tmp/dlmon' replace
db2 set event monitor dlmon state 1
# 等待死鎖發生...
db2 set event monitor dlmon state 0
db2evmon -d /tmp/dlmon > /tmp/dlmon.out

分析 dlmon.out 可獲得完整死鎖圖與涉及 SQL,便於針對性優化。

常見對策

  • 縮短交易範圍,盡早 COMMIT
  • 統一存取順序,避免交叉鎖定
  • 調整 locktimeout 參數(不可設 -1)
  • 必要時升級為表級鎖 lock table <t> in exclusive mode
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved