1. 程式人生 > 其它 >DB2監控之SNAPSHOT MONITOR(快照監視器)

DB2監控之SNAPSHOT MONITOR(快照監視器)

1 快照監視器

DB2 SNAPSHOT MONITOR收集的資料存放在記憶體中,通過DBM級引數MON_HEAP_SZ設定儲存的空間大小。

DB2監視器可監控的內容:

  • Buffer pool:讀和寫的次數,所用時間。
  • Lock:保持鎖定數目、死鎖數目。
  • Sort:所有堆的數目、溢位、排序效能。
  • Statement:SQL語句的開始時間、停止時間、完成時間。
  • Table:測量活動(讀行、寫行)
  • Timestamp:記錄時間戳。
  • Unit of work:工作單元的開始時間、結束時間、完成時間。

監視器要素:

  • 計數器:用來儲存活動或者事件發生次數的累計(例如,對於一個數據庫的已經執行的SQL語句的總次數)。計數器數值的增長貫穿監視器的生命週期:而在許多情況下,它有可能會被重置。
  • 計量值:表明一個專案的當前值(例如,當前連線到資料庫的應用程式的數量)。與計數器值不同的是,Gauges(計量)的值可以變高或者變低;它們在任一被測量點的實時值通常取決於資料庫活動的級別。
  • 高水位值:表明一個指標在監視開始以後所能達到的最大值或最小值(例如,util_heap_sz使用的最大值)。
  • 資訊要素:提供所有監視活動執行的細節資訊(例如緩衝池名稱、資料庫名稱和別名、詳細路徑等等)。
  • 時間戳:表明一個活動或者事件發生的日期和時間(例如第一次連線資料庫建立的日期和時間)。時間戳被看成是從1970年1月1日開始消逝的秒和微妙的數量的值。
  • 時間要素:記錄時間被花費於執行一個活動或事件的成本(例如:進行排序操作的時間花費)。時間要素的值會以從活動或事件開始所流逝的秒和微妙的數量形式來表現。一些時間要素可以被重置 。

檢視全域性監視器開關是否開啟

[db2inst1]# db2 get dbm cfg | grep DFT_MON
   Buffer pool                         (DFT_MON_BUFPOOL) = ON
   Lock                                   (DFT_MON_LOCK) = ON
   Sort                                   (DFT_MON_SORT) = ON
   Statement                              (DFT_MON_STMT) = ON
   Table                                 (DFT_MON_TABLE) = ON
   Timestamp                         (DFT_MON_TIMESTAMP) = ON
   Unit of work                            (DFT_MON_UOW) = ON

檢視應用級監視器開關是否開啟

[db2inst1]# db2 get monitor switches 

            Monitor Recording Switches

Switch list for member 0
Buffer Pool Activity Information  (BUFFERPOOL) = ON  01/20/2022 20:55:09.399500
Lock Information                        (LOCK) = ON  01/20/2022 20:55:09.399500
Sorting Information                     (SORT) = ON  01/20/2022 20:55:09.399500
SQL Statement Information          (STATEMENT) = ON  01/20/2022 20:55:09.399500
Table Activity Information             (TABLE) = ON  01/20/2022 20:55:09.399500
Take Timestamp Information         (TIMESTAMP) = ON  01/20/2022 20:55:09.399500
Unit of Work Information                 (UOW) = ON  01/20/2022 20:55:09.399500

開啟LOCK監視器

[db2inst1]# db2 update dbm cfg using DFT_MON_LOCK on    #需要重啟例項生效
或者
[db2inst1]# db2 update dbm cfg using LOCK on

重置例項下所有計數器

[db2inst1]# db2 reset monitor all

重置某個資料庫的所有計數器

[db2inst1]# db2 reset monitor for [database | db][database alias]

2 使用get snapshot監控

檢視幫助命令

db2 => ? get snapshot
GET SNAPSHOT FOR {DATABASE MANAGER | ALL [DCS] DATABASES |
ALL [DCS] APPLICATIONS | ALL BUFFERPOOLS | [DCS] APPLICATION
{APPLID appl-id | AGENTID appl-handle} | FCM FOR ALL DBPARTITIONNUMS |
LOCKS FOR APPLICATION {APPLID appl-id | AGENTID appl-handle} |
{ALL | [DCS] DATABASE | [DCS] APPLICATIONS | TABLES |
TABLESPACES | LOCKS | BUFFERPOOLS | DYNAMIC SQL [write to file]}
ON database-alias} [AT MEMBER member-number | GLOBAL]

檢視所有監控

db2 get snapshot for all

檢視例項級監控

db2 get snapshot for dbm

檢視某個資料庫監控

db2 get snapshot for database on dbname

檢視某個資料庫表空間監控

db2 get snapshot for tablespaces on dbname

檢視某個資料庫bufferpool監控

db2 get snapshot for bufferpools on dbname

檢視某個資料庫所有表監控

db2 get snapshot for tables on dbname

檢視某個資料庫所有LOCK監控

db2 get snapshot for locks on dbname

檢視某個資料庫所有應用程式監控

db2 get snapshot for applications on dbname

檢視某個資料庫動態SQL監控

db2 get snapshot for dynamic sql on dbname

檢視某個資料庫健康健康

db2 get health snapshot for database on dbname

3 使用表函式監控

表函式 備註
SNAPSHOT_DBM 資料庫管理器資訊

未完,待更新!!!

db2 get snapshot for tablespace on dbname