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

主機平台 DB2 資料集整理:使用 SMS 遷移/回收釋放次要空間

     編輯:DB2 教學

問題背景

在 z/OS 主機環境下,DB2 資料集 (VSAM 線性資料集) 隨著擴展可能達到 **119 個次要空間 (Secondary Extents)** 的系統上限,導致無法再擴展而報錯。傳統 REORG 需離線且耗時,利用 **DFSMShsm (Data Facility Hierarchical Storage Manager)** 的遷移/回收功能可在線、快速整理資料集,將碎片次要空間合併為單一主空間。

操作步驟 (TSO 3.4 面板)

  1. 確認狀態:對可疑資料集執行 LISTCAT,驗證次要空間數是否達 119。
  2. 停用資料庫:確認該資料集所屬的 DB2 表空間/索引空間所在的**資料庫狀態 (DSNDBx)**,並執行 -STOP DATABASE 確保無 I/O 活動。
  3. 遷移:在 3.4 面板對該資料集輸入行命令 HMIGRATE,將資料集移至 HSM 歸檔層級 (ML1/ML2/磁帶)。等待數分鐘。
  4. 驗證遷移:再次 LISTCAT,確認資料集已標示為 **MIGRATED** 狀態。
  5. 回收:對同一資料集輸入 HRECALL,HSM 將資料集還原至 DASD。此過程會**重新分配空間,合併所有次要空間為單一主空間**。
  6. 驗證完成:LISTCAT 確認次要空間數歸零,主空間大小 = 原總大小。
  7. 啟用資料庫:-START DATABASE 回復服務。

關鍵優勢

  • 無需卸載/重載資料,避免長時間鎖表與日誌爆增。
  • 秒級~分鐘級完成,視資料集大小與 HSM 吞吐量而定。
  • 保留資料集名稱、授權、屬性,應用程式無感知。

注意事項

  • 操作期間**必須停用相關資料庫物件**,否則 HRECALL 會因資料集被佔用而失敗 (RC=8)。
  • HSM 需正確配置自動遷移/回收類別,確保有足夠目標磁碟空間接收回收後的資料集。
  • 若資料集已達擴展上限且無法寫入,此法為**最快緊急恢復手段**;平時應監控次要空間數,預留擴展餘地。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved