9

我想每天备份单个 mongodb 数据库,可能使用 mongodump。为了不丢失任何数据,我希望这是增量的,所以如果在一天中间出现问题,我需要能够在执行 mongorestore 后重播当天的更改,直到故障点。

我是否正确理解我需要为此使用oplog?还是记录答案?我尝试执行以下操作:

  1. 将我的 mongo 数据库变成只有一个的副本集,以便它创建一个 oplog。(这感觉很hacky)
  2. 使用 --oplog 选项重新启动 mongod
  3. 执行应记录在 oplog 中的更改

然而,没有任何东西存储在 oplog 中。进行此类增量备份的最佳方法是什么?我基本上是在寻找一种类似的方法来重放 mysql binlog。

谢谢

4

2 回答 2

7

MongoDB 不提供开箱即用的增量备份选项,但可以进行文件快照并重放 oplog。您是否按照文档中概述的步骤将服务器设置为副本集? http://www.mongodb.org/display/DOCS/Replica+Sets+-+Basics

你能告诉我们这些备份的目的吗?您是否考虑过将第二个节点添加到您的副本集以实现数据持久性?

如果您已经完成了将服务器设置为副本集成员的步骤,您可以在 shell 中运行 rs.status() 吗?

另一个注意事项(只是为了澄清) - 日记并不是一种备份策略;日志只是确保数据库在发生故障转移时可以返回到一致的状态。强烈建议在启用日志的情况下运行。

这是用于备份的 MongoDB 文档: http ://www.mongodb.org/display/DOCS/Backups

于 2012-08-16T17:01:56.837 回答
0

进行备份的最佳方法是将Ops Manager配置为 MongoDB 基础架构的一部分,但它的作用远不止备份……

于 2015-09-27T20:57:17.750 回答