如何验证恢复?

如何验证恢复?

您将使用什么工具来验证恢复的文件结构是否完整?我的环境是 Windows Server 2008 文件服务器。(我们使用磁带进行备份,但这并不重要。)

我正在寻找一种可以实现以下功能的工具:

  • 记录指定目录下所有文件和文件夹的名称
  • 可选择计算遇到的每个文件的校验和
  • 以人类可读的格式保存该索引
  • 将索引与恢复的数据进行比较并显示差异

背景:我最近不得不更换文件服务器中的磁盘。升级计划在最近一次完整备份后 36 小时开始,因此我创建了一个差异备份。然而,事实证明我们的一个应用程序正在清除保存到服务器的文件的存档位,因此这些文件未包含在差异备份中。直到我的用户报告某些文件丢失时我才意识到这一点。

除此之外,还有其他常用方法可以验证恢复的完整性吗?我经常被告知,通过恢复备份来测试备份是了解备份是否正常工作的唯一方法,但是如何处理 99% 正确工作而另外 1% 默默失败的情况?


更新:显然我需要澄清一些事情。

  • 我确实会在可能的情况下使用完整备份,但有时情况需要差异备份。当发生这种情况时,我需要验证原始数据中的每个文件是否也存在于恢复的数据中。
  • 我已经在使用 Backup Exec 中的“验证”功能,但这只能确保写入磁带的所有内容都可以再次读回。
  • 我确实会偶尔进行抽查恢复以确保备份媒体完好无损。

我已经熟悉了“测试备份的最佳方法是恢复它”这一常识。这是一个必要的步骤,但还不够。能够恢复您备份的文件并不能保证您需要的所有文件都已备份。这就是我需要解决的问题。

答案1

Linux 上有多种工具非常适合此任务。您可以使用安装.cifs在 Linux 主机上挂载 Windows 共享文件夹,或者你也可以运行赛格威就在文件服务器上。

在开始备份之前,使用find命令从指定目录递归迭代并将结果写入文件。此列表可以与备份一起保存以供将来使用。

find /path/to/dir > list_before.txt

如果要计算每个文件的校验和,只需将输出传递过去md5。此命令仅显示文件名,因为文件夹不需要哈希值。

find /path/to/dir -type f -print0 | xargs -0 md5 > md5_before.txt

恢复备份后,使用相同命令创建另一个文件列表,然后使用它diff来查找它们之间的差异。理想情况下,此命令应该没有输出。

diff list_before.txt list_after.txt

答案2

首先,在您选择的备份应用程序中启用“验证”选项,然后尽可能坚持完成备份。

您可以使用其他应用程序来执行所需的所有操作,但它们所花的时间与备份一样长。也许可以增加服务器的周末工作量?

答案3

Backup Exec(最新版本)默认在备份后进行验证。不过请仔细检查,它应该是选项中的一个复选框。

您可以查看“将校验和写入媒体”选项,以在每次备份后保存校验和,并考虑保存作业日志以在每次运行之间进行比较。我不知道这些文件的格式,但您可能能够获取文件列表或至少大小详细信息以进行比较,作为起点。

答案4

检查备份的最佳方法是恢复它。其他任何事情都是妥协——妥协没有错,但你确实需要恢复数据进行测试。

理想情况下,您每 6 到 12 个月进行一次 DR 恢复,并更频繁地恢复随机文件,但将至少一台服务器恢复到虚拟机上并检查其随后启动的任何例行程序都是一个很好的开始。

这是你会做的事此外备份软件本身具有的任何验证例程。

相关内容