作業系統層備份 (OS Backup) 直接複製資料庫實體檔案,與邏輯備份 (EXP/DP) 截然不同:
| 維度 | OS 物理備份 | 邏輯備份 |
|---|---|---|
| 備份對象 | 資料檔、控制檔、重做日誌、參數檔 | SQL 陳述式產生的資料/結構 |
| 一致性單位 | 區塊/檔案層面 | 交易/表層面 |
| 恢復速度 | 快 (檔案複製 + 可選恢復) | 慢 (重建物件、索引、統計) |
| 跨平台/版本 | ❌ 通常不支援 | ✅ 支援 |
# 1. 所有資料檔
SELECT name FROM v$datafile;
# 2. 所有控制檔
SELECT name FROM v$controlfile;
# 3. 所有線上重做日誌
SELECT member FROM v$logfile;
# 4. 參數檔 (可選,但強烈建議)
# init.ora 或 spfile.ora
# 5. 密碼檔 (可選)
# orapw
# 1. 關閉資料庫
SVRMGR> CONNECT INTERNAL
SVRMGR> SHUTDOWN IMMEDIATE
# 2. 複製檔案到備份目錄/磁帶
# 單實例範例
CP /u01/oradata/PROD/*.dbf /backup/PROD/cold_20240115/
CP /u01/oradata/PROD/control*.ctl /backup/PROD/cold_20240115/
CP /u01/oradata/PROD/redo*.log /backup/PROD/cold_20240115/
CP $ORACLE_HOME/dbs/initPROD.ora /backup/PROD/cold_20240115/
# 或使用 tar 打包
TAR CVF /dev/rmt/0 /u01/oradata/PROD
# 3. 啟動資料庫
SVRMGR> STARTUP
#!/bin/bash
# cold_backup.sh - 嚴格檢查關閉狀態
sqlplus -s / as sysdba <
非歸檔模式無法進行熱備份,因無法獲取備份期間產生的重做日誌進行恢復。
# 1. 將表空間置於備份模式
ALTER TABLESPACE users BEGIN BACKUP;
# 2. 複製該表空間所有資料檔
CP /u01/oradata/PROD/users01.dbf /backup/PROD/hot_20240115/
# 3. 結束備份模式
ALTER TABLESPACE users END BACKUP;
# 4. 重複對所有需備份表空間
# 建議:一個表空間一個表空間處理,縮短 BEGIN/END 窗口
# 二進制控制檔備份
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/PROD/control_20240115.ctl';
# 或文字追蹤檔 (可編輯重建腳本)
ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/backup/PROD/control_trace_20240115.sql';
BEGIN BACKUP:凍結資料檔頭檢查點 SCN,標記備份模式END BACKUP:更新資料檔頭檢查點,清除備份模式標記| 特性 | 冷備份 | 熱備份 |
|---|---|---|
| 停機需求 | 是 (完整關閉) | 否 |
| 一致性保證 | 完全一致 (SCN 對齊) | 需歸檔日誌恢復至一致 |
| 操作複雜度 | 低 | 中 (表空間級控制) |
| 歸檔模式要求 | 不需要 | 強制 ARCHIVELOG |
| 備份窗口影響 | 業務中斷 | 輕微效能影響 (更多重做) |
| 恢復複雜度 | 極低 (複製回覆即可) | 中 (需應用歸檔日誌) |
| 適用場景 | 維護窗口充足、小型 DB | 7×24 生產環境標配 |
| 檔案類型 | 冷備份 | 熱備份 | 說明 |
|---|---|---|---|
| 資料檔 | 必備 | 必備 (表空間級) | |
| 控制檔 | 必備 | 必備 (每次熱備份後) | 結構變更頻繁 |
| 線上重做日誌 | 建議備份 | 不需備份 | 熱備份靠歸檔恢復 |
| 臨時檔案 | 可略過 | 可略過 | 遺失可重建 |
| 唯讀表空間 | 必備 | 首次熱備份後免備 | SCN 不再變化 |
| 參數檔/密碼檔 | 建議備份 | 建議備份 | 非資料庫管理 |
若資料庫在熱備份模式下異常終止,重啟時會報告需恢復:
-- 1. 識別處於備份模式的檔案
SELECT file#, name FROM v$datafile
WHERE fuzzy = 'YES'; -- 或查 v$backup 表
-- 2. 逐個結束備份模式
ALTER DATABASE DATAFILE '/u01/oradata/PROD/users01.dbf' END BACKUP;
-- 或
ALTER TABLESPACE users END BACKUP;
-- 3. 正常開啟
ALTER DATABASE OPEN;
| 痛點 | OS 熱備份 | RMAN 備份 |
|---|---|---|
| 手動管理 BEGIN/END | 需逐表空間操作,易遺漏 | 自動處理,BACKUP DATABASE 一條命令 |
| 備份驗證 | 無內建驗證 | VALIDATE BACKUPSET / RESTORE VALIDATE |
| 增量備份 | 不支援 | 區塊級增量 |
| 並行/壓縮 | 不支援 | 原生支援 |
| 目錄管理 | 手動記錄 | RMAN 儲存庫/目錄 |
OS 層冷備份是最基礎、最可靠的物理備份手段,適合有維護窗口的環境;OS 層熱備份雖實現零停機,但手動管理複雜、易錯、無增量、無驗證,現代生產環境強烈建議遷移至 RMAN。理解 OS 備份原理對於掌握 RMAN 底層機制、處理特殊恢復場景 (如控制檔全損重建) 仍具核心價值。