首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rsync的mongodb副本集备份

使用rsync的mongodb副本集备份
EN

Server Fault用户
提问于 2017-06-09 17:55:45
回答 1查看 5.5K关注 0票数 3

我已经配置了mongodb副本集(我有3个db实例-Redhat),我希望每天使用rsync备份db文件( dbPath: /var/lib/mongo) 10次或12次。

  1. 那么,是否需要在启动mongod之前停止rsync进程?
    • 选择副本集的服务器之一并停止单神进程。
    • 使用备份(使用rsync)
    • 启动单神进程

  2. 否则,我可以在不停止rsync进程的情况下启动mongod (dbPath: /var/lib/mongo)。
  3. 除了LVM备份和mongodump之外,推荐的备份方法是什么?
EN

回答 1

Server Fault用户

回答已采纳

发布于 2017-06-12 14:07:28

那么,我是否需要在启动mongod之前停止rsync进程?

要使用rsynccp进行文件复制备份,您需要停止mongod服务或在mongo shell中或通过驱动程序发出db.fsyncLock()命令来停止写入。由于您要备份的辅助程序将间歇性地使用此方法,因此最好使其成为隐藏,以避免驱动程序在关闭或fsyncLock‘s时试图从该成员读取。

我会确保您测试几个完整的备份和恢复周期。尤其要注意可能使备份无效的rsync选项(例如:--ignore-existing--size-only--partial)。

注意:如果使用fsyncLock()方法,则在备份完成后有一个db.fsyncUnLock()命令来恢复正常操作。另一个警告: WiredTiger存储引擎只支持MongoDB 3.2或更高版本中的fsyncLock

我可以在不停止rsync进程的情况下启动mongod (dbPath: /var/lib/mongo)。

不是的。这将导致不一致的备份。

除了LVM备份和mongodump之外,推荐的备份方法是什么?

文档:MongoDB备份方法中描述了支持的备份方法。

有较少的破坏性(和更连续的)备份方法,例如使用基于代理的备份服务(例如,MongoDB云管理器)。

如果您想通过复制底层数据文件进行备份,那么文件系统快照(LVM/EBS/.)与暂停对mongod的所有写操作相比,一般情况下破坏性更小,也更值得推荐。如果要捕获一致的备份,针对正在运行的mongod的文件系统快照确实有一些要求:所有数据必须位于同一个卷上,必须启用日志记录,并且文件系统必须支持实时快照。有关详细信息,请参阅正式文档和备份教程。

票数 5
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/854919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档