傳統資料庫維護(備份、RUNSTATS、REORG 等)需在「維護窗口」離線執行,但現代業務 7×24 不間斷,窗口縮小甚至消失。DB2 9 引入自動維護與適應性實用程式節流雙引擎,讓維護在線上、無感知、可控制地進行。
DBA 設定維護目標(如:統計資訊新鮮度、備份頻率、重組閾值),DB2 Database Manager 自動評估是否需要執行維護,並在指定維護時間窗內自動執行。參數層級結構:
auto_maint:總開關auto_db_backup:自動備份auto_tbl_maint:表維護總開關auto_runstats:自動 RUNSTATSauto_stats_prof:統計資訊分析auto_prof_upd:統計配置檔自動更新auto_reorg:自動重組(離線)新建資料庫預設全開,建議生產環境按業務節奏微調時間窗與閾值,而非直接關閉。
| 任務 | 核心價值 | 適用場景 |
|---|---|---|
| 自動備份 | 確保定期備份,免寫 BACKUP 腳本,避免人為疏漏 | 所有生產庫,特別是無專職 DBA 團隊 |
| 自動 RUNSTATS | 保持統計資訊最新,優化器永遠基於準確資訊選擇存取路徑 | 資料變動頻繁、查詢模式多變的 OLTP/混合負載 |
| 統計資訊分析 | 偵測過時/遺漏/錯誤統計,依查詢回饋建議收集策略 | 複雜查詢多、統計維護成本高的系統 |
| 自動重組 (離線) | 消除資料碎片,提升掃描效率;管理離線重組排程 | 大量 UPDATE/DELETE 導致碎片率高的表 |
自動維護雖好,但備份、重組、RUNSTATS 等實用程式運行時會消耗 CPU、I/O、記憶體、日誌頻寬,衝擊線上業務。離線備份/重組更會鎖定物件甚至整庫。
DB2 適應性節流系統監控系統資源使用率,依據節流優先級與資源閾值,動態調整實用程式執行強度:
UTIL_IMPACT_PRIORITY:實用程式影響優先級(0-100,預設 50),越高越優先獲取資源UTIL_THROTTLE:節流開關(ON/OFF)AUTO_MAINT_WINDOW 相關參數定義每日/每週可執行時段-- 範例:設定夜間全速備份,白天限速統計
UPDATE DB CFG FOR MYDB USING AUTO_MAINT ON
AUTO_DB_BACKUP ON
AUTO_TBL_MAINT ON
AUTO_RUNSTATS ON
AUTO_REORG ON
UTIL_IMPACT_PRIORITY 50
UTIL_THROTTLE ON;
-- 配合排程:夜間 02:00-06:00 設為高優先級窗口,白天自動降速
DB2 9 增強了線上重組 (ONLINE REORG),允許在表被存取時重組,配合節流機制,可將重組影響降至最低。建議:
db2pd -reorg 追蹤進度與節流狀態DB2 9 透過「自動維護」解決做什麼、何時做,「實用程式節流」解決怎麼做不影響業務。兩者結合,實現了維護作業的目標導向、自適應、業務友善。建議:啟用預設自動維護,根據業務峰谷調整時間窗與優先級,開啟節流,定期檢視 db2diag.log 與維護歷史記錄微調策略。