Oracle RMAN 增量备份策略
Oracle RMAN 增量备份策略
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
RMAN 增量备份减少数据量[1]:
类型:
- Level 0:全备基线
- Level 1 差异:自上次 0 或 1
- Level 1 累积:自上次 0
详细见:Oracle RMAN 备份恢复。
2. Block Change Tracking
2.1 启用
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
USING FILE '/u01/oradata/bct.f';
2.2 查看
SELECT filename, status, bytes FROM v$block_change_tracking;
2.3 性能
- 增量备份更快
- 仅扫描变化块
3. 备份策略
3.1 Level 0
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG;
3.2 Level 1 差异
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
3.3 Level 1 累积
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
4. 调度策略
4.1 周策略
# crontab
0 2 * * 0 /u01/scripts/rman_level0.sh # 周日
0 2 * * 1-6 /u01/scripts/rman_level1.sh # 周一至六
4.2 月策略
1 号:Level 0
2-31 号:Level 1
5. 增量更新备份
5.1 概述
- 增量合并到全备
- 避免重复全备
- 节省空间
5.2 配置
RMAN> BACKUP INCREMENTAL LEVEL 1
FOR RECOVER OF COPY WITH TAG 'incr_update'
DATABASE;
RMAN> RECOVER COPY OF DATABASE WITH TAG 'incr_update';
6. 压缩
RMAN> CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';
RMAN> BACKUP AS COMPRESSED BACKUPSET INCREMENTAL LEVEL 0 DATABASE;
详细见:Oracle RMAN 压缩与加密。
7. 并行
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/u01/backup/%U';
RMAN> CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/u02/backup/%U';
8. 恢复
8.1 完全恢复
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;
8.2 不完全恢复
RMAN> RUN {
SET UNTIL TIME "TO_DATE('2026-07-21 15:00:00', 'YYYY-MM-DD HH24:MI:SS')";
RESTORE DATABASE;
RECOVER DATABASE;
}
SQL> ALTER DATABASE OPEN RESETLOGS;
9. 验证
9.1 备份验证
RMAN> BACKUP VALIDATE DATABASE;
RMAN> RESTORE DATABASE VALIDATE;
9.2 列表
RMAN> LIST BACKUP SUMMARY;
RMAN> LIST BACKUP BY COMPLETION TIME;
10. 维护
10.1 清理
RMAN> CROSSCHECK BACKUP;
RMAN> DELETE EXPIRED BACKUP;
RMAN> DELETE OBSOLETE;
10.2 保留策略
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
11. 监控
11.1 备份历史
SELECT
bs_key,
bs_type,
completion_time,
bytes / 1024 / 1024 AS mb
FROM v$backup_set
WHERE completion_time > SYSDATE - 7
ORDER BY completion_time DESC;
11.2 长操作
SELECT
sid,
opname,
sofar,
totalwork,
ROUND(sofar / totalwork * 100, 2) AS pct,
time_remaining
FROM v$session_longops
WHERE opname LIKE 'RMAN%';
12. 常见坑与排错
12.1 增量慢
-- 1. BCT 启用
-- 2. 减少 Level 0
-- 3. 压缩
12.2 ORA-19809
-- FRA 满
RMAN> DELETE OBSOLETE;
ALTER SYSTEM SET db_recovery_file_dest_size = 1T;
12.3 ORA-19625
-- 文件不存在
RMAN> CROSSCHECK BACKUP;
RMAN> DELETE EXPIRED BACKUP;
13. 最佳实践
- BCT 启用:增量快
- 周日全备:基线
- 平日增量:节省
- 压缩:空间
- 并行:性能
- 保留 7 天:恢复
- 验证备份:可靠
- 监控进度:及时
- 定期演练:可行
- 自动化:效率
14. 参考资料
[1] Oracle Database Backup and Recovery User’s Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/