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

Oracle 聯機備份 (Online Backup) 核心原理與實施全流程:ARCHIVELOG 模式下的數據零損失保障

     編輯:Oracle 資料庫基礎

前言:7x24 業務不停機備份的基石

聯機備份要求數據庫運行於 ARCHIVELOG 模式,在業務持續寫入時完成備份。本文系統講解核心原理 (Redo/Archive/Checkpoint 協同)、切換步驟、Begin/End Backup 機制、腳本最佳實踐,並對比 DB2 UDB 機制。

一、 核心前提:ARCHIVELOG 模式

  • Redo Log 循環寫入,必須歸檔 保留歷史,否則覆蓋導致不可恢復
  • 啟用自動歸檔參數:
    LOG_ARCHIVE_START = TRUE
    LOG_ARCHIVE_DEST = /u01/arch
    LOG_ARCHIVE_FORMAT = arch_%t_%s_%r.arc
    LOG_ARCHIVE_DUPLEX_DEST = /u02/arch  -- 雙份歸檔,防單點故障
    LOG_ARCHIVE_DEST_N = 'LOCATION=/u03/arch MANDATORY'  -- 9i+ 多目標

二、 聯機備份 vs 脫機備份 核心差異

三、 核心機制:Checkpoint SCN 與分塊變更追蹤

  1. ALTER TABLESPACE ts BEGIN BACKUP →
    • 該表空間所有數據文件文件頭凍結 Checkpoint SCN (Start SCN)
    • 緩存中屬於該表空間的髒塊 首次修改時寫入完整塊映像到 Redo (非僅變更向量),導致 Redo 暴增
  2. 備份過程中:業務正常讀寫,Redo 正常產生並歸檔
  3. ALTER TABLESPACE ts END BACKUP →
    • 文件頭更新 Checkpoint SCN (End SCN)
    • 恢復時:從 Start SCN 開始應用 Redo,至 End SCN 結束,實現塊級一致性

四、 實施標準流程

-- 1. 切換到 ARCHIVELOG (僅首次)
SHUTDOWN IMMEDIATE
STARTUP MOUNT
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ARCHIVE LOG LIST;  -- 驗證

-- 2. 聯機備份腳本模板 (每個表空間串行)
-- 針對每個表空間 TS:
ALTER TABLESPACE TS BEGIN BACKUP;
! cp /u01/oradata/TS/*.dbf /backup/TS/   -- OS 複制/rman backup
ALTER TABLESPACE TS END BACKUP;

-- 3. 關鍵:備份控制文件 (結構變更後必備)
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control_YYYYMMDD.ctl';
-- 或 RMAN: BACKUP CURRENT CONTROLFILE;

-- 4. 歸檔日志備份 (同步/異步複製到異地)
! rsync -av /u01/arch/ /remote/arch/
! rsync -av /u02/arch/ /remote/arch2/

五、 關鍵最佳實踐

維度脫機備份 (Cold)聯機備份 (Hot)
數據庫狀態SHUTDOWNOPEN (ARCHIVELOG)
備份單位整個數據庫表空間級 (部分或全部)
所需文件所有數據文件、控制文件、參數文件數據文件、控制文件 (Redo/Archive 另備)
一致性SCN 完全一致需 Redo/Archive 前滾恢復一致性
業務影響完全中斷零中斷,極微小性能影響

六、 DB2 UDB 聯機備份機制對比 (拓展視野)

  • 日志類型:Active Log (未提交/未刷盤) → Online Archive Log (已提交同目錄) → Offline Archive Log (移動異地)
  • 關鍵參數:LOGFILSIZ, LOGPRIMARY, LOGSECOND, NEWLOGPATH, MIRRORLOGPATH, OVERFLOWLOGPATH, USEREXIT, BLK_LOG_DSK_FUL
  • 啟用歸檔:UPDATE DB CFG USING LOGRETAIN ON (需重啟實例)
  • 鏡像日志:MIRRORLOGPATH 防單點故障,寫入失敗只報警不阻塞主路徑
  • 恢復歷史文件 (RHF):每次備份/恢復/前滾/DDL 自動記錄,支持時間點恢復 (PITR)

七、 總結

聯機備份本質 = **凍結 Checkpoint SCN + 全塊日志記錄 + 歸檔日志保留 + 異地多副本**。掌握 BEGIN/END BACKUP 機制、控制文件備份節點、歸檔多路復用、腳本最小化窗口,即可構建 7x24 零數據損失備份體系。現代生產環境強烈建議使用 RMAN 替代 OS 複制,享受增量備份、塊變更追蹤、自動備份優化、恢復驗證等企業級特性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
原則執行要點
最小化 BEGIN/END 窗口OS 複制命令緊跟 BEGIN 後,END 緊隨複制完成,減少全塊日志量
避開業務高峰雖可線上,但全塊日志增加 I/O,建議低峰期
SYSTEM/UNDO 表空間優先核心表空間備份失敗 = 整庫不可恢復
結構變更即備份控制文件ADD/DROP TABLESPACE、ALTER TABLE ADD COLUMN 等
多路復用歸檔LOG_ARCHIVE_DUPLEX_DEST 或 LOG_ARCHIVE_DEST_N 至少兩份不同存儲