Oracle 備份恢復體系建立在三大標準方法之上:邏輯備份 (EXP/IMP)、物理冷備份、物理熱備份。每種方法有其適用邊界、RPO/RTO 特徵、資源消耗與操作複雜度。本文深度剖析三大方法原理、增量策略、操作流程、優劣勢對比與選型決策樹,助您構建符合業務 SLA 的備份架構。
| 維度 | EXP/IMP (邏輯) | 冷備份 (物理) | 熱備份 (物理) |
|---|---|---|---|
| 備份類型 | 邏輯 (SQL/元數據/數據) | 物理 (文件複製) | 物理 (文件複製 + 歸檔) |
| 數據庫狀態 | OPEN (線上) | SHUTDOWN (離線) | OPEN (線上,需 ARCHIVELOG) |
| 恢復粒度 | 表/Schema/用戶/全庫 | 僅全庫/文件級 (時間點) | 表空間/數據文件/塊/時間點 |
| RPO (數據丟失容忍) | 導出時間點起 | 備份時間點起 | 秒級 (配合歸檔/Standby) |
| RTO (恢復時間目標) | 慢 (需重建對象+導入數據) | 快 (複製文件+啟動) | 中等 (恢復+應用歸檔) |
| 存儲空間 | 較小 (壓縮、無空洞) | 大 (原始文件大小) | 大 (數據文件+歸檔日志) |
| 版本/平台遷移 | 支援跨版本/平台 | 不支援 | 不支援 (同平台/版本) |
| 適用規模 | < 50GB / 小型庫 | 中小型 / 可停機窗口 | 大型核心業務 / 7×24 |
TABLES=EMP,DEPT - 精確控制對象OWNER=SCOTT - Schema 級遷移FULL=Y - 含系統對象,需 SYS 權限| 類型 | 參數 | 含義 | 恢復順序 |
|---|---|---|---|
| 完全增量 | INCTYPE=COMPLETE | 全庫基線 | 1. 完全增量 |
| 增量型 | INCTYPE=INCREMENTAL | 上次備份後變化 | 2. 最近累積增量 |
| 累積型 | INCTYPE=CUMULATIVE | 上次完全後所有變化 | 3. 最近增量型 |
週策略示例:週一完全 (A) → 週二增量 (B) → 週三增量 (C) → 週四增量 (D) → 週五累積 (E) → 週六增量 (F) → 週日增量 (G)
恢復:A → E → F (若週日故障)
> ⚠️ 現狀:增量導出已不推薦使用,功能受限、恢復複雜、性能差。大庫請用 RMAN 增量備份。
-- 1. 正常關閉
SQLPLUS /NOLOG
CONNECT / AS SYSDBA
SHUTDOWN IMMEDIATE; -- 或 NORMAL/TRANSACTIONAL
-- 2. 複製關鍵文件 (腳本化)
CP $ORACLE_HOME/dbs/spfileORCL.ora /backup/control/
CP $ORACLE_HOME/dbs/orapwORCL /backup/control/
CP /u01/oradata/ORCL/*.dbf /backup/datafile/
CP /u01/oradata/ORCL/*.log /backup/redolog/
CP /u01/oradata/ORCL/control*.ctl /backup/control/
-- 3. 啟動數據庫
STARTUP
-- 對每個表空間:
ALTER TABLESPACE ts_data BEGIN BACKUP; -- 進入備份模式,凍結檢查點 SCN
-- OS 複製該表空間所有數據文件
CP /u01/oradata/ORCL/ts_data_*.dbf /backup/hotbackup/
ALTER TABLESPACE ts_data END BACKUP; -- 結束備份模式,記錄結束 SCN
備份模式機制:
-- 暫停歸檔 (可選,避免備份期間產生新歸檔)
ALTER SYSTEM ARCHIVE LOG CURRENT;
-- 複製歸檔目錄所有文件
CP $ARCHIVE_DEST/* /backup/archivelog/
-- 或 RMAN: BACKUP ARCHIVELOG ALL;
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control/control.bak';
-- 或二進制備份
ALTER DATABASE BACKUP CONTROLFILE TO TRACE; -- 生成文本版 CREATE CONTROLFILE 腳本
| 風險 | 後果 | 對策 |
|---|---|---|
| 忘記 END BACKUP | 表空間永久處於備份模式,大量 Redo、恢復極慢 | 腳本自動化、監控 V$BACKUP 視圖、定期巡檢 |
| 備份期間數據文件損壞 | 備份不可用,無法恢復 | 多路鏡像備份、校驗和驗證 (RMAN VALIDATE) |
| 歸檔目錄空間耗盡 | 數據庫掛起 (ORA-00257) | FRA 監控告警、歸檔刪除策略、備份後刪除 |
| 備份不一致 (未正確 BEGIN/END) | 恢復時需介質恢復,可能數據丟失 | 嚴格流程、RMAN 替代用戶管理模式 |
RMAN (Recovery Manager) 是 Oracle 官方推薦的備份恢復工具,整合了上述所有能力:
-- 核心優勢
BACKUP DATABASE PLUS ARCHIVELOG; -- 全庫+歸檔一條命令
BACKUP INCREMENTAL LEVEL 1 DATABASE; -- 塊級增量 (僅備份變更塊)
BACKUP VALIDATE DATABASE; -- 備份驗證 (無實際輸出)
RESTORE DATABASE; -- 智能恢復 (自動選擇備份片)
RECOVER DATABASE; -- 自動應用歸檔/增量
BLOCKRECOVER DATAFILE 5 BLOCK 123; -- 塊級恢復
DUPLICATE TARGET DATABASE FOR STANDBY; -- 一鍵建 Standby
=== 分層備份策略 ===
L0: Data Guard 物理備庫 (同城同步/異地異步) -- RPO=0/RTO=分級, 核心業務
L1: RMAN 磁盤備份 (每日 L0 級增量, 保留 7 天) -- RPO=24h, 快速恢復
L2: RMAN 磁帶/異地備份 (每周全備, 保留 1 年) -- 合規、歸檔、災難恢復
L3: EXPDP 邏輯備份 (核心 Schema, 每日) -- 跨版本遷移、表級恢復、審計
L4: 關鍵表/配置表 邏輯導出 (每小時/觸發) -- 極高價值數據雙重保險
冷備份 = 離線、文件級、極簡、極快、必停機、僅時間點。
熱備份 = 線上、文件+歸檔、不停機、粒度細、可時間點、需 ARCHIVELOG、RMAN 標準化。
邏輯備份 = 線上、SQL 級、跨版本、表級可控、慢、輔助角色。
現代架構:Data Guard (核心) + RMAN (標準) + EXPDP (輔助) = 纵深防禦體系。
根據業務 SLA (RPO/RTO)、停機窗口、數據庫規模、遷移需求,選擇恰當的備份方法組合,並通過 RMAN 標準化操作、Data Guard 災備、定期恢復演練,構建可信賴的數據保護體系。