首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 DMS 表空間高水位線 (HWM) 降低實戰:DB2DART 三板斧

     編輯:DB2 教學

什麼是高水位線 (HWM)?

在 DB2 數據庫管理空間 (DMS) 表空間中,高水位線 (High Water Mark, HWM) 標識該表空間「曾經使用過的最大頁號」。即使後續大量刪除數據釋放了空間,HWM 也不會自動下降。這導致:

  • BACKUP DATABASE 仍需讀取 HWM 以下所有頁面,備份文件膨脹、耗時增加。
  • RESTORE 目標容器必須至少等於 HWM 大小,限制縮容遷移靈活性。
  • 監控指標「已用頁數」遠低於 HWM 時,實際空間利用率極低。

判斷是否需要降低 HWM

執行 db2 list tablespaces show detail,對比 High water mark (pages) 與 Used pages。若 Used pages << HWM,且表空間為 DMS 類型,則有降低價值。

核心工具:DB2DART (DB2 Database Analysis and Reporting Tool)

前置條件: 實例必須停止 (db2stop force),僅離線模式運行。

DB2DART 提供三大針對 HWM 的選項,組合使用效果最佳:

第一斧:/DHWM — 定位持有 HWM 的表

db2dart <數據庫名> /DHWM /TSI <表空間ID>
  • 掃描表空間所有對象,輸出報告 DART0000.RPT (默認在實例目錄下)。
  • 報告中 「Object with highest page」 即為「卡住」HWM 的表/索引/LOB 對象。

第二斧:/LHWM — 獲取降低建議

db2dart <數據庫名> /LHWM /TSI <表空間ID> /HWM <目標頁數>
  • /HWM 0 表示「嘗試降到理論最低值」。
  • 報告將列出:需 REORG 哪些表、需 DROP/IMPORT 哪些表、預估能降低多少頁。
  • 注意: 建議僅供參考,實際能否達到取決於數據分佈、鎖可用性等運行時條件。

第三斧:/RHWM — 清理殘留空間映射頁

db2dart <數據庫名> /RHWM /TSI <表空間ID>
  • DMS 表空間內部維護「空間映射頁」 (SMP/ESP) 追蹤頁面分配狀態。
  • 當數據被刪除,數據頁釋放,但對應的映射頁可能不自動回收,佔用高位頁號推高 HWM。
  • /RHWM 專門掃描並釋放這些「孤兒映射頁」,直接降低 HWM,無需移動用戶數據,速度極快、風險極低。

標準降低操作流程 (SOP)

  1. 備份:db2 backup database <db> online (必做)。
  2. 停庫:db2stop force。
  3. 診斷:db2dart DB /DHWM /TSI 3 → 閱讀報告鎖定目標表 (假設為 SALES.FACT_ORDER)。
  4. 獲取建議:db2dart DB /LHWM /TSI 3 /HWM 0 → 確認建議為 REORG 該表。
  5. 清理映射頁 (優先嘗試):db2dart DB /RHWM /TSI 3 → 再次 /DHWM 驗證 HWM 是否下降。
  6. 若未達標,執行 REORG:
    • 啟動實例:db2start
    • db2 reorg table SALES.FACT_ORDER allow read access (或 allow no access 視業務窗口)。
    • db2 runstats on table SALES.FACT_ORDER with distribution and detailed indexes all
  7. 驗證:db2 list tablespaces show detail 確認 HWM 下降、Used pages 變化合理。
  8. 備份固化:db2 backup database <db> online (新備份體積應明顯縮小)。

替代方案 (無需停庫)

若業務極其敏感不可停機,可採用 導出-重建-導入 法:

db2move <db> export -tn SALES.FACT_ORDER
db2 "drop table SALES.FACT_ORDER"
db2 "create table SALES.FACT_ORDER ..."
db2move <db> import -tn SALES.FACT_ORDER
db2 reorg table SALES.FACT_ORDER
db2 runstats on table SALES.FACT_ORDER ...

缺點: 需應用停寫、外鍵/權限/觸發器需重建、大表耗時極長。

圖示說明

DB2DART 降低 HWM 操作流程圖解

總結

降低 HWM 是 DMS 表空間容量回收的關鍵運維動作。優先用 /RHWM 清理映射頁 (無損、快、無需停庫後再啟動),再視情況 REORG 持有 HWM 的大表。務必在維護窗口、全備份後、停庫狀態下操作,並保留操作日誌與驗證截圖。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved