rman差异增量及累积增量的区别

本文详细介绍了RMAN中差异增量和累积增量的概念及其备份策略。通过一周的备份案例对比两种方式,并提供了具体的备份命令和脚本,帮助读者理解如何制定有效的数据库备份计划。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在rman增量备份中,有差异增量和累积增量的概念

1、概念

差异增量(Differential):是备份低级别或者相同级别备份以来变化的所有数据块,顾名思议,也就是要备前期备份以来的差异数据块

 

若前面的备份同时存在低级别和相同级别,则优先选择备份从最近的低级别(n-1)以来变化的数据块,

若没有n-1级别备份,则选择备份同级别备份以来变化的数据块,

若没有同级别的备份,则备份更低级别以来(n-x)变化的数据

若前面同时有n-1级别和相同级别,则备份相同级别以来变化的数据


累积增量(Cumulative):是备份n-1级别(上级)或更低级别以来变化的所有数据块

 

若前面的备份同时存在低级别和n-1级别,则优先选择备份从n-1级别以来变化的数据块

若没有n-1级别,则备更低级别的(n-x)

 

2、备份策略及恢复

以rman多级增量备份来作为备份策略例子:

增量备份都需要一个0级备份来作为基础,0级备份与全备份的区别在于0级可以用来增量恢复,而全备份则不可以。

备份策略:

eg:我们对一星期做如下备份策略

案例
星期                  差异增量             累积增量

星期天                0级                 0级

星期一                2级                 2级

星期二                2级                 2级

星期三                1级                 1级

星期四                2级                 2级

星期五                2级                 2级

星期六                2级                 2级

星期天                0级                 0级

 

 

对于差异增量,周一的二级备从周日到周一变化的数据 (没有n-1级,也没有同级别)

            周二的二级备从周一到周二变化的数据 (没有n-1级,有同级别)

            周三的一级备从周日到周三变化的数据 (没有n-1级,有同级别)

            周四的二级备从周三到周四变化的数据 (有n-1级)

            周五的二级备从周四到周五变化的数据  (有n-1级,有同级别)

            周六的二级备从周五到周六变化的数据  (有n-1级,有同级别)

 

如图:

 关于rman差异增量及累积增量的区别明白清晰版(50%原创)

 

假如周六数据库需要恢复(周五的二级备份完毕,未备份周六的),那么差异增量只需要使用星期天的0级,星期三的一级,星期四、五的二级加归档日志就可以完全恢复

 

对于累积增量,周一的二级备从周日到周一变化的数据 (没有n-1级,有更低级别)

            周二的二级备从周日到周二变化的数据 (没有n-1级,有更低级别)

            周三的一级备从周日到周三变化的数据 (有n-1级)

            周四的二级备从周三到周四变化的数据 (有n-1级)

            周五的二级备从周三到周五变化的数据 (有n-1级)

            周六的二级备从周三到周六变化的数据 (有n-1级)

如图示:

 

关于rman差异增量及累积增量的区别明白清晰版(50%原创)

 

 

假如周六数据库需要恢复(周五的二级备份完毕,未备份周六的),累积增量则需要星期天的0级,周三的一级,星期五的二级加归档日志即可进行完全恢复

 

以上是一个星期的备份策略,如果做长期的备份策略则只需要把备份的时间延长即可得到新的备份策略,具体需要看自己备份及恢复能够接受的程度而顶,见最后的备份策略典型备份命令如下:

零级备份
backup incremental level 0 database;
一级差异增量
backup incremental level 1 database;
一级累计增量
backup incremental level 1 cumulative database;

备份策略典型案例:

每半年做一个数据库的全备份(包括所有的数据和只读表空间)
每一个月做一次零级备份(不包含只读表空间)
每个星期做一次一级备份
每天做一次二级备份

任何数据库的更改需要重新同步CATALOG目录并重新备份(如添加数据文件)或重新备份(如修改表空间为只读)
建议备份一段时间归档日志和定期备份归档到到磁带上

全库备份脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup full tag ‘dbfull’ format ‘/u01/oradata/backup/full%u_%s_%p’ database
include current controlfile;
sql ‘alter system archive log current’;
backup filesperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
release channel c2;
release channel c3;
}

零级备份脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 tag ‘db0’ format ‘/u01/oradata/backup/db0%u_%s_%p’
database skip readonly;
sql ‘alter system archive log current’;
backup filesperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
release channel c2;
release channel c3;
}


一级备份脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 1 tag ‘db1’ format ‘/u01/oradata/backup/db1%u_%s_%p’
database skip readonly;
sql ‘alter system archive log current’;
backup filesperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
release channel c2;
release channel c3;
}

如果按照以上备份策略,则每天的所需要备份的数据量只有一天的改变量。而做恢复时最多要恢复当月的一个零级备份+三个一级备份+6个二级备份+当天的归档 文件。如果不能接受这样的恢复时间,可以减少零级备份之间的时间间隔。在每次备份后,原则上在该备份点之前的归档日志就可以删除掉了,但是为了进一步的安 全以及日后需要(如使用LOGMNR查找所需信息),建议有条件的话,归档日志保存到能够接受的时间点,可以保存在磁带等廉价存取设备上。


转载于:https://my.oschina.net/u/2003855/blog/333294

<think>好的,用户想了解Oracle RMAN增量备份的使用教程和配置示例。首先,我需要回忆一下RMAN增量备份的基本概念。根据引用[1],增量备份分为差异(Differential)和累积(Cumulative)两种类型。用户可能对这两者的区别不太清楚,需要详细解释。 接下来,配置增量备份需要设置备份策略,比如设置备份级别。引用[3]提到使用BACKUP ... FOR RECOVER OF COPY WITH TAG命令,这可能涉及增量更新备份策略,这个策略可以结合镜像副本和增量备份来减少恢复时间。 然后,用户可能需要具体的配置步骤。例如,如何开启控制文件的自动备份,配置备份保留策略,以及如何安排全量备份和增量备份的任务。引用[4]提到增量备份的大小取决于数据变化,所以用户需要了解如何有效管理备份存储。 还要注意不同的备份级别,0级和1级的区别。0级是全备份,而1级是增量备份。根据引用[2],差异备份和累积备份的命名可能有混淆,需要明确说明。差异备份只备份自上次同级或更低级别备份以来的变化,而累积备份则备份自上次更低级别以来的所有变化。 另外,恢复过程也是关键。引用[1]指出在恢复时,可以使用镜像拷贝加增量备份的方式,这可能比传统方法更高效。因此,在教程中需要包含恢复步骤的示例,比如如何还原并使用增量备份进行恢复。 可能还需要考虑实际案例,如引用[5]中的迁移案例,虽然环境不同,但配置方法是相似的。用户可能希望看到从Windows到Linux的迁移示例,但需要简化成通用步骤。 最后,用户可能有疑问如何选择差异累积备份,如何优化备份策略,处理常见错误等。因此,相关问题部分要涵盖这些方面,帮助用户深入理解。 需要确保回答结构清晰,步骤明确,语法正确,使用中文,并正确引用来源。同时生成的相关问题要覆盖用户可能进一步询问的方向,比如性能优化、恢复步骤、策略对比等。</think>### Oracle RMAN增量备份使用教程 #### 一、增量备份基础概念 1. **增量备份类型** - *差异备份 (Differential)*:仅备份自**上一次同级或更低级别备份**以来更改的数据块[^2]。 - *累积备份 (Cumulative)*:备份自**上一次更低级别备份**以来所有更改的数据块[^2]。 - 示例:若已有0级备份(全量),1级差异备份仅记录自最近0级或1级备份后的变化,而1级累积备份记录自最近0级后的所有变化。 2. **备份级别** - 0级:全量备份,是增量备份的基础。 - 1级:增量备份,依赖0级备份。 #### 二、配置增量备份步骤 1. **启用控制文件自动备份** ```sql RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; ``` 确保备份包含控制文件,避免恢复时元数据丢失。 2. **设置备份保留策略** ```sql RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 3; ``` 保留最近3份备份,自动清理旧文件。 3. **执行0级全量备份** ```sql RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE; ``` 生成基础备份,后续增量基于此。 4. **执行1级增量备份** - *差异备份*(默认类型): ```sql RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE; ``` - *累积备份*: ```sql RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE; ``` 5. **增量更新备份策略(推荐)** 结合镜像副本与增量备份,缩短恢复时间[^3]: ```sql -- 创建初始镜像副本 RMAN> BACKUP AS COPY DATABASE TAG 'FULL_COPY'; -- 每日增量更新 RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'FULL_COPY' DATABASE; ``` #### 三、恢复示例 1. **还原数据文件镜像副本** ```sql RMAN> RESTORE DATABASE FROM TAG 'FULL_COPY'; ``` 2. **应用增量备份** ```sql RMAN> RECOVER DATABASE; ``` RMAN自动查找并应用所需的增量备份块[^1]。 #### 四、关键注意事项 1. **备份频率** - 0级备份建议每周执行,1级备份每日执行。 - 累积备份占用更多空间但恢复更快,差异备份反之[^4]。 2. **跨平台迁移** 增量备份可用于跨操作系统迁移(如Windows→Linux),需注意文件格式转换[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值