Oracle Recovery Manager (RMAN) 是 Oracle 官方提供的備份恢復工具,支援完整、增量、壓縮、加密備份,並可排程自動執行,解決 DBA 每日手動備份的負擔與風險。
| 方式 | 類型 | 恢復能力 | 特點 |
|---|---|---|---|
| Export/Import | 邏輯備份 | 物件級,至匯出時間點 | 可跨版本遷移,無法時間點恢復 |
| 冷備份 | 物理備份 | 關閉時點 | 簡單、需停機、檔案級複製 |
| 熱備份 | 物理備份 | 任意時間點 (需歸檔模式) | 不停機、配合歸檔日誌實現 PITR |
| RMAN | 物理備份 | 任意時間點、區塊級恢復 | 增量備份、區塊變更追蹤、腳本自動化 |
DBMS_JOB 或 DBMS_SCHEDULER 定時執行備份腳本。RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT '/backup/%d_%T_%s_%p.bak';
BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG;
DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 7 DAYS;
RELEASE CHANNEL c1;
}
BEGIN
DBMS_JOB.SUBMIT(
job => :jobno,
what => 'rman_backup_script;',
next_date => SYSDATE + 1/24, -- 每小時
interval => 'SYSDATE + 1/24');
COMMIT;
END;
/
-- 或使用 DBMS_SCHEDULER (10g+ 推薦)
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'DAILY_RMAN_BACKUP',
job_type => 'STORED_PROCEDURE',
job_action => 'rman_backup_script',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=HOURLY',
enabled => TRUE);
END;
/
V$RMAN_STATUS、V$BACKUP_SET 確認備份成功與耗時。