一、 本質區分:邏輯備份 vs 物理備份
| 維度 | 邏輯備份 (EXP/IMP, Data Pump) | 物理備份 (冷/熱備份, RMAN) |
| 備份內容 | SQL 邏輯定義 + 數據 (INSERT 文/列值流) | 數據文件塊、控制文件、Redo Log、參數文件 (二進制塊級) |
| 一致性保障 | `CONSISTENT=Y` (EXP) / `FLASHBACK_SCN` (Data Pump) 保證時間點一致性 | 冷備份固有強一致性;熱備份依賴 Redo/Undo 恢復到一致點 |
| 跨版本/平台遷移 | 極強 (導入時自動轉換字符集、版本特性) | 弱 (同版本、同平台、同字符集、同 Endian);跨平台需轉換 |
| 粒度靈活性 | 表/模式/表空間/全庫 任意組合 | 通常全庫/表空間/數據文件;RMAN 支援塊級/表級恢復 (12c+) |
| 性能 (大數據量) | 慢 (SQL 執行開銷、索引重建、觸發器觸發) | 極快 (塊級複製、並行、壓縮、增量、無 SQL 開銷) |
| 恢復時間 (RTO) | 極長 (重建對象、導入數據、重建索引) | 短 (文件複製 + 實例恢復/介質恢復) |
| 存儲空間 | 較小 (壓縮後約數據量 30-50%) | 等同數據文件大小 (RMAN 壓縮後約 40-60%) |
二、 導出/導入 (EXP/IMP) — 遺留工具,僅用於小數據量/元數據遷移
三種模式
- 用戶模式 (`OWNER=scott`):導出該用戶所有對象及數據。
- 表模式 (`TABLES=emp,dept`):導出指定表。
- 全庫模式 (`FULL=Y`):導出所有用戶對象 (需 `EXP_FULL_DATABASE` 角色)。
三種備份類型 (增量導出已廢棄,勿用)
- 完全導出 (`INCTYPE=COMPLETE`):基線。
- 累積導出 (`INCTYPE=CUMULATIVE`):上次完全後所有變更。
- 增量導出 (`INCTYPE=INCREMENTAL`):上次任意導出後變更。
⚠ 關鍵缺陷: EXP/IMP 不支援大對象 (LOB) 高效導出、不支援並行、不支援壓縮、11g+ 已插件化移除。**生產環境全面轉用 Data Pump (EXPDP/IMPDP)。**
一致性參數:`CONSISTENT=Y`
- 設置後,導出會話設置 `SET TRANSACTION READ ONLY`,確保導出數據為啟動瞬間一致性視圖 (基於 Undo)。
- 代價:長時間持有 Undo,可能導致 `ORA-01555: snapshot too old`,需配置大 Undo 表空間 + `RETENTION GUARANTEE`。
三、 冷備份 — 最簡單、最安全、停機代價大
適用場景
- 非 7x24 系統、維護窗口充足、數據量中小 (TB 級以下)。
- 無歸檔模式 (NOARCHIVELOG) 環境 (冷備份為唯一選項)。
標準流程
-- 1. 正常關閉
SHUTDOWN IMMEDIATE; -- 或 NORMAL/TRANSACTIONAL
-- 2. OS 級複製所有關鍵文件 (並行 cp/rsync/dd 到備份存儲)
-- 必須包含:
-- * 所有數據文件 (V$DATAFILE / DBA_DATA_FILES)
-- * 所有控制文件 (V$CONTROLFILE)
-- * 所有 Online Redo Log 文件 (V$LOGFILE) -- 可選,但建議備份
-- * 參數文件 (SPFILE/PFILE) -- 可選
-- * 密碼文件 (orapw) -- 可選
-- 3. 啟動數據庫
STARTUP;
優缺點
| 優點 | 缺點 |
| 概念最簡單,無工具依賴,OS 複製即可 |
必須停機,業務中斷 |
| 恢復極快:複製回覆蓋 → STARTUP |
無法時間點恢復 (PITR),僅能恢復到備份完成時刻 |
| 適用 NOARCHIVELOG 模式 |
大數據量 (PB 級) 複製耗時極長,維護窗口不足 |
四、 熱備份 — 7x24 生產環境標配,需歸檔模式
核心前提
- 數據庫運行在 **ARCHIVELOG 模式**。
- 備份期間產生的 Redo 必須完整保留 (歸檔目標空間充足)。
傳統用戶管理熱備份 (Begin/End Backup) — 理解原理,生產用 RMAN
-- 1. 表空間進入備份模式 (凍結文件頭 Checkpoint SCN,Redo 記錄完整塊映像)
ALTER TABLESPACE users BEGIN BACKUP;
-- 2. OS 複製該表空間所有數據文件
-- cp /u01/app/oracle/oradata/users01.dbf /backup/
-- 3. 表空間結束備份模式 (更新文件頭 Checkpoint SCN)
ALTER TABLESPACE users END BACKUP;
-- 4. 切換日志強制歸檔當前 Redo (確保備份期間 Redo 可用)
ALTER SYSTEM ARCHIVE LOG CURRENT;
-- 5. 備份控制文件
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control.bak';
-- 或 ALTER DATABASE BACKUP CONTROLFILE TO TRACE; (生成文本重建腳本)
關鍵機制:凍結 SCN + 完整塊映像
- `BEGIN BACKUP` 凍結數據文件頭 Checkpoint SCN。期間數據塊修改時,LGWR 將**整個塊映像**寫入 Redo (而非僅變更向量),確保備份副本 (可能處於不一致狀態) 通過 Redo 可恢復到一致點。
- 忘記 `END BACKUP` → 文件頭 SCN 永不更新 → 下次啟動需介質恢復該文件 → 極度危險。
RMAN 熱備份 — 生產標準 (無需 Begin/End Backup)
RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
-- 或增量備份策略
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG;
-- RMAN 內部處理一致性,無需手動 BEGIN/END BACKUP,性能優、功能全
五、 選型決策矩陣
| 業務需求 | 推薦策略 | 核心理由 |
| 7x24 生產、TB+ 數據、RTO < 1h、RPO < 15min | RMAN 增量備份 + Data Guard 物理備庫 | 物理備份速度快、RMAN 增量塊級追蹤、DG 零數據丟失 |
| 非核心系統、可停機窗口 4h、數據量 500GB | 每日冷備份 + 歸檔日志備份 | 簡單可靠、無 DG 成本 |
| 跨版本升級 (11g→19c)、跨平台遷移 (AIX→Linux) | Data Pump (EXPDP/IMPDP) 全庫導出導入 | 邏輯備份天然適配版本/平台差異 |
| 開發/測試環境、需快速刷新生產數據子集 | Data Pump 表/模式導出 + 導入 | 粒度靈活、可重映射表空間/用戶 |
| NOARCHIVELOG 模式 (歷史包袱) | 冷備份 (唯一選項) + 規劃遷移至 ARCHIVELOG | 無 Redo 歸檔無法熱備份 |
| 單表誤刪/誤更新、需秒級恢復 | RMAN 表級恢復 (12c+) / 閃回表 / 閃回查詢 | 避免全庫恢復 |
六、 現代備份最佳實踐清單
- 標準化 RMAN: 所有物理備份統一用 RMAN (腳本化、目錄庫、壓縮、加密、並行)。
- 備份驗證: `RMAN> VALIDATE BACKUPSET ...` 定期驗證備份集可恢復性;`RESTORE VALIDATE DATABASE` 驗證還原可行性。
- 異地備份: 至少一份備份存儲在不同火災區/可用區 (磁帶庫、云存儲、異地數據中心)。
- 歸檔管理: FRA 自動清理 + RMAN `DELETE ARCHIVELOG BACKED UP 2 TIMES TO DEVICE TYPE SBT` 確保歸檔備份後再刪。
- 演練恢復: 季度進行生產數據恢復演練 (異機恢復),驗證 RTO/RPO 達標。