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

DB2 9.7 將 DMS 表空間轉換為自動存儲:線上與離線雙模式實作指南

     編輯:DB2 教學

背景:自動存儲演進與 9.7 突破

自 DB2 V8.2.2 引入自動存儲簡化容器管理,V9 設為預設。但 9.7 前,非自動存儲資料庫無法事後啟用,既有 DMS 表空間也無法轉換。DB2 9.7 打破限制:提供 ALTER DATABASE ADD STORAGE 啟用資料庫級自動存儲,並支援將 DMS 表空間線上或離線轉換為自動存儲(SMS 不支援轉換)。

表空間類型回顧

類型管理者特點
SMS (系統管理)OS 檔案系統易管理、自動擴展、效能較弱、大小受限
DMS (資料庫管理)DB2 管理器高效能、容器手動管理、支援 AUTORESIZE
自動存儲DB2 管理器(資料庫級路徑)兼具 DMS 效能與 SMS 易管理性、容器自動配置

步驟一:啟用資料庫自動存儲支援

ALTER DATABASE <dbname> ADD STORAGE ON '<path1>' [, '<path2>', ...]
範例:db2 "alter database testdb add storage on '/db2/db6test/path1', '/db2/db6test/path2'"

注意:存儲路徑一旦新增無法全部刪除(SQLSTATE 428HH),分區庫需確保所有節點路徑存在且權限一致,新路徑需手動重新分佈資料才會生效。

轉換模式一:線上轉換(業務不中斷)

前置檢查

db2 get snapshot for tablespaces on testdb
# 確認 Tablespace Type = Database managed space

兩階段操作

  1. 轉換元資料:
    db2 "alter tablespace TS1 managed by automatic storage"
    
    快照顯示:原有容器保留,新增兩個自動存儲容器(新 stripe set),Rebalancer Mode 顯示進行中。
  2. 資料重新平衡(必要步驟):
    db2 "alter tablespace TS1 rebalance"
    
    完成後:原 DMS 容器移除,僅剩自動存儲容器,stripe set 合併為一,Rebalancer Mode = No Rebalancing。若跳過此步,未來 REDUCE 操作可能誤刪新容器。

代價:REBALANCE 為資料搬移操作,大表空間耗時長、資源消耗大,可搭配 throttling 降低影響。

轉換模式二:離線轉換(重導向恢復)

適用於可容許停機維護窗口,無需 REBALANCE。

  1. 備份:db2 backup db testdb tablespace ts2 online to /db2/backup
  2. 重導向恢復:db2 "restore db testdb tablespace(ts2) from /db2/backup redirect"
  3. 修改容器定義:db2 "set tablespace containers for 5 using automatic storage" → db2 restore database testdb continue
  4. 前滾恢復:db2 "rollforward db testdb to end of logs and stop"

結果:快照顯示原使用者容器被自動存儲容器取代,表空間類型仍顯示 DMS(底層已為自動存儲)。

批量轉換技巧與最佳實踐

  • 查詢待轉換表空間:MON_GET_TABLESPACE 或 SYSIBMADM.SNAPTBSP 篩選 TBSP_USING_AUTO_STORAGE != 1 AND TBSP_TYPE = 'DMS'
  • 線上批量:動態產生 ALTER TABLESPACE ... MANAGED BY AUTOMATIC STORAGE + REBALANCE 腳本
  • 離線批量:使用 GENERATE SCRIPT 產生重導向恢復模板,修改後批量執行
  • 分區庫:確保自動存儲路徑在所有分區節點存在且可寫
  • 決策前評估:自動存儲一啟用不可逆,需全盤考量存儲架構規劃

結語

DB2 9.7 的雙模式轉換機制,讓既有 DMS 表空間得以平滑遷移至自動存儲架構,釋放 DBA 容器管理負擔,提升運維彈性。選擇線上或離線模式視業務連續性需求與維護窗口而定,配合節流與批量化工具,可安全高效完成大規模遷移。

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