在 z/OS 環境下,DB2 數據集(VSAM 線性數據集)隨著大量插入、刪除、更新,會產生大量碎片與擴展,導致 I/O 效能下降、甚至觸發「Extent 達 119 上限」無法再擴展。傳統 REORG 需停機、佔用大量日誌空間。利用主機存儲管理子系統(SMS)與分層存儲管理器(DFSMShsm,簡稱 HSM)的遷移/召回(Migrate/Recall)機制,可在線、低影響地整理數據集範圍。
LISTCAT,確認 EXTENTS 是否接近 119。HMIGRATE。HSM 將數據集移至較低層級存儲(ML1/ML2/磁帶),過程中會重組數據集結構。LISTCAT 確認數據集已標記為 MIGRATED,且 Extent 計數歸零。HRECALL。HSM 將數據集召回原 DASD 卷,此時會以單一 Primary Extent 重新分配空間,碎片徹底消除。LISTCAT 確認 Extent 為 1,大小與原數據一致。隨後 START DATABASE 重新上線。RUNSTATS 更新統計信息,確保優化器生成最佳存取路徑。| 方法 | 停機時間 | 日誌產生 | 碎片清理 | 適用規模 |
|---|---|---|---|---|
| REORG TABLESPACE | 長(含卸載/載入) | 極大 | 徹底 | 中小表、需重建索引 |
| REORG INDEX | 中 | 中 | 索引層面 | 索引碎片嚴重 |
| HSM Migrate/Recall | 極短(僅 STOP/START) | 極小 | 徹底(單一 Extent) | 大型表空間、Extent 逼近上限 |
善用 SMS/HSM 的遷移與召回功能,是 z/OS 平台上 DB2 大型數據集整理的「隱形利器」。配合自動化腳本(如 REXX 驅動 LISTCAT → HMIGRATE → HRECALL),可構建定期、無人值守的碎片預防機制,保障系統長期穩定運行。