程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 分析DB2 9.5中的鎖定超時原因(1)

分析DB2 9.5中的鎖定超時原因(1)

編輯:DB2教程

在 DB29.5中,分析鎖定超時的方法得到了極大改進,鎖定超時分析變得更加簡單。本文主要是探索這些全新的鎖定超時報告功能,並檢查收集的附加信息以確定發生鎖定超時的具體原因。

回顧DB2 9.1中的鎖定超時分析

使用db2pd工具和db2cos腳本進行鎖定超時分析的方法包含以下幾步:

1.使用一個特殊的DB2腳本 — 名為 db2cos — 在每次調用db2cos腳本時執行一個db2pd調用。db2pd 調用收集與鎖定、事務、應用程序、語句緩存相關的信息,並將信息存儲在一個文本文件中以供分析。

2.要在鎖定超時發生時自動執行 db2cos 腳本(以及包含的 db2pd 命令,需要使用 db2pdcfg 命令注冊鎖定超時事件。

3.在鎖定超時事件中,DBA 可以檢查通過自動調用 db2cos 腳本生成的 db2pd 輸出。這使 DBA 能夠確定發生鎖定爭用的原因,從而設法在以後避免發生這類情形。

盡管其中介紹的方法提供了大量信息,使得鎖定超時分析比以前的 DB2 9 for Linux, Unix, and Windows 版本更加簡單,但它仍然存在一些不足:

◆使用此方法需要手動改寫 db2cos 腳本並通過調用 db2pdcfg 來注冊鎖定超時事件。兩個步驟都不復雜,但是對於新手來說可能有些困難。

◆解釋 db2pd 輸出以識別鎖定超時情形中涉及的應用程序和 SQL 語句,這個任務並不容易,而且需要一些嘗試。

◆如果鎖定超時是由包含多個 SQL 命令的事務引起的,那麼 db2pd 收集的信息可能還不足以確定導致鎖定的 SQL 語句。

DB2 9.5 中全新的鎖定超時報告功能

在 DB2 9.5 的鎖定超時報告功能中,引入了一個新特性,使得鎖定超時分析變得非常簡單。要激活鎖定超時報告,只需將 DB2 注冊變量 DB2_CAPTURE_LOCKTIMEOUT 設置為 ON,並重新啟動您的 DB2 實例:

清單 1. 激活 DB2 9.5 中的鎖定超時報告

  1. db2set DB2_CAPTURE_LOCKTIMEOUT=ON   
  2. db2stop   
  3. db2start  

是的,就是這麼簡單。當 DB2_CAPTURE_LOCKTIMEOUT 設置為 ON 時,DB2 為每個鎖定超時事件自動創建一個報告文件。報告文件保存在 DIAGPATH 數據庫管理員配置(DBM CFG)參數指向的目錄中,包含的信息有:鎖定超時的日期和時間、存在問題的鎖定、鎖定請求程序和鎖定擁有者。

那麼 DB2 9.5 中就不使用 db2cos 腳本了嗎?事實並非如此。將 db2cos 腳本和 db2pd 工具結合具有非常廣泛的用途。這意味著,這些工具組合仍然可用於捕捉與 SQL 代碼和 DB2 內部返回代碼相關的任何 DB2 事件信息,而不僅僅是鎖定超時信息。

現在看看新的 DB2 9.5 注冊變量 DB2_CAPTURE_LOCKTIMEOUT 並查看一個使用 DB2 SAMPLE 數據庫的鎖定超時示例場景。如果 SAMPLE 數據庫不存在,可以調用下面的命令創建一個:

分析DB2 9.5中的鎖定超時原因

作者: kaduo,  出處:IT專家網論壇, 責任編輯: 陳子琪, 2009-05-20 07:00

在 DB29.5中,分析鎖定超時的方法得到了極大改進,鎖定超時分析變得更加簡單。本文探索這些全新的鎖定超時報告功能,並檢查收集的附加信息以確定發生鎖定超時的原因。

在 DB29.5中,分析鎖定超時的方法得到了極大改進,鎖定超時分析變得更加簡單。本文探索這些全新的鎖定超時報告功能,並檢查收集的附加信息以確定發生鎖定超時的原因。

回顧DB2 9.1中的鎖定超時分析

使用db2pd工具和db2cos腳本進行鎖定超時分析的方法包含以下幾步:

1.使用一個特殊的DB2腳本 — 名為 db2cos — 在每次調用db2cos腳本時執行一個db2pd調用。db2pd 調用收集與鎖定、事務、應用程序、語句緩存相關的信息,並將信息存儲在一個文本文件中以供分析。

2.要在鎖定超時發生時自動執行 db2cos 腳本(以及包含的 db2pd 命令,需要使用 db2pdcfg 命令注冊鎖定超時事件。

3.在鎖定超時事件中,DBA 可以檢查通過自動調用 db2cos 腳本生成的 db2pd 輸出。這使 DBA 能夠確定發生鎖定爭用的原因,從而設法在以後避免發生這類情形。

盡管其中介紹的方法提供了大量信息,使得鎖定超時分析比以前的 DB2 9 for Linux, Unix, and Windows 版本更加簡單,但它仍然存在一些不足:

◆使用此方法需要手動改寫 db2cos 腳本並通過調用 db2pdcfg 來注冊鎖定超時事件。兩個步驟都不復雜,但是對於新手來說可能有些困難。

◆解釋 db2pd 輸出以識別鎖定超時情形中涉及的應用程序和 SQL 語句,這個任務並不容易,而且需要一些嘗試。

◆如果鎖定超時是由包含多個 SQL 命令的事務引起的,那麼 db2pd 收集的信息可能還不足以確定導致鎖定的 SQL 語句。

DB2 9.5 中全新的鎖定超時報告功能

在 DB2 9.5 的鎖定超時報告功能中,引入了一個新特性,使得鎖定超時分析變得非常簡單。要激活鎖定超時報告,只需將 DB2 注冊變量 DB2_CAPTURE_LOCKTIMEOUT 設置為 ON,並重新啟動您的 DB2 實例:

清單 1. 激活 DB2 9.5 中的鎖定超時報告

  1. db2set DB2_CAPTURE_LOCKTIMEOUT=ON   
  2. db2stop   
  3. db2start  

是的,就是這麼簡單。當 DB2_CAPTURE_LOCKTIMEOUT 設置為 ON 時,DB2 為每個鎖定超時事件自動創建一個報告文件。報告文件保存在 DIAGPATH 數據庫管理員配置(DBM CFG)參數指向的目錄中,包含的信息有:鎖定超時的日期和時間、存在問題的鎖定、鎖定請求程序和鎖定擁有者。

那麼 DB2 9.5 中就不使用 db2cos 腳本了嗎?事實並非如此。將 db2cos 腳本和 db2pd 工具結合具有非常廣泛的用途。這意味著,這些工具組合仍然可用於捕捉與 SQL 代碼和 DB2 內部返回代碼相關的任何 DB2 事件信息,而不僅僅是鎖定超時信息。

現在看看新的 DB2 9.5 注冊變量 DB2_CAPTURE_LOCKTIMEOUT 並查看一個使用 DB2 SAMPLE 數據庫的鎖定超時示例場景。如果 SAMPLE 數據庫不存在,可以調用下面的命令創建一個:

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