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

Oracle RMAN 自動化備份腳本實戰:每日全備、歸檔管理與保留策略

     編輯:Oracle 資料庫基礎

備份需求

  • 每日凌晨 01:00 執行
  • 資料庫全備 + 控制檔 + 歸檔日誌
  • 備份路徑:F:\Oracle\backup\
  • 歸檔備份完成後自動刪除已備份歸檔
  • 保留 14 天,過期自動清除
  • 保留操作日誌供稽核
  • Windows 環境(Linux/Unix 同理,僅調整路徑與排程工具)

RMAN 腳本內容

儲存為 F:\Oracle\script\backup\db_fullbak_JSsbook.rman:

RUN {
  CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
  CONFIGURE CONTROLFILE AUTOBACKUP ON;
  CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK 
    TO 'F:\Oracle\BACKUP\%F';
  ALLOCATE CHANNEL C1 DEVICE TYPE DISK 
    FORMAT 'F:\Oracle\BACKUP\BAK_%U';
  BACKUP DATABASE SKIP INACCESSIBLE
    PLUS ARCHIVELOG FILESPERSET 20
    DELETE ALL INPUT;
  RELEASE CHANNEL C1;
}
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
CROSSCHECK BACKUPSET;
DELETE NOPROMPT OBSOLETE;

關鍵指令解析

指令用途
CONFIGURE RETENTION POLICY設定 14 天復原視窗,過期備份標記為 OBSOLETE
CONTROLFILE AUTOBACKUP每次結構變更自動備份控制檔,災難復原關鍵
BACKUP ... PLUS ARCHIVELOG資料庫全備同時備份歸檔,確保時間點復原完整性
FILESPERSET 20每個備份組最多 20 個檔案,平衡並行度與管理
DELETE ALL INPUT歸檔備份成功後刪除來源歸檔,釋放 FRA 空間
SKIP INACCESSIBLE跳過唯讀/離線表空間,避免備份失敗
CROSSCHECK BACKUPSET同步備份目錄與控制檔/復原目錄記錄
DELETE NOPROMPT OBSOLETE自動清除超過保留策略的備份

部署與排程

1. 建立批次檔 run_backup.bat

@echo off
set ORACLE_SID=YOUR_SID
rman target / cmdfile=F:\Oracle\script\backup\db_fullbak_JSsbook.rman 
  log=F:\Oracle\log\backup_%date:~-4,4%%date:~-7,2%%date:~-10,2%.log

2. Windows 工作排程器設定

  • 觸發條件:每日 01:00
  • 動作:執行 run_backup.bat
  • 權限:使用具有 DBA 權限的 OS 帳號

進階建議

  • CONFIGURE 指令可獨立執行一次:設定寫入控制檔後持久生效,腳本中可移除
  • 多通道平行備份:大型資料庫建立多個 ALLOCATE CHANNEL 提升速度
  • 備份驗證:定期執行 RESTORE VALIDATE DATABASE 確保可還原
  • 異地備份:配合存儲複寫或腳本複製備份組至遠端

自動化備份腳本是 DBA 從「手工作業」邁向「營運自動化」的關鍵一步。妥善規劃保留策略、監控日誌與定期演練還原,才能在災難發生時從容應對。

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