【问题标题】:Want to do an incremental backup for mongodb. Journaling? Oplog?想对 mongodb 做增量备份。写日记?操作日志?
【发布时间】:2012-08-12 00:42:50
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: mongodb backup journaling binlog


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 感谢您的澄清,我昨天对此进行了更多研究,并且了解需要发生什么。我想做的是每天做一次mongodump,保存到S3,每小时也把我的oplog保存到S3。如果您好心,我有两个后续问题: 1. 我的 oplog 存储在本地数据库中,我现在可以从 mongo shell 访问它。要备份 oplog,我可以将所有 local.(1-N) 和 local.ns 文件复制到 s3 吗? 2. 回放 oplog 的最佳方式是什么? mongorestore --oplogReplay 足够了吗?非常感谢!
    • mongodump --oplog 确保在转储发生时创建的任何 oplog 条目都可以使用 mongorestore --oplogReplay 重播。您不能使用 mongorestore --oplogReplay 重播转储完成后发生的 oplog 操作。您可能会研究的一种解决方案是每小时转储一次 oplog 集合并使用 applyOps 命令:docs.mongodb.org/manual/reference/commands/#applyOps
    • 这可能是 hacky .. 但我认为使用 mongorestore --oplogReplay 确实有效。我所做的是 mongodumped oplog,将生成的“oplog.rs.bson”移动到“dump/oplog.bson”并运行 mongorestore --oplogReplay。这很危险吗?如果是,我肯定会使用 applyOps 技术。
    • 嗨,Alex,老实说,由于 MongoDB 并非旨在以这种方式重放 oplog,因此我无法确认这种技术是否可取。最好和最安全的解决方案可能是转储 oplog 并编写应用这些操作的脚本。您可能想研究一下 mongooplog,该工具将在 MongoDB 的下一个稳定版本中提供(即将到期):docs.mongodb.org/manual/reference/mongooplog
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-23
      • 2016-09-19
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      相关资源
      最近更新 更多