首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 作業系統層備份全解析:冷備份與熱備份的操作流程、優缺點與最佳實踐

     編輯:Oracle 資料庫基礎

OS 層備份的本質區別

作業系統層備份 (OS Backup) 直接複製資料庫實體檔案,與邏輯備份 (EXP/DP) 截然不同:

維度OS 物理備份邏輯備份
備份對象資料檔、控制檔、重做日誌、參數檔SQL 陳述式產生的資料/結構
一致性單位區塊/檔案層面交易/表層面
恢復速度快 (檔案複製 + 可選恢復)慢 (重建物件、索引、統計)
跨平台/版本❌ 通常不支援✅ 支援

冷備份:最簡單、最安全的物理備份

前置條件

  • 資料庫完全正常關閉 (NORMAL/IMMEDIATE/TRANSACTIONAL)
  • ABORT 關閉導致冷備份無效 (需恢復)

必備檔案清單

# 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 <

熱備份:零停機的線上物理備份

強制前提:ARCHIVELOG 模式

非歸檔模式無法進行熱備份,因無法獲取備份期間產生的重做日誌進行恢復。

表空間級熱備份流程

# 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:更新資料檔頭檢查點,清除備份模式標記

冷備份 vs 熱備份深度對比

特性冷備份熱備份
停機需求是 (完整關閉)否
一致性保證完全一致 (SCN 對齊)需歸檔日誌恢復至一致
操作複雜度低中 (表空間級控制)
歸檔模式要求不需要強制 ARCHIVELOG
備份窗口影響業務中斷輕微效能影響 (更多重做)
恢復複雜度極低 (複製回覆即可)中 (需應用歸檔日誌)
適用場景維護窗口充足、小型 DB7×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;

RMAN 取代 OS 熱備份的現代優勢

痛點OS 熱備份RMAN 備份
手動管理 BEGIN/END需逐表空間操作,易遺漏自動處理,BACKUP DATABASE 一條命令
備份驗證無內建驗證VALIDATE BACKUPSET / RESTORE VALIDATE
增量備份不支援區塊級增量
並行/壓縮不支援原生支援
目錄管理手動記錄RMAN 儲存庫/目錄

總結

OS 層冷備份是最基礎、最可靠的物理備份手段,適合有維護窗口的環境;OS 層熱備份雖實現零停機,但手動管理複雜、易錯、無增量、無驗證,現代生產環境強烈建議遷移至 RMAN。理解 OS 備份原理對於掌握 RMAN 底層機制、處理特殊恢復場景 (如控制檔全損重建) 仍具核心價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved