如何确保备份一致性?

如何确保备份一致性?

我在 CentOS 7 下运行带有 WiredTiger 存储引擎的 MongoDB 4.0。数据文件保存在已安装的 XFS 卷上。

我无法使用托管服务提供商的备份服务,因为它不支持 XFS 卷。这意味着我需要以其他方式拍摄快照,并将其复制到启用了备份的冗余文件系统。

我读了本文它提供了拍摄快照的各种选项,但没有详细说明如何确保快照时有效的数据库

除了描述的 LVM 方法之外,我还查看过xfsdump甚至考虑过rsync(因为数据包含许多小文件)。但无论使用哪种快照/复制方法,我如何确保备份处于一致状态?

答案1

确保备份一致性的唯一方法是恢复备份并抽查数据。当然,这需要程序来首先进行一致的备份...


数据库总是在被写入。文件系统快照方法需要对卷进行原子快照全部其 LUN。只有存储系统层或 LVM 层可以执行此操作。(不复制文件。)

一致性行为特定于所使用的 DBMS。从那个链接

对于 WiredTiger 存储引擎,数据文件反映自上次检查点以来的一致状态。每 2 GB 数据或每分钟都会发生一次检查点。

这些检查点通过通常的 I/O 系统调用(可能是pwrite()fsync())保存到磁盘。如果存储系统具有易失性缓存并且发生故障,则写入可能会丢失。

日志允许您随时拍摄快照,日志重放期间将修复不一致问题。但是,如果您的日志卷与数据卷不同,或者您不使用日志,请阅读有关拍摄快照前进行写锁定

总之你需要:

  • 所有 LUN 的原子快照
  • 杂志
  • 已确认写入并实际提交的存储系统

相关内容