Go to main content

Oracle® ZFS Storage Appliance 管理指南,发行版 OS8.8.0

退出打印视图

更新时间: 2018 年 11 月
 
 

NDMP 增量备份

设备支持以上所有备份类型的基于级别的增量备份。为指定级别备份,DMA 通常会指定以下三个环境变量:

可变因素
详细信息
LEVEL
表示备份级别的整数 0 到 9。
DMP_NAME
指定特定的增量备份集。通过指定不同的 DMP_NAME 值,可以同时使用多个级别增量备份集。
UPDATE
指示此备份是否可用作后续增量备份的基础

按定义,级别 N 备份包括使用的 LEVEL 低于 N 的同一个共享资源的同一个备份集(通过 "DMP_NAME" 指定)上次备份以来发生更改的所有文件。级别 0 备份始终包括所有文件。如果 UPDATE 的值为 "y"(默认值),则将记录当前备份,以便级别大于 N 的未来备份使用此备份作为基础。这些变量通常由 DMA 管理,而不需要由管理员直接配置。

以下是一个增量备份调度表样例:

表 71  示例增量备份调度表
日期
详细信息
每月第一天
级别 0 备份。备份包含共享资源中的所有文件。
每月 7 日、14 日和 21 日
级别 -1 备份。备份包含自上次完整(每月)备份以来发生更改的所有文件
每天
级别 2 备份。备份包含自上次级别 1 备份以来发生更改的所有文件

要恢复文件系统在 24 日的状态,管理员通常将 1 日的级别 0 备份恢复到新的共享资源,然后恢复 21 日的级别 1 备份,再恢复 24 日的级别 2 备份。

要实施基于级别的增量备份,设备必须跟踪每个共享资源的级别备份历史记录。对于 "tar" 和 "dump" 备份,级别备份历史记录保留在共享资源元数据中。增量备份会遍历文件系统,并将上一级别备份以来经过修改的文件都包括在内。在恢复时,系统只需恢复备份流中的所有文件。因此,在上面的示例中,可以将 24 日的级别 2 备份恢复到任何文件系统上;即使目标文件系统与文件备份时的文件系统不匹配,也可以恢复该备份流中包含的文件。但是,最佳做法是使用上面所述的过程,从空树开始恢复之前级别的备份来恢复原始文件系统状态。

为了实施高效的基于级别的 "zfs" 类型增量备份,系统将使用一种不同的方法。增量集中的备份不会销毁用于备份的快照,而是将其留在系统上。后续的增量备份使用此快照作为基础,快速确定发生更改的文件系统块,并生成备份流。因此,如果要创建后续的增量备份,就不能销毁 NDMP 服务在备份之后保留的快照。

此行为的另一个重要后果是:为了恢复增量流,文件系统状态必须与其在增量流的基础快照上的状态完全匹配。换言之,要恢复级别 2 备份,文件系统必须与上一个级别 1 备份完成时完全相同。请注意,上述常用过程可保证这一点,因为恢复 24 日的级别 2 备份流时,系统与其在 21 日的级别 1 备份完成时完全相同(因为刚恢复该备份)。

如果试图将增量 "zfs" 备份流恢复到的文件系统的最新快照与该增量流的基础快照不匹配,或者文件系统自该快照之后发生了更改,NDMP 服务将报告错误。可以配置 NDMP 服务以回滚到恢复刚开始之前的基础快照,方法是:指定 NDMP 环境变量 "ZFS_FORCE" 的值 "y",或者配置 NDMP 服务的 "Rollback datasets"(回滚数据集)属性(请参见NDMP 属性和日志)。