程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2死鎖和鎖等待2種基本情形正確解析版(2)

DB2死鎖和鎖等待2種基本情形正確解析版(2)

編輯:DB2教程

注意Application Name 和Application Id兩欄,Application Name欄列出了應用的名字,db2bp通常意味著目前有CLP在連接數據庫,java則意味著可能有db2cc或用戶自己的Java應用在連接數據庫,在application Id欄中可以看到這些應用來自於哪些機器,本機的就顯示為 LOCAL + 用戶名 + 開始連接上的時間,遠程的就會顯示為16進制的IP地址+用戶名+開始連接上的時間。通過排查並發應用從而消除測試中不必要的鎖現象。

3.查看和更改快照參數

如果在合理設置了DLCHKTIME和LOCKTIMEOUT參數仍然出現鎖現象,可以查看快照或者創建事件監控器來分析原因。要采用快照,首先要打開快照開關

  1. db2 get monitor switches 

輸出中將包含以下參數:

監控開關 數據庫管理器參數 注釋

BUFFERPOOL DFT_MON_BUFPOOL 緩沖區的讀寫情況和發生時間

LOCK DFT_MON_LOCK 鎖持有,鎖等待,以及DB2死鎖的發生情況

SORT DFT_MON_SORT Heap的使用情況,排序性能

STATEMENT DFT_MON_STMT 語句起始時間,語句內容

  1. TABLE DFT_MON_TABLE Measure of activity (rows read/written)  
  2. UOW DFT_MON_UOW Start/end times, completion status  
  3. TIMESTAMP DFT_MON_TIMESTAMP Timestamps  

為了觀察快照中的鎖和執行語句情況,一般把LOCK和STATEMENT選項設為ON,也可以酌情把其他開關打開,示例如下: db2 update monitor switches using lock on statement on

4.查看快照信息

-查看數據庫管理器級別快照信息

  1. db2 get snapshot for dbm 

-查看數據庫級別快照信息

  1. db2 get snapshot for database on dbname 

-查看應用級別快照信息

  1. db2 get snapshot for application agentid appl-handler 

注:appl-handler可以從list applicaitions的輸出中得到

-查看表級別快照信息

  1. db2 get snapshot for tables on dbname 

注:需要把tables快照開關設為ON才會有作用

-查看鎖快照信息

  1. db2 get snapshot for locks on dbname 

  1. db2 get snapshot for locks on for application agentid appl-handler 

-查看動態sql語句快照信息

  1. db2 get snapshot for dynamic sql on dbname 

5.使用事件查看器

可以使用時間查看器收集鎖事件,SQL語句事件,從而根據事件分析鎖原因。

事件類型

使用事件監控器,首先要選定所關注的事件類型,DB2中有很多事件類型,可以用於鎖分析的通常會用到以下三種:

  1. DEADLOCKS  
  2. DEADLOCKS WITH DETAILS  
  3. STATEMENTS  

步驟:

-創建事件監控器

  1. create event monitor evmname for eventtype write to file ‘directory’ 

例:create event monitor mymonitor for deadlocks, statements

  1. write to file ‘c:\temp’ 

-把事件監控器打開

接上例:

  1. set event monitor mymonitor state 1 

注:1為打開,0為關閉

事件監控器開始工作,當所有應用斷掉連接後,將事件記錄下來

-查看事件細節

  1. db2evmon –path ‘c:\temp’ 

上述的相關內容就是對DB2死鎖和鎖等待兩種情形的描述,希望會給你帶來一些幫助在此方面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved