RMAN 增量备份 + 增量更新(增量合并)最实用详解
RMAN 增量备份 + 增量更新(增量合并)最实用详解
你要的增量备份、增量更新(合并增量),我用最简单、生产直接用的方式讲清楚,一看就懂、一用就对。
一、先搞懂 3 个核心概念
1. 级别 0 备份 = 基础全备
backup incremental level 0 database;
- 相当于全量备份
- 增量备份必须依赖它
2. 级别 1 备份 = 增量备份
backup incremental level 1 database;
- 只备份变化的数据块
- 速度快、体积小
3. 增量更新(增量合并)= 把增量合并到全备
最终效果:每天都拥有一个“最新全备”,但备份速度超级快!
这是生产最推荐的备份策略。
二、增量更新(合并备份)命令详解 ✅
命令结构
run {
recover copy of database with tag 'daily_backup';
backup incremental level 1 for recover of copy with tag 'daily_backup' database;
}
它做了什么?(超级关键)
- 第一天:创建一个镜像副本(全备)
- 第二天:
- 先把昨天的增量合并进全备
- 再打今天新的增量
- 第三天及以后:
- 永远是:合并增量 → 生成新增量
- 最终效果:
- 你永远只有一份全备 + 一份增量
- 但全备每天都被更新到最新状态
- 恢复时不需要套娃恢复 N 多增量
- 恢复速度 = 恢复全备 + 一点点日志
三、完整生产脚本(直接用)
增量更新 + 归档 + 压缩 + 清理
run {
run {
# 1. 检查备份、归档是否存在
crosscheck backup;
crosscheck archivelog all;
# 2. 删除失效的(磁盘找不到的、损坏的)
delete noprompt expired backup;
delete noprompt expired archivelog all;
# 3. 合并增量 → 更新全备(昨天增量合并到全备)
recover copy of database with tag 'daily_backup';
# 4. 今天增量备份(压缩+格式)
backup as compressed backupset
incremental level 1
for recover of copy
with tag 'daily_backup'
database
format '/backup/rman/db_%d_%T_%U.bkp';
# 5. 备份归档(备份完就删)
backup as compressed backupset
archivelog all
delete all input
format '/backup/rman/arc_%d_%T_%U.bkp';
# 6. 备份控制文件
backup current controlfile
format '/backup/rman/cf_%F.bkp';
# 7. 备份 spfile
backup spfile
format '/backup/rman/spfile_%d_%T_%U.bkp';
# 8. 删除过期备份(按保留策略自动删老的)
delete noprompt obsolete;
}
}
四、最关键的区别(一定要懂)
1. 普通增量备份
全备 → 增1 → 增2 → 增3 → 增4...
恢复时:
恢复全备 → 应用所有增量 → 才能打开库
慢、麻烦、风险高。
2. 增量更新(合并增量)
每天把增量合并进全备
永远只有:
最新全备 + 最新增量
恢复时:
恢复最新全备 → 应用一点点归档 → 立即打开库
最快、最安全、生产标准方案
五、一句话总结
- level 0 = 基础全备
- level 1 = 增量备份
- recover copy of database = 增量更新(合并增量到全备)
- 增量更新 = 每天都拥有最新全备
浙公网安备 33010602011771号