生產環境**不能停機**是常態。Oracle ARCHIVELOG 模式下的**線上熱備份 (Online Backup)**,允許資料庫在開放服務狀態下完成備份,是 7×24 系統的核心生存技能。本文系統梳理熱備份原理、標準操作流程、關鍵參數配置與避坑指南。
| 維度 | 冷備份 (Offline) | 熱備份 (Online, ARCHIVELOG) |
|---|---|---|
| 資料庫狀態 | SHUTDOWN | OPEN (正常服務) |
| 備份單位 | 整個資料庫 | 表空間級別 (部分或全部) |
| 備份檔案 | 所有資料檔、控制檔、參數檔 | 資料檔 + 控制檔 (Redo Log 不備份,靠歸檔) |
| 一致性保證 | SCN 完全一致 | 透過 BEGIN/END BACKUP 機制 + 歸檔日誌達成時間點一致性 |
ALTER TABLESPACE ts BEGIN BACKUP → 該表空間所有資料檔頭記錄 **Checkpoint SCN** (凍結 SCN),後續不再更新檔頭 SCN。ALTER TABLESPACE ts END BACKUP → 資料檔頭再次記錄最新 Checkpoint SCN,恢復正常 Redo 記錄模式。-- init.ora / spfile 關鍵參數
LOG_ARCHIVE_START = TRUE -- 10g+ 建議用 LOG_ARCHIVE_DEST_n
LOG_ARCHIVE_DEST_1 = 'LOCATION=/u01/arch MANDATORY'
LOG_ARCHIVE_FORMAT = 'arch_%t_%s_%r.arc'
LOG_ARCHIVE_DUPLEX_DEST = '/u02/arch' -- 多路複寫歸檔,消除單點
LOG_ARCHIVE_DEST_STATE_1 = ENABLE
-- 1. 進入備份模式 (盡量縮短此窗口)
ALTER TABLESPACE users BEGIN BACKUP;
-- 2. OS 層複製資料檔 (cp / rsync / 第三方備份軟體)
-- 注意:此期間業務可正常讀寫,但會產生大量 Redo
! cp /u01/oradata/ORCL/users01.dbf /backup/ORCL/users01.dbf
-- 3. 結束備份模式
ALTER TABLESPACE users END BACKUP;
-- 4. 強制歸檔當前線上日誌 (確保備份窗口內的 Redo 皆已歸檔)
ALTER SYSTEM ARCHIVE LOG CURRENT;
-- 5. 備份控制檔 (結構變更後必備)
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/ORCL/control01.ctl' REUSE;
-- 或二進制備份
ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/backup/ORCL/control_trace.sql';
#!/bin/bash
# hot_backup.sh
ORACLE_SID=ORCL; export ORACLE_SID
BACKUP_DIR=/backup/ORCL/$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
sqlplus -s / as sysdba <
| 風險點 | 影響 | 緩解措施 |
|---|---|---|
| BEGIN BACKUP 窗口過長 | Redo 爆增、效能下降、備份檔不一致風險 | 使用 RMAN (不需 BEGIN/END BACKUP)、或分表空間並行備份、非尖峰時段執行 |
| 備份期間資料檔損壞 | 無法恢復 | 多路複寫歸檔 (LOG_ARCHIVE_DUPLEX_DEST)、備份檔校驗 (DBVERIFY/RMAN VALIDATE) |
| 遺漏 SYSTEM/UNDO 表空間 | 資料庫無法開啟 | 腳本強制包含 SYSTEM、SYSAUX、UNDO、TEMP (TEMP 僅備份結構) |
| 控制檔未同步備份 | 結構變更 (加表空間等) 導致恢復失敗 | 每次熱備份結束必備份控制檔,或啟用控制檔自動備份 (RMAN CONFIGURE CONTROLFILE AUTOBACKUP ON) |
**強烈建議棄用手工腳本,全面轉向 RMAN:**
BEGIN/END BACKUP,不產生完整塊映像,Redo 壓力極低RESTORE ... PREVIEW、VALIDATERUN { RESTORE DATABASE; RECOVER DATABASE; }
# RMAN 典型熱備份腳本
RUN {
CONFIGURE CONTROLFILE AUTOBACKUP ON;
BACKUP AS COMPRESSED BACKUPSET
DATABASE PLUS ARCHIVELOG
TAG 'DAILY_HOT_BACKUP';
DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 7 DAYS;
}
DB2 採用 **Log Retain (歸檔日誌) + 線上備份** 機制,概念類似:
LOGFILSIZ, LOGPRIMARY, LOGSECOND, NEWLOGPATH, MIRRORLOGPATH, USEREXITBACKUP DATABASE dbname ONLINE TO /backup INCLUDE LOGS掌握 ARCHIVELOG 熱備份原理與 RMAN 實戰,是 DBA 守護資料資產的核心竞争力。記住:**備份未驗證等於沒備份**,定期演練恢復演練 (Fire Drill) 才是真正的保障。