如何为单节点设置获取一致的MongoDB备份

时间:2013-07-03 21:07:13

标签: mongodb mongodump

我在一个非常简单的设置中使用MongoDB,需要一致的备份策略。我发现将mongodump包裹在锁定/解锁中的困难方法是个坏主意。然后我读到--oplog选项应该能够在没有锁定/解锁的情况下提供一致性。但是,当我尝试这样做时,它说我只能在“完全转储”上使用--oplog选项。我已经开始讨论文档和大量文章,但似乎还不清楚如何从单个时间点转储mongo数据库。

现在我只是进行正常的转储,但我假设如果在转储过程中有写入,那么备份不会来自单个时间点,对吗?

mongodump -h $MONGO_HOST:$MONGO_PORT -d $MONGO_DATABASE -o ./${EXPORT_FILE} -u backup -p password --authenticationDatabase admin

1 个答案:

答案 0 :(得分:2)

在生产环境中,MongoDB通常作为副本集部署,以确保冗余和高可用性。如果您运行的是独立的mongod实例,则有一些选项可用于即时备份。

您提到的一个选项是使用-oplog选项执行mongodump。但是,此选项仅在运行副本集时可用。您可以轻松地将独立的mongod实例转换为单个节点副本集,而无需添加任何新的副本集成员。有关详细信息,请查看以下文档。

http://docs.mongodb.org/manual/tutorial/convert-standalone-to-replica-set/

这样,如果在mongodump运行时有写入,它们将成为备份的一部分。请参阅以下链接中的“使用Oplogs进行时间点操作”部分。

http://docs.mongodb.org/manual/tutorial/backup-databases-with-binary-database-dumps/#point-in-time-operation-using-oplogs

请注意,使用mongodump和mongorestore备份和恢复MongodDB可能会很慢。

文件系统快照是另一种选择。以下链接中的信息详细说明了用于执行MongoDB热备份的两个快照选项。

http://docs.mongodb.org/manual/tutorial/backup-databases-with-filesystem-snapshots/

您还可以查看MongoDB备份服务。

http://www.10gen.com/products/mongodb-backup-service

此外,带有oplog选项的mongodump目前不能与单个db / collection一起使用。有计划实施该功能。您可以关注故障单并在“更多操作”按钮下投票选择该功能。

https://jira.mongodb.org/browse/SERVER-4273