針對中小型 Oracle 資料庫(<10GB),制定每日自動化備份策略,滿足以下目標:
D:\backup\儲存為 E:\OracleScript\backup\database_backup_JSsweb.rman:
RUN {
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';
ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U';
BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10
PLUS ARCHIVELOG FILESPERSET 20
DELETE ALL INPUT;
RELEASE CHANNEL CH1;
}
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
CROSSCHECK BACKUPSET;
DELETE NOPROMPT OBSOLETE;
| 參數 | 說明 |
|---|---|
SKIP INACCESSIBLE | 跳過不可讀的資料檔(如已刪除或移動的離線檔案),避免備份中斷 |
FILESPERSET 10/20 | 控制每個備份集包含的檔案數,平衡並行度與恢復速度 |
PLUS ARCHIVELOG ... DELETE ALL INPUT | 備份歸檔日誌並自動刪除已備份的輸入歸檔,釋放 FRA 空間 |
CONTROLFILE AUTOBACKUP | 每次結構變更自動備份控制檔,災難恢復關鍵 |
RETENTION POLICY ... 7 DAYS | 基於恢復視窗的保留策略,確保可恢復至過去 7 天任意時間點 |
CROSSCHECK / DELETE OBSOLETE | 同步目錄與實際檔案,清理過期備份 |
儲存為 E:\OracleScript\backup\database_backup_JSsweb.bat:
@echo off
set ORACLE_SID=JSsweb
rman target / msglog E:\OracleScript\backup\logs\%date:~0,10%.log cmdfile=E:\OracleScript\backup\database_backup_JSsweb.rman
E:\OracleScript\backup\database_backup_JSsweb.batALLOCATE CHANNEL CH1, CH2...)提升並行度此腳本已在生產環境穩定運行,適合中小型資料庫的「設定後即忘記」式自動化備份。隨著業務增長,請持續評估並演進備份架構,確保 RPO/RTO 持續滿足業務需求。