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;
}

它做了什么?(超级关键)

  1. 第一天:创建一个镜像副本(全备)
  2. 第二天
    • 先把昨天的增量合并进全备
    • 再打今天新的增量
  3. 第三天及以后
    • 永远是:合并增量 → 生成新增量
  4. 最终效果
    • 你永远只有一份全备 + 一份增量
    • 但全备每天都被更新到最新状态
    • 恢复时不需要套娃恢复 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 = 增量更新(合并增量到全备)
  • 增量更新 = 每天都拥有最新全备

posted @ 2026-04-09 23:06  wuyingchun1987  阅读(8)  评论(0)    收藏  举报