备份基础之完全、增量与差异备份

本文介绍了三种主要的备份方式:完全备份、增量备份和差异备份。详细解释了每种备份方式的工作原理、优缺点,并通过实例展示了如何结合使用这些备份策略。


介绍

 

      如果问一个对计算机备份程序不熟悉的人,他可能会说,备份不过是把计算机上的所有数据,拷贝一份而已。换句话说,如果在星期二晚上做备份,星期三没有更动计算机上的任何数据,那么星期三晚上做的备份,与前一天晚上做的,是完全一样的,这是备份的方式之一,但实在没有必要这样做,要了解备份,我们得先知道备份的种类。

更多信息

 

备份方式:

 

完全备份(Full Backup)

      完全备份,每个档案都会被写进备份中去。如上所述,如果两个时间点备份之间,数据没有任何更动,那么所有备份数据都是一样的。这问题出自备份系统不会检查自上次备份后,档案有没有被更动过;它只是机械性地将每个档案读出、写入,不管档案有没有被修改过。备份全部选中的文件及文件夹,并不依赖文件的存盘属性来确定备份哪些文件。在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存盘属性。

      这是我们不会一味采取完全备份的原因——每个档案都会被写到备份装置上。这表示即使所有档案都没有变动,还是会占据许多存储空间。如果每天变动的档案只有10MB,每晚却要花费100GB的存储空间做备份,这绝对不是个好方法。这也就是推出增量备份的主要原因。

增量备份(Incremental Backup)

      跟完全备份不同,增量备份在做数据备份前会先判断,档案的最后修改时间是否比上次备份的时间来得晚。如果不是的话,那表示自上次备份后,这档案并没有被更动过,所以这次不需要备份。换句话说,如果修改日期的确比上次更动的日期来得晚,那么档案就被更动过,需要备份。 增量备份常常跟完全备份合用(例如每个星期做完全备份,每天做增量备份)差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件。差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,既:备份后不标记为已备份文件,换言之,不清除存盘属性。

      使用增量备份最大的好处在于备份速度:它的速度比完整备份快上许多,同时由于增量备份在做备份前会自动判断备份时间点及文件是否已作改动,所以相对于完全备份其对于节省存储空间也大有益处。增量备份的不足之处在于数据还原的时间较长,效率相对较低,例如,如果您要还原一个备份档案,您必须把所有增量备份的磁盘都找一遍,直到找到为止,如果您要复原整个档案系统,那就得先复原最近一次的完整备份,然后复原一个又一个的增量备份。

      要避免复原一个又一个的递增数据,提升数据的复原的效率,把做法稍微改变一下,就变成了差异备份。

差异备份(Differential Backup)

      差异备份与增量备份一样,都只备份更动过的数据。但前者的备份是累积的—— 一个档案只要自上次完整备份后,曾被更新过,那么接下来每次做差异备份时,这个档案都会被备份(当然,直到下一次完整备份为止)。这表示差异备份中的档案,都是自上次完全备份之后,曾被改变的档案。如果要复原整个系统,那么您只要先复原完全备份,再复原最后一次的差异备份即可。增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件。增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,既:备份后标记文件,换言之,清除存盘属性。跟增量备份所使用的策略一样,您平时只要定期做一次完全备份,再定时做差异备份即可。

 

      所以,差异备份的大小,会随着时间过去而不断增加(假设在完全备份间,每天修改的档案都不一样)。以备份空间与速度来说,差异备份介于递增备份与完全备份之间;但不管是复原一个档案或是整个系统,速度通常比完全备份、增量备份快(因为要搜寻/复原的磁盘数目比较少)。

      基于这些特点,差异备份是值得考虑的方案,增量备份与差异备份技术也是目前所有企业级备份软件的必备功能。


backup_s.jpg

 

备份组合实例:

 

完全备份与差异备份

      以每周数据备份计划为例,我们可以在星期一进行完全备份,在星期二至星期五进行差异备份。如果在星期五数据被破坏了,则只需要还原星期一完全的备份和星期四的差异备份。这种策略备份数据需要较多的时间,但还原数据使用较少的时间。

完全备份与增量备份

      还是以每周数据备份为例,在星期一进行完全备份,在星期二至星期五进行增量备份。如果在星期五数据被破坏了,则需要还原星期一正常的备份和从星期二至星期五的所有增量备份。这种策略备份数据需要较多的时间,但还原数据使用较少的时间。

 

备份方式比较

 

完全、增量与差异备份的简单比较如下:

                        

 

完全备份

增量备份

差异备份

备份方法

备份所有文件

备份自从上一次备份后的全部改动和新文件

备份自从上一次完全备份后的全部改动和新文件

备份速度

最慢

最快

较快

恢复速度

最快

最慢

较快

空间要求

最多

最少

较多

优势

最快的恢复速度

仅需要上一次完全备份就能恢复

较快的备份速度

较少的空间需求

没有重复的备份文件

更快且简单的恢复(相比增量)

仅需要最近一次完全备份和最后一次差异备份就能恢复

劣势

最多的空间需求

大量重复的备份

最慢的恢复速度

恢复需要最近一次完全备份和全部增量备份

较慢的备份速度

仍会存在许多重复的备份文件

 原文出处:EMC中文支持论坛https://community.emc.com/go/chinese  

<think>我们正在讨论备份策略:完全备份、累计增量备份差异增量备份。根据引用内容,我们可以总结如下: 1. **完全备份**:备份所有数据。 2. **累计增量备份**:在完全备份之后,每次备份自上次完全备份以来所有变化的数据。 3. **差异增量备份**:每次备份自上一次备份(无论完全备份还是增量备份)以来变化的数据。 但注意引用[3]中提到的Oracle增量备份的两种类型: - **差异增量备份**:备份自上一次同级别的备份或更高级别备份以来变化的数据块。 - **累积增量备份**:备份自上一次上一级备份以来变化的数据块。 这里我们结合引用内容进行详细解释。 ### 一、三种备份原理 #### 1. 完全备份 (Full Backup) - **原理**:备份选定的所有数据,无论之前是否备份过。 - **特点**:备份数据量大,占用存储空间多,备份时间长,但恢复时只需一份最新备份即可。 #### 2. 累计增量备份 (Cumulative Incremental Backup) - **原理**:基于最近一次完全备份备份自该完全备份以来所有变化的数据。 - **特点**:每次备份数据量会随着时间增加而增加(因为包含自完全备份以来的所有变更),但恢复时只需要完全备份和最近一次累计增量备份。 #### 3. 差异增量备份 (Differential Incremental Backup) - **原理**:备份自上一次备份(可以是完全备份增量备份)以来变化的数据。 - **特点**:每次备份数据量相对较小(只包含上次备份后的变更),但恢复时需要完全备份和所有后续的增量备份。 ### 二、区别对比 | **备份类型** | **备份内容** | **恢复所需备份集** | **备份空间** | **恢复时间** | |--------------------|------------------------------------------------|--------------------------------|------------|------------| | **完全备份** | 所有数据 | 最新完全备份 | 大 | 短 | | **累计增量备份** | 自最近一次完全备份以来的所有变化数据 | 最近完全备份 + 最近一次累计增量备份 | 中 | 中 | | **差异增量备份** | 自上一次备份完全增量)以来的变化数据 | 完全备份 + 所有后续增量备份 | 小(单次) | 长 | ### 三、工作流程示例 假设我们有一个备份计划:周日完全备份,周一至周六每天备份一次。 - **场景数据变化**: - 周日:数据块 A, B, C - 周一:修改 A -> A1 - 周二:修改 B -> B1 - 周三:修改 C -> C1 #### 1. 使用累计增量备份 - 周日:完全备份 (A, B, C) - 周一:备份自周日以来的变化 -> A1 - 周二:备份自周日以来的变化(包括A1和B1)-> A1, B1 - 周三:备份自周日以来的变化(包括A1, B1, C1)-> A1, B1, C1 **恢复周三数据**:只需周日的完全备份和周二的累计增量备份(因为周三的备份包含了自周日以来所有变化,但注意周三的备份已经包含所有变化,所以恢复时只需要完全备份和周三的累计增量备份)。 #### 2. 使用差异增量备份 - 周日:完全备份 (A, B, C) - 周一:备份自周日以来的变化 -> A1 - 周二:备份自周一以来的变化 -> B1 - 周三:备份自周二以来的变化 -> C1 **恢复周三数据**:需要周日的完全备份、周一的增量备份(A1)、周二的增量备份(B1)和周三的增量备份(C1)。 ### 四、优缺点分析 - **完全备份**: - 优点:恢复简单快速。 - 缺点:备份数据量大,占用存储空间多,备份时间长。 - **累计增量备份**: - 优点:恢复相对简单(只需两个备份集),备份数据量比完全备份小。 - 缺点:随着时间推移,每次备份数据量会越来越大(因为包含自完全备份以来的所有变化)。 - **差异增量备份**: - 优点:每次备份数据量小,备份速度快,占用存储空间少(单次备份)。 - 缺点:恢复时需要所有备份集(完全备份+所有增量备份),恢复时间长且复杂。 ### 五、选型建议 - **恢复时间要求高**:选择完全备份或累计增量备份。 - **存储空间有限**:选择差异增量备份。 - **备份频率高**:差异增量备份更合适(因为每次备份量小)。 - **长期保留**:定期做完全备份,中间用增量备份。 ### 六、引用内容的关联 - 引用[1]描述了累计增量备份:每次备份完全备份差异。 - 引用[2]提到差异备份(即累计增量备份)在恢复时只需完全备份和最后一次差异备份,但数据量会逐渐增大。 - 引用[3]区分了差异增量备份和累积增量备份(在Oracle中): - 差异增量备份备份自上一次同级或更高级备份以来的变化。 - 累积增量备份备份自上一次上一级备份以来的变化。 注意:在Oracle中,备份有级别(0级为完全备份,1级为增量备份)。例如: - 差异增量备份(级别1):备份自上一次1级或0级备份以来的变化。 - 累积增量备份(级别1):备份自上一次0级备份以来的变化。 ### 七、总结图示 ```plaintext 时间轴:周日 周一 周二 周三 完全备份:A,B,C 累计增量: 周一:A1(自周日以来变化) 周二:A1,B1(自周日以来变化) 周三:A1,B1,C1(自周日以来变化) 差异增量: 周一:A1(自周日以来变化) 周二:B1(自周一以来变化) 周三:C1(自周二以来变化) ``` §§相关问题§§ 1. 如何选择适合企业环境的备份策略? 2. 增量备份数据备份中的具体实现方式有哪些? 3. 备份策略中如何平衡存储成本和恢复时间目标(RTO)?</think>### 完全备份、累计增量备份差异增量备份原理及区别详解 --- #### **一、核心原理对比** | **备份类型** | **原理** | **备份内容** | **恢复流程** | |--------------------|--------------------------------------------------------------------------|---------------------------------------|----------------------------------| | **完全备份** | 完整复制数据集的所有数据 | 100% 数据 | 直接使用单份备份恢复 | | **累计增量备份** | 基于**最近一次完全备份**,备份所有新变化的数据 | 自完全备份后的**全部增量数据** | 完全备份 + 最新累计增量备份 | | **差异增量备份** | 基于**上一次任意备份**,仅备份上次备份后的新变化数据 | 自**上次备份后**的变化数据 | 完全备份 + 所有增量备份链 | > 💡 **关键区别**: > - 累计增量始终以完全备份为基准 > - 差异增量以最近一次备份完全/增量)为基准[^1][^3] --- #### **二、工作流程示例** 假设周日完全备份,每天数据变化: - 周一:新增文件A - 周二:修改文件B - 周三:删除文件C ##### **1. 完全备份** ```mermaid graph LR 周日[周日完全备份] --> |备份完整数据| Full[数据镜像] ``` ##### **2. 累计增量备份** ```mermaid graph LR 周日[周日完全备份] --> 周一 周一[周一累计增量] --> |备份A| A[文件A] 周日 --> 周二 周二[周二累计增量] --> |备份A+B| AB[A+B] 周日 --> 周三 周三[周三累计增量] --> |备份A+B| AB2[A+B] // 删除操作不备份数据 ``` > **特点**:每次备份都包含自完全备份后的所有变更[^1] ##### **3. 差异增量备份** ```mermaid graph LR 周日[周日完全备份] --> 周一 周一[周一差异增量] --> |备份A| A[文件A] 周一 --> 周二 周二[周二差异增量] --> |仅备份B| B[文件B] 周二 --> 周三 周三[周三差异增量] --> |记录C删除| C[元数据变更] ``` > **特点**:每次只备份上次备份后的增量[^3] --- #### **三、核心差异分析** | **维度** | **完全备份** | **累计增量备份** | **差异增量备份** | |------------------|-------------------|-------------------------|-------------------------| | **备份空间** | 最大(每次全量) | 中等(增量累积增长) | 最小(单次增量最小) | | **备份速度** | 最慢 | 中等 | 最快 | | **恢复复杂度** | 最简单(单文件) | 中等(需2个文件) | 最复杂(需完整备份链) | | **典型应用** | 初始备份/月度备份 | 周级备份 | 日常备份 | | **数据冗余** | 高冗余 | 中等冗余 | 低冗余 | > 📊 **空间增长示例**(假设每日变化5%): > - **完全备份**:每天占用100%空间 > - **累计增量**:第7天占用 $100\% + 5\%×7 = 135\%$ > - **差异增量**:第7天占用 $100\% + 5\% = 105\%$(单次增量)[^2] --- #### **四、恢复流程对比** 1. **完全备份恢复** ```bash restore(full_backup) # 直接恢复完整数据 ``` 2. **累计增量恢复** ```bash restore(full_backup) → restore(latest_cumulative) # 两步完成 ``` 3. **差异增量恢复** ```bash restore(full_backup) → restore(inc1) → restore(inc2) → ... → restore(incN) # 链式恢复 ``` > ⚠️ **差异增量风险**:任一增量备份损坏将导致整个备份链失效[^2] --- #### **五、选型建议** | **场景** | **推荐策略** | **原因** | |---------------------------|-------------------|--------------------------------------| | 系统初始备份 | 完全备份 | 建立完整基准点 | | 频繁日常备份(如数据库) | 差异增量备份 | 备份速度快,存储压力小 | | 中长期备份(1-2周) | 累计增量备份 | 恢复时操作简单,避免链式依赖 | | 关键系统容灾 | 完全+差异增量组合 | 平衡恢复速度存储成本 | > 💎 **最佳实践**:采用 **完全备份(周) + 差异增量(日)** 组合策略[^2] --- #### **六、技术演进优化** 1. **合成完全备份**: 定期将**完全备份+增量备份**合并为新完全备份,减少恢复链长度 $$ \text{NewFull} = \text{OldFull} \cup \sum_{i=1}^{n} \text{Inc}_i $$ 2. **永久增量备份**: 始终基于初始完全备份,后续只做增量,通过元数据索引快速恢复 3. **云存储优化**: 利用对象存储的版本控制功能实现零成本增量备份(如AWS S3 Versioning) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值