DBA 常用快照監控器檢視特定時間點狀態,用事件監控器捕獲特定事件,用 Explain 分析存取路徑。但當需要深入診斷記憶體分配與內部系統狀態時,db2mtrk 與 db2pd 這兩大命令列工具不可或缺。
db2mtrk 專為報告實例級、資料庫級及專用記憶體池分配而設計,輸出關鍵指標:
db2mtrk [-i] [-d] [-p] [-m | -w] [-r 間隔 [次數]] [-v] [-h]
| 選項 | 說明 |
|---|---|
-i | 顯示實例級記憶體 |
-d | 顯示資料庫級記憶體 |
-p | 顯示專用記憶體(代理程式私有) |
-m | 顯示各池最大值 |
-w | 顯示各池高水位標 |
-r | 重複模式(間隔秒數、次數) |
-v | 詳細輸出 |
-h | 顯示幫助 |
執行 db2mtrk -i -d -p 可獲取三層級完整視圖,輸出範例如下:
Memory for instance
monh other
320.0K 8.1M
Memory for database: SAMPLE
utilh pckcacheh catcacheh bph (1) bph (S32K) bph (S16K) bph (S8K)
64.0K 128.0K 64.0K 1.2M 704.0K 448.0K 320.0K
bph (S4K) shsorth lockh dbh other
256.0K 0 320.0K 4.3M 128.0K
Memory for agent 3632
other apph appctlh
64.0K 64.0K 64.0K
...
輸出清晰展示監視器堆、套件快取、目錄快取、各頁面大小緩衝池、排序堆、鎖堆等關鍵池的分配情況,以及每個代理程式的私有記憶體佔用。
db2pd 直接從 DB2 系統記憶體結構讀取資訊,生成詳盡報告,支援監控、故障排除、效能分析。基本呼叫:
db2pd [-inst] [-database DB名 | -alldatabases] [-everything | -full]
-everything:收集所有分區所有資料庫所有元素資訊-full:輸出完整長度(預設截斷以節省空間)db2pd 提供 30 餘個過濾選項,涵蓋應用、代理、交易、緩衝池、日誌、鎖、表空間、動態/靜態 SQL、FCM、記憶體集/池/塊、配置參數、目錄快取、Sysplex、重組、恢復、再優化、OS 資訊、儲存路徑、頁面等。範例:
# 查看 SAMPLE 資料庫交易日誌檔案資訊
db2pd -database SAMPLE -logs
輸出包含日誌檔案編號、寫入頁數、封存狀態、LSN 範圍、檔案路徑等關鍵欄位,極利於日誌管理與故障恢復分析。
某些過濾選項(如 -transactions、-locks)擁有自身子選項,可進一步細化輸出範圍,滿足深度診斷需求。
db2mtrk 專注記憶體池全景,db2pd 則是全方位系統狀態的 X 光機。熟練掌握兩者,並結合快照、事件監控、Explain,構建立體化 DB2 監控診斷體系,是資深 DBA 的必修課。