AWS EC2 上的 Mongodb 备份策略

AWS EC2 上的 Mongodb 备份策略

我在 AWS EC2 实例上运行 Mongodb。数据/日志/和日志存储在单独的卷中,格式为 xfs。目前,我们正在停止 mongodb 实例以拍摄快照,但读取以下内容: https://docs.mongodb.com/ecosystem/tutorial/backup-and-restore-mongodb-on-amazon-ec2/ 由于已启用日志,因此显然无需在快照期间停止服务。我说得对吗?即使服务正在运行,我也可以创建一致的快照吗?

答案1

一般来说,在确认从长期媒体恢复的完整性之前,请不要相信任何备份程序。


您已经有能力在线备份存储系统层。在这种情况下,使用 EBS 卷或 Linux LVM。问题在于让数据库处于一致状态。

有或没有日志记录都可以进行在线备份。无论哪种情况,mongo 暂停数据库写入的方式都是 fsync 和 lock,如该教程中所述。

如果没有日志,就很难分辨哪些数据在磁盘上是持久的,哪些数据是缓冲的但尚未提交。fsync 和 lock 会建立一个时间点,并停止任何正在进行的写入,直到备份完成。

对于多个磁盘,也需要锁定,因为(在此存储系统上)快照彼此不一致。在备份期间暂停写入意味着磁盘/dev/sdf与 相比不会处于稍微不同的时间点/dev/sdg

MongoDB 声称,如果你只有一个单身的磁盘,以及日志,您无需 fsync 和锁定。据推测,EBS 快照是一个足够好的崩溃一致时间点,并且日志正向恢复可以修复任何不完整的写入。

相关内容