備份與恢復是資料庫高可用的基石。DB2 與 Oracle 雖架構術語不同,但核心組件對應關係緊密。本文從記憶體結構、後台進程、磁碟檔案三個維度,對照解析兩大資料庫的備份恢復關鍵組件,助您建立跨平台遷移與運維的統一認知框架。
| Oracle (SGA) | DB2 (Database Shared Memory) | 功能說明 |
|---|---|---|
| Buffer Cache (資料緩衝區) | Buffer Pool (緩衝池) | 暫存從磁碟讀取的資料頁,減少物理 I/O |
| Shared Pool (共用池) | Package Cache (套件快取) | 快取 SQL 執行計畫、物件定義、權限等中繼資料 |
| Log Buffer (重做日誌緩衝) | Log Buffer (日誌緩衝區) | 順序記錄資料變更前後映像,保證交易持久性 |
| Large Pool (大型池) | (無直接對應,由 Utility Heap / Backup Heap 承擔) | RMAN 備份/恢復專用記憶體 |
| Oracle 進程 | DB2 執行緒 (EDU) | 核心職責 |
|---|---|---|
| DBWn (Database Writer) | Page Cleaner / Prefetcher | 將髒頁非同步刷回磁碟 / 預讀資料頁 |
| LGWR (Log Writer) | Logger | 將 Log Buffer 內容順序寫入線上日誌檔 |
| CKPT (Checkpoint) | Checkpoint 執行緒 | 定期同步資料檔頭、控制檔/資料庫配置與日誌序號 |
| ARCH (Archiver) | Archiver (歸檔器) | 自動將填滿的線上日誌複製至歸檔目的地 |
| Oracle | DB2 | 備註 |
|---|---|---|
| Data Files (資料檔) | Table Space Containers (表空間容器) | DB2 以表空間 (SMS/DMS/Automatic Storage) 管理儲存 |
| Control Files (控制檔) | Database Configuration + SQLBP.1/SQLBP.2 (資料庫分割目錄) |
DB2 無單一控制檔,元資料分散在目錄結構與系統表空間 |
| Redo Log Files (線上重做日誌) | Active Log Files (作用中日誌檔, SLOG0000*) |
循環使用,記錄所有交易變更 |
| Archived Redo Logs (歸檔日誌) | Archived Log Files (歸檔日誌檔) | 啟用 LOGARCHMETH1 後自動產生 |
| Parameter File (SPFILE/Init.ora) | Database Manager Config (db2system) + Database Config (SQLDBCON) |
DB2 以登錄變數與配置參數取代參數檔 |
/<db_path>/<instance>/NODE0000/SQL00001/
├── SQLOGDIR/ # 預設作用中日誌目錄
├── SQLT0000.0/ # SYSCATSPACE (目錄表空間)
├── SQLT0001.0/ # TEMPSPACE1 (暫存表空間)
└── SQLT0002.0/ # USERSPACE1 (使用者表空間)
關鍵點:NODE0000 表示非分區資料庫 (單分區);SQL00001 為資料庫 ID (從 1 起算)。分區資料庫下會出現 NODE0001、NODE0002 等目錄。
| 模式 | Oracle | DB2 | 適用場景 |
|---|---|---|---|
| 離線備份 (Offline) | SHUTDOWN 後複製檔案 | db2 backup db ... (需獨佔連線) |
非 7x24 系統、維護窗口充足 |
| 線上備份 (Online) | BEGIN BACKUP / END BACKUP + RMAN | db2 backup db ... ONLINE (需歸檔日誌模式) |
7x24 系統、允許備份期間業務讀寫 |
| 完全恢復 | RESTORE + RECOVER (應用所有歸檔) | db2 restore + db2 rollforward to end of logs and complete |
RPO=0,不可容忍資料遺失 |
| 不完全恢復 (PITR) | RECOVER UNTIL TIME/SCN/CANCEL | db2 rollforward to <timestamp> and complete |
邏輯錯誤救援、測試環境快速回滾 |
logarchmeth1):支援線上備份 + 前滾恢復,可恢復至任意時間點 (PITR) 或日誌尾端。切換指令:
db2 update db cfg for <db> using LOGARCHMETH1 'DISK:/archive_logs'
db2 update db cfg for <db> using LOGRETAIN RECOVERY
db2 backup db <db> # 切換後必須立即做一次離線完整備份建立基準
總結:Oracle 以「例項」為核心,DB2 以「資料庫」為核心;Oracle 依賴控制檔統一元資料,DB2 採用分層目錄與系統表空間。理解對應關係,能讓跨平台 DBA 在備份策略制定、災難演練腳本編寫、異構遷移驗證時,快速定位關鍵組件與操作指令。