db2 事件監視器型別

flywiththewind發表於2018-10-16


[db2inst1@onekey db2detaildeadlock]$ db2 "create event monitor dlock for deadlocks with details history write to file '/onekey/soft/dlock'"

[db2inst1@onekey db2detaildeadlock]$ db2 "select evmonname, EVENT_MON_STATE(evmonname) as state from syscat.eventmonitors"


EVMONNAME                                                                                                                        STATE      

-------------------------------------------------------------------------------------------------------------------------------- -----------

DB2DETAILDEADLOCK                                                                                                                          0

DB2DETAILDEADLOCK_2                                                                                                                        1

DLOCK                                                                                                                                      0


[db2inst1@onekey db2detaildeadlock]$ db2 set event monitor dlock state 1

DB20000I  The SQL command completed successfully.

[db2inst1@onekey dlock]$ ll

total 8

-rw-r--r-- 1 db2inst1 db2iadm1 282 Oct 16 10:00 00000000.evt

-rw-r----- 1 db2inst1 db2iadm1  31 Oct 16 10:00 db2event.ctl


[db2inst1@onekey db2detaildeadlock]$ db2 flush event monitor dlock

[db2inst1@onekey db2detaildeadlock]$  db2 set event monitor dlock state 0

[db2inst1@onekey dlock2]$ db2evmon -path /onekey/soft/dlock/ > /tmp/1.lock

or

db2inst1@onekey dlock2]$ db2evmon -db fhdbmdb -evm 'dlock' > /tmp/2.lock



http://blog.sina.com.cn/s/blog_68bd10c7010157ri.html



可使用事件監視器來捕獲與系統上發生的許多不同事件種類相關的資訊。

下表列示系統中發生的以下事件的型別,您可使用事件監視器監視這些事件。它還描述了為不同事件收集的資料的型別以及收集監視資料的時間。第二列中顯示的事件監視器的名稱與用於使用 CREATE EVENT MONITOR 語句建立該型別的事件監視器的關鍵字相對應。

表 1. 事件型別
要監視的事件的型別 事件監視器名稱 事件監視器屬性 詳細資訊
鎖定和死鎖 LOCKING 此事件監視器的用途 用於確定鎖定或死鎖的發生時間以及涉及的應用程式。使用 LOCKING 事件監視器而不是建議不要使用的 DEADLOCKS 事件監視器的優點包括整合報告鎖定和死鎖事件及包含有關鎖定等待和鎖定超時的資訊。
收集的資料 有關涉及的應用程式的綜合資訊,包括參與語句(和語句文字)的標識和要掛起的鎖定的列表。
生成事件資料的時間 檢測下列任何事件型別時,根據您配置事件監視器的方式:
  • 鎖定超時

  • 死鎖

  • 超過指定持續時間的鎖定等待

執行 SQL 語句或其他衍生資料庫活動的操作。 ACTIVITIES 此事件監視器的用途 用於跟蹤個別語句和其他活動的執行以瞭解哪些活動正在系統中執行。而且還可用於因為診斷而捕獲活動和研究 SQL 的資源消耗。
收集的資料 活動級別資料,通常對應涉及工作負載管理物件的活動。
  • 如果指定 WITH DETAILS 作為針對工作負載管理物件的 CREATE 或 ALTER 語句的 COLLECT ACTIVITY DATA 子句的一部分,那麼所收集資訊包括具有該物件的活動的語句和編譯環境資訊。如果還指定了 WITH SECTION,那麼還會捕獲語句、編譯環境、片段環境資料和片段實際情況。

  • 如果還在針對工作負載管理物件的 CREATE 或 ALTER 語句上指定了 AND VALUES,那麼所收集的資訊還將包括具有該物件的活動的輸入資料值。

生成事件資料的時間
  • 在已啟用 COLLECT ACTIVITY DATA 選項的服務類、工作負載或工作類中執行的活動完成時。

  • 已啟用 COLLECT ACTIVITY DATA 選項的活動違反閾值時。

  • 執行 WLM_CAPTURE_ACTIVITY_IN_PROGRESS 儲存過程時。

  • 使用 WLM_SET_CONN_ENV 儲存過程對其啟用活動收集的連線執行活動時。

SQL 語句的執行 STATEMENTS 此事件監視器的用途 用於檢視因為執行 SQL 語句對資料庫發出了什麼請求。
收集的資料 語句啟動或停止時間、使用的 CPU、動態 SQL 的文字、SQLCA(SQL 語句的返回碼)及其他度量值,如訪存計數。對於分割槽資料庫:使用的 CPU、執行時間、表和表佇列資訊。

注意:

  • 使用語句事件監視器、資料操作語言 (DML) 語句(例如,INSERT、SELECT、DELETE 和 UPDATE)監視 SQL 過程的執行時,會生成事件。過程語句,例如,變數賦值和控制結構(例如,WHILE 或 IF),不會以確定性方式生成事件。

  • 當時間戳記開關設為 OFF 時,語句啟動或停止時間不可用。

生成事件資料的時間 SQL 語句的結束 ;對於分割槽資料庫,子節的結束
工作單元(事務)完成 UNIT OF WORK 此事件監視器的用途 用於收集在系統上執行的工作單元的資源使用資訊和效能指標。此資訊可用於的範圍包括:從為應用程式使用的系統資源的付款或退款用途生成報告到診斷執行速度緩慢的例程導致的效能問題的用途。

對 TRANSACTIONS 事件監視器的建議。

收集的資料 有關工作單元(事務)的資訊,例如,開始時間和停止時間以及執行這些工作單元的工作負載和服務類。用於包括有關在工作單元中執行的語句的包或可執行標識的資訊以及請求度量值的選項。
生成事件資料的時間 在工作單元完成之後
從程式包快取記憶體中去除片段 PACKAGE CACHE 此事件監視器的用途 用於捕獲不再在程式包快取記憶體中的語句(和相關度量值)的歷史記錄。如果需要檢查記憶體中不再可用的語句的效能指標,那麼可使用此資訊。
收集的資料 包括針對該片段的所有執行聚集的語句文字和度量值。
生成事件資料的時間 因為從程式包快取記憶體中去除了條目。
應用程式建立的與資料庫的連線 CONNECTIONS 此事件監視器的用途 用於捕獲應用程式建立的與資料庫的每個連線的度量值和其他監視元素。
收集的資料 所有應用程式級別計數器。例如,應用程式連線至資料庫或與資料庫斷開連線的時間,或者涉及該應用程式的鎖定升級的數目。
生成事件資料的時間 連線結束
取消啟用資料庫 DATABASE 此事件監視器的用途 用於捕獲以下度量值和其他監視元素,它們反映啟用後有關整個資料庫的資訊。
收集的資料 所有資料庫級別計數器。例如,自啟用後與資料庫建立的連線數、等待鎖定所耗用的時間或插入的資料行數。
生成事件資料的時間 資料庫取消啟用
BUFFERPOOLS

TABLESPACES
此事件監視器的用途 用於捕獲與緩衝池和表空間相關的度量值
收集的資料 緩衝池、預取程式、頁清理程式和每個緩衝池的直接 I/O 的計數器。
生成事件資料的時間 資料庫取消啟用
TABLES 此事件監視器的用途 用於捕獲與資料庫啟用後更改的表有關的度量值。
收集的資料 表級別計數器,例如,讀取或寫入的行數,或資料、LOB 或索引物件使用的磁碟頁數。
生成事件資料的時間 資料庫取消啟用
有關工作負載管理物件的統計資訊和度量值 STATISTICS 此事件監視器的用途 用於捕獲與資料庫中的工作負載管理物件(例如,服務超類或工作負載)相關的處理度量值。例如,可使用統計資訊事件監視器來檢查給定工作負載隨時間變化的 CPU 利用率。
收集的資料 從在系統中每個服務類、工作負載或工作類內執行的活動計算而來的統計資訊。
生成事件資料的時間 可按固定時間間隔自動收集統計資訊。此時間間隔是使用 wlm_collect_int  資料庫配置引數定義的。

還可使用 WLM_COLLECT_STATS 儲存過程手動收集資料。

注: 透過任一收集機制,統計資訊監視元素的值在發生收集後重置為 0。

超過工作負載管理器閾值 THRESHOLD VIOLATIONS 此事件監視器的用途 用於確定資料庫操作期間何時超過您設定的特定閾值。可對各種物件(範圍從 CPU 時間、資料庫連線數到特定語句的執行)設定閾值。所收集資料可用於各種用途,包括監視潛在問題(例如,達到對臨時表空間的限制)。
收集的資料 閾值違例資訊。
生成事件資料的時間 檢測到閾值違例時。閾值是使用 CREATE THRESHOLD 語句定義的。
對資料庫或資料庫管理器配置的更改 CHANGE HISTORY 此事件監視器的用途 捕獲對資料庫和資料庫管理器配置的更改、對登錄檔設定的更改、DDL 語句的執行和實用程式的執行
收集的資料 資料庫配置引數和資料庫管理器配置引數更改、登錄檔變數更改、DDL 語句的執行、某些 DB2® 實用程式和命令的執行以及變更歷史記錄事件監視器啟動。

注: 通常,不會捕獲在變更歷史記錄事件監視器處於不活動狀態或資料庫離線時發生的事件的相關資訊。但是,會記錄對登錄檔變數和配置引數的更改。

生成事件資料的時間 監視器啟動期間,引數或變數發生更改的時間或命令、DDL 或實用程式的完成時間。

注意:

  1. 如果在活動事件監視器處於活動狀態時資料庫被取消啟用,那麼會廢棄佇列中積壓的活動記錄。為確保您獲取所有活動事件監視器記錄並且沒有任何廢棄記錄,請在取消啟用資料庫之前取消啟用該活動事件監視器。顯式取消啟用活動事件監視器後,事件監視器取消啟用前會處理佇列中所有積壓的活動記錄。

  2. 除了自動發生資料收集的已定義時間外,還可使用 FLUSH EVENT MONITOR SQL 語句來生成事件。此方法生成的事件將使用所有監視器型別(DEADLOCKS 和 DEADLOCKS WITH DETAILS 除外)的當前資料庫監視器值寫入,這些監視器型別與清空的事件監視器相關聯。

表 2. 不推薦使用的事件監視器的事件型別
要監視的事件的型別 事件監視器名稱 事件監視器屬性 詳細資訊
死鎖 DEADLOCKS 此事件監視器的用途 用於確定死鎖的發生時間以及涉及的應用程式。
收集的資料 涉及的應用程式及處於爭用狀態的鎖定。
生成事件資料的時間 死鎖檢測
DEADLOCKS WITH DETAILS 此事件監視器的用途 用於確定死鎖的發生時間以及涉及的應用程式。
收集的資料 有關涉及的應用程式的綜合資訊,包括參與語句(和語句文字)的標識和要掛起的鎖定的列表。如果使用 DEADLOCKS WITH DETAILS 事件監視器而不是 DEADLOCKS 事件監視器,那麼會導致發生死鎖時效能下降,原因是收集了其他的資訊。
生成事件資料的時間 死鎖檢測
DEADLOCKS WITH DETAILS HISTORY 此事件監視器的用途 用於確定死鎖的發生時間以及涉及的應用程式。
收集的資料 DEADLOCKS WITH DETAILS 事件監視器中報告的所有資訊以及每個應用程式的當前工作單元的語句歷史記錄, 這些應用程式擁有的鎖定參與了掛起該鎖定的資料庫分割槽的死鎖方案。如果使用 DEADLOCKS WITH DETAILS HISTORY 事件監視器,那麼會導致啟用時效能輕微下降,原因是進行了語句歷史記錄跟蹤。
生成事件資料的時間 死鎖檢測
DEADLOCKS WITH DETAILS HISTORY VALUES 此事件監視器的用途
收集的資料 帶有詳細資訊的死鎖歷史記錄中報告的所有資訊,以及在執行語句時對所有引數標記提供的值。如果使用 DEADLOCKS WITH DETAILS HISTORY VALUES 事件監視器,那麼會導致啟用時效能較為嚴重的下降,原因是額外複製資料值。
生成事件資料的時間 死鎖檢測
工作單元(事務)完成 TRANSACTIONS 此事件監視器的用途
收集的資料 UOW 工作啟動或停止時間、先前的 UOW 時間、耗用的 CPU 以及鎖定和記錄度量值。如果使用 XA 執行,那麼不會生成事務記錄。
生成事件資料的時間 工作單元完成時

注意:

  1. 除了自動發生資料收集的已定義時間外,還可使用 FLUSH EVENT MONITOR SQL 語句來生成事件。此方法生成的事件將使用所有監視器型別(DEADLOCKS 和 DEADLOCKS WITH DETAILS 除外)的當前資料庫監視器值寫入,這些監視器型別與清空的事件監視器相關聯。

  2. 建議不要使用此事件監視器。建議不要再使用此選項,將來的發行版可能會將其移除。請使用 CREATE EVENT MONITOR FOR LOCKING 語句來監視與鎖定相關的事件,例如鎖定超時、鎖定等待和死鎖。

  3. 建議不要使用此事件監視器。建議不要再使用此選項,將來的發行版可能會將其移除。請使用 CREATE EVENT MONITOR FOR UNIT OF WORK 語句來監視事務事件。

注: 將為每個新建立的資料庫建立詳細的死鎖事件監視器。此事件監視器稱為 DB2DETAILDEADLOCK,將在啟用資料庫時啟動,並且寫至資料庫目錄中的檔案。可透過刪除此事件監視器來避免它需要的額外處理器時間。建議不要使用 DB2DETAILDEADLOCK 事件監視器。建議不要再使用此選項,將來的發行版可能會將其移除。請使用 CREATE EVENT MONITOR FOR LOCKING 語句來監視與鎖定相關的事件,例如鎖定超時、鎖定等待和死鎖。




檔案或管道事件監視器的輸出是一個邏輯資料分組二進位制流。可使用  db2evmon  命令從命令列格式化此資料流。  此高效工具從事件監視器的檔案或管道讀取事件記錄,然後將它們寫至螢幕(標準輸出)。

開始之前

除非連線至資料庫,否則不需要任何許可權,如果連線至資料庫,那麼需要具有下列其中一個許可權:

  • SYSADM

  • SYSCTRL

  • SYSMAINT

  • DBADM

關於此任務

可透過提供事件檔案的路徑或提供資料庫名稱和事件監視器名稱,以指示想要格式化的事件監視器輸出。

過程

要格式化事件監視器輸出:

  • 指定包含事件監視器檔案的目錄:

    db2evmon -path '/tmp/dlevents'
    

    /tmp/dlevents 表示(UNIX)路徑。

  • 指定資料庫和事件監視器名稱:

    db2evmon -db 'sample' -evm 'dlmon'
    

    sample 表示事件監視器所屬的資料庫。

    dlmon 表示事件監視器。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26224914/viewspace-2216503/,如需轉載,請註明出處,否則將追究法律責任。

相關文章