使用rsync进行mongodb副本集备份

Pra*_*tta 3 rsync mongodb

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

  1. 那么,我需要mongod在开始之前停止该过程吗rsync

    • 选择副本集的服务器之一并停止 mongod 进程
    • 进行备份(使用 rsync)
    • 启动 mongod 进程
  2. 否则,我可以在不停止进程的情况下启动rsync(dbPath: /var/lib/mongomongod ) 吗?

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

Ste*_*nie 5

那么,我需要mongod在开始之前停止该过程吗rsync

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

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

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

我可以在不停止进程的情况下启动rsync(dbPath:/var/lib/mongomongod )吗?

不可以。这会导致备份不一致。

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

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

有一些破坏性较小(且更连续)的备份方法,例如使用基于代理的备份服务(例如 MongoDB Cloud Manager)。

如果您想通过复制底层数据文件进行备份,文件系统快照 (LVM/EBS/...) 通常比暂停对mongod. 如果您想捕获一致的备份,针对运行的文件系统快照mongod确实有一些要求:所有数据必须位于同一卷上,必须启用日志功能,并且文件系统必须支持时间点快照。有关完整详细信息,请查看官方文档和备份教程。