備份分類總覽
| 類型 | 代表工具 | 特點 | 適用場景 |
| 邏輯備份 | EXP/IMP、Data Pump | 導出物件定義與資料,跨平台/版本遷移方便 | 中小型庫、結構調整、跨版本升級 |
| 冷備份 | OS copy、tar | 資料庫關閉狀態複製檔案,最簡單、一致性最強 | 可容許停機窗口、非 7×24 系統 |
| 熱備份 | OS copy + ARCHIVELOG、RMAN | 資料庫開啟狀態備份,支援時間點恢復 (PITR) | 7×24 核心業務、大型數據倉庫 |
核心操作指南
1. EXP/IMP 邏輯備份
- 三種模式:FULL(全庫)、OWNER(用戶)、TABLES(表級)
- 三種增量:COMPLETE、CUMULATIVE、INCREMENTAL(9i 後廢除)
- 關鍵參數:
CONSISTENT=Y 保證讀一致性;COMPRESS=Y 整理段碎片。
2. 冷備份標準流程
SVRMGR> CONNECT INTERNAL
SVRMGR> SHUTDOWN IMMEDIATE
OS> cp $ORACLE_BASE/oradata/*.dbf /backup/cold_$(date +%F)/
OS> cp $ORACLE_BASE/dbs/*.ctl /backup/cold_$(date +%F)/
OS> cp $ORACLE_BASE/dbs/init$ORACLE_SID.ora /backup/cold_$(date +%F)/
SVRMGR> STARTUP
3. 熱備份(手工 OS 方式)
-- 每個表空間獨立 begin/end backup,縮短備份模式持續時間
ALTER TABLESPACE users BEGIN BACKUP;
OS> cp /u01/oradata/users01.dbf /backup/hot_$(date +%F)/
ALTER TABLESPACE users END BACKUP;
-- 歸檔日誌備份
ALTER SYSTEM ARCHIVE LOG CURRENT;
OS> cp $ARCH_DEST/*.arc /backup/arch_$(date +%F)/
-- 控制檔案備份
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control_$(date +%F).ctl';
4. RMAN 多級增量策略(推薦生產環境)
# Level 0 基礎備份(每月)
BACKUP INCREMENTAL LEVEL 0 DATABASE TAG 'L0_MONTHLY' FORMAT '/backup/rman/L0_%U';
# Level 1 累積備份(每週)
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE TAG 'L1_WEEKLY' FORMAT '/backup/rman/L1_%U';
# Level 1 差異備份(每日)
BACKUP INCREMENTAL LEVEL 1 DATABASE TAG 'L1_DAILY' FORMAT '/backup/rman/L1D_%U';
# 歸檔日誌每小時備份並刪除輸入
BACKUP ARCHIVELOG ALL DELETE INPUT FORMAT '/backup/arch/arc_%U';
恢復要點
- 完全恢復:還原所有檔案 +
RECOVER DATABASE + OPEN RESETLOGS。
- 時間點恢復 (PITR):
RECOVER DATABASE UNTIL TIME 'YYYY-MM-DD HH24:MI:SS'。
- 表空間/資料檔恢復:
RESTORE TABLESPACE users; RECOVER TABLESPACE users;。
- 區塊級恢復 (11g+):
RECOVER DATAFILE 5 BLOCK 123; 僅修復壞塊。
避坑清單
- 歸檔目錄滿會掛庫 → 監控空間、定期清理已備份歸檔。
- 控制檔案單點故障 → 多路徑多工控制檔案 + RMAN 自動備份控制檔案。
- 備份腳本未驗證 → 定期演練恢復,驗證 RTO/RPO。
- 密碼檔、參數檔、網路配置未備份 → 納入備份清單。