生產庫因硬件故障需異機還原。該庫啟用 自動存儲(Automatic Storage),且不允許增量備份(僅全量備份)。傳統重定向還原(RESTORE ... REDIRECT)在自動存儲庫上行為不同:容器路徑由 DB2 自動管理,手動指定容器會報錯 SQL2570N。本文詳解正確姿勢。
CREATE DATABASE 時指定 AUTOMATIC STORAGE YES(V9 默認開啟)DB2_CREATE_DB_ON_PATH 或 ON <path> 子句指定CREATE TABLESPACE ts1 無需 MANAGED BY AUTOMATIC STORAGE 子句,DB2 自動在存儲路徑下分配容器MANAGED BY DATABASE 或 SYSTEM 的傳統表空間PRODDB,自動存儲路徑 /db2data/proddb,備份映像 /backup/PRODDB.0.db2inst1.NODE0000.20240101000000.001/db2data/restoredb,目標庫名 RESTOREDDBdb2ckbkp -h /backup/PRODDB.0.db2inst1.NODE0000.20240101000000.001
確認:Database name = PRODDB、Automatic storage = YES、Storage paths = /db2data/proddb
db2 "RESTORE DATABASE PRODDB FROM /backup TAKEN AT 20240101000000 \
INTO RESTOREDDB REDIRECT WITHOUT PROMPTING"
關鍵點:不要 在此處使用 ON /db2data/restoredb 或 STOGROUP 子句,否則會嘗試以非自動存儲方式創建容器導致失敗。
db2 "SET TABLESPACE CONTAINERS FOR 0 USING (FILE '/db2data/restoredb/SYSCATSPACE' 10000)"
db2 "SET TABLESPACE CONTAINERS FOR 1 USING (FILE '/db2data/restoredb/TEMPSPACE1' 5000)"
# 若表空間為自動存儲,執行上述命令會報 SQL2570N,直接跳過即可
判斷依據:執行 LIST TABLESPACES SHOW DETAIL,Automatic storage = Yes 的表空間無需也不可手動設定容器。
db2 "RESTORE DATABASE PRODDB CONTINUE"
此時 DB2 會根據目標實例的 DFTDBPATH 或隱含路徑,在目標機器上自動為自動存儲表空間分配容器。
db2 "ROLLFORWARD DATABASE RESTOREDDB TO END OF LOGS AND COMPLETE"
# 查看當前存儲路徑
db2 "SELECT * FROM SYSCAT.STOGROUPS WHERE SGNAME = 'IBMSTOGROUP'"
# 若需新增存儲路徑(如掛載新磁碟)
db2 "ALTER STOGROUP IBMSTOGROUP ADD '/db2data/restoredb/newpath'"
db2 "ALTER DATABASE RESTOREDDB ADD STORAGE ON '/db2data/restoredb/newpath'"
ACTIVE,否則 db2look 無法生成表空間 DDLRESTORE ... REDIRECT,其他節點自動跟隨/db2data/<dbname>/NODE0000),避免單點故障| 錯誤碼 | 現象 | 原因 | 對策 |
|---|---|---|---|
| SQL2570N | SET TABLESPACE CONTAINERS 失敗 | 對自動存儲表空間手動指定容器 | 跳過該表空間容器設置,讓 DB2 自動分配 |
| SQL1358N | 備份映像與目標庫存儲類型不匹配 | 目標庫未啟用自動存儲,或反之 | 確保目標庫同樣啟用 AUTOMATIC STORAGE YES |
| SQL2565N | 存儲路徑不存在或權限不足 | 目標路徑未掛載/實例用戶無寫權限 | 預先創建路徑並 chown db2inst1:db2iadm1 |
db2ckbkp -h 輸出,留存存儲路徑元數據db2look -createdb -printdbcfg 導出源庫配置,還原後對齊參數自動存儲簡化了日常運維,但也改變了重定向還原的規則:順勢而為,讓 DB2 自己管容器。掌握「不指定目標存儲路徑啟動 REDIRECT → 僅調整非自動存儲表空間 → CONTINUE」三步走,即可在異機、跨平台、DPF 等複雜場景下穩健完成非增量還原。