備份恢復機制建立在資料庫核心架構之上。理解雙方的記憶體結構、後台進程、磁碟檔案組織,才能掌握備份恢復的運作原理與差異。
/<驅動器或目錄>/
└── /
└── NODE0000/ -- 分區號 (0=非分區)
└── SQL00001/ -- 資料庫 ID (從1起)
├── SQLOGDIR/ -- 預設日誌目錄
├── SQLT0000.0/ -- 目錄表空間 SYSCATSPACE
├── SQLT0001.0/ -- 暫存表空間 TEMPSPACE1
└── SQLT0002.0/ -- 使用者表空間 USERSPACE1
表空間為邏輯儲存單位,對應一或多個容器 (目錄/裝置/檔案)。
| 維度 | Oracle | DB2 UDB |
|---|---|---|
| 離線備份 | 關閉資料庫 (SHUTDOWN) 後複製檔案 | 斷開所有連線 (DB2STOP FORCE) 後 BACKUP DATABASE |
| 線上備份 | ALTER DATABASE BEGIN BACKUP + 複製檔案 + END BACKUP (或 RMAN) | 啟用歸檔日誌 (LOGRETAIN/USEREXIT) + BACKUP DATABASE ONLINE |
| 完全恢復 | 套用所有重做/歸檔日誌,零資料遺失 | 版本恢復 (RESTORE) + 前滾恢復 (ROLLFORWARD TO END OF LOGS) |
| 不完全恢復 (PITR) | RECOVER DATABASE UNTIL TIME/SCN/CANCEL | ROLLFORWARD TO <時間點> AND STOP |
| 日誌模式 | NOARCHIVELOG / ARCHIVELOG | 循環日誌 (預設) / 歸檔日誌 |
| 日誌模式 | 備份類型 | 恢復能力 |
|---|---|---|
| 循環日誌 (預設) | 僅離線完整備份 | 版本恢復 (僅能恢復至備份時間點) |
| 歸檔日誌 | 線上完整/增量/增量差異備份 | 版本恢復 + 前滾恢復 (可恢復至任意時間點或日誌末尾) |
結論:Oracle 架構偏向「檔案複製 + 重做日誌重放」;DB2 架構偏向「頁面級備份映像 + 交易日誌前滾」。兩者皆遵循 WAL (Write-Ahead Logging) 原則,但在工具鏈、自動化程度、粒度控制上有所不同。