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

IBM DB2 資料庫備份與恢復完整實戰指南:離線/線上、完全/增量/Delta、重導向恢復與前滾

     編輯:DB2 教學

備份的重要性

  • 保障高可用性與災難恢復能力。
  • 系統崩潰時以最小代價恢復資料。
  • DBA 首要核心職責。

備份分類體系

維度類型說明
對資料庫影響線上備份 (Online)資料庫持續可用,需歸檔日誌模式。
離線備份 (Offline)需斷開所有連接,支援循環日誌。
資料範圍完全備份備份所有資料。
增量備份僅備份變更資料,分累計與 Delta 兩種。

增量 vs Delta 定義差異

  • 增量 (累計):自最近一次成功完全備份以來所有變更。
  • Delta:自最近一次成功備份(完全/增量/Delta)以來的變更。

範例:週一完全、週二增量 A、週三增量 B、週四 Delta。
增量 B 包含週二+週三變更;Delta 僅含週四變更。

備份檔案結構差異

Windows:目錄樹結構

Windows 備份目錄結構

路徑編碼:資料庫.備份類型.實例.節點.編目.YYYYMMDD.HHMMSS.序號

Unix/Linux:單一檔案

Unix 備份檔案命名

命名:資料庫.實例.節點.編目.YYYYMMDDHHMMSS.序號

完整實驗腳本(Windows + DB2 V9 驗證,AIX 5.2 + V8.2 同樣適用)

4.1 環境建置

-- 建立測試庫
create database TestDB on 'D:' using codeset gbk territory cn with "TestDB";
-- 建立 DMS 表空間
create regular tablespace Data_SP pagesize 4k managed by database
using (file 'D:\DB2Container\TestDB\UserData\UserData' 2560)
bufferpool ibmdefaultbp;
-- 建立測試表並插入資料
create table TestTable (id int not null generated always as identity, message varchar(100), primary key(id)) in Data_SP;
insert into TestTable(message) values('測試表建立成功');

4.2 離線完全備份與還原

db2 backup db TestDB to D:\DB2_Train
db2 drop db TestDB
db2 restore db TestDB from D:\DB2_Train taken at 20071121152940

4.3 離線增量備份與還原

db2 update db cfg using TrackMod YES
db2 backup db TestDB to D:\DB2_Train  -- 完全基準備份
insert into TestTable(message) values('開始增量備份測試');
db2 backup db TestDB incremental to D:\DB2_Train  -- 增量備份
db2 drop db TestDB
db2 restore db TestDB from D:\DB2_Train taken at 20071121153818  -- 還原完全
db2 restore db TestDB incremental automatic from D:\DB2_Train taken at 20071121154006  -- 還原增量,automatic 自動鏈式恢復

4.4 線上備份與還原(含前滾恢復)

db2 connect to TestDB
insert into TestTable(message) values('線上完全備份測試');
db2 update db cfg for TestDB using logretain on trackmod on
db2 backup db TestDB  -- 線上完全備份 (20071121160548)
db2 connect to TestDB
insert into TestTable(message) values('線上增量備份測試');
db2 backup db TestDB online incremental to D:\DB2_Train  -- 線上增量 (20071121152922)
-- 災難模擬:備份活動日誌至 C:\db2admin,再刪除資料庫
db2 drop db TestDB
db2 restore db TestDB from D:\DB2_Train taken at 20071121160548
db2 restore db TestDB incremental automatic from D:\DB2_Train taken at 20071121152922
db2 connect to TestDB
db2 rollforward database TestDB to end of logs and complete overflow log path ("C:\db2admin")

關鍵提醒

  • 啟用 logretain 後必須立即做一次離線完全備份,否則資料庫處於 BACKUP PENDING 不可用。
  • 線上恢復後處於 ROLL-FORWARD PENDING,必須執行 rollforward ... and complete 並指定歸檔日誌路徑 (overflow log path)。
  • automatic 關鍵字讓增量還原自動尋找鏈路,避免手動多次恢復出錯。
  • 定期演練完整恢復流程,確保備份真正可用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved