Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 备份oplog已完成,但未完成_Mongodb - Fatal编程技术网

Mongodb 备份oplog已完成,但未完成

Mongodb 备份oplog已完成,但未完成,mongodb,Mongodb,我发现日志显示是这样的 2017-03-10T03:33:29.158+0000 [###################.....] local.oplog.rs 4800969/6041391 (79.5%) 2017-03-10T03:33:31.023+0000 writing local.oplog.rs metadata to <dump_path>....... 2017-03-10T03:33:31.024+0000 done dumping

我发现日志显示是这样的

2017-03-10T03:33:29.158+0000    [###################.....]  local.oplog.rs  4800969/6041391  (79.5%)
2017-03-10T03:33:31.023+0000    writing local.oplog.rs metadata to <dump_path>.......
2017-03-10T03:33:31.024+0000    done dumping local.oplog.rs (4809092 documents)
2017-03-10T03:33:29.158+0000[#####################….]local.oplog.rs 4800969/6041391(79.5%)
2017-03-10T03:33:31.023+0000将local.oplog.rs元数据写入。。。。。。。
2017-03-10T03:33:31.024+0000完成倾倒local.oplog.rs(4809092文件)

它是否完全备份?如果未完成,为什么会显示完成?

复制oplog是一个副本,因此,如果您在主动接受写入的复制集成员上运行oplog的
mongodump
,则预计文档计数将不准确。较旧的oplog文档将自动删除,以便为较新的文档腾出空间,因此计数将波动

如果您想将复制设置为备用部署,则将是一个更合适的选项。Mongo Connector是一个开源工具,可以从MongoDB部署复制到另一个MongoDB部署或Solr或Elasticsearch等外部系统

如果要备份副本集成员,应遵循文档中支持的其中一种方法。对于主动部署(或数据比RAM大得多的部署),典型的方法是使用备份代理(例如MongoDB Cloud/Ops Manager)或文件系统快照

注意:复制和备份都有助于数据恢复,但用途不同。对于备份计划,应考虑恢复点目标、恢复时间目标以及备份时对生产部署的性能影响等因素。

有关更多信息,请参阅:

  • MongoDB关于
  • Mongo连接器:
  • 云管理器文档

是否从仍在接受写入的副本集成员转储oplog?如果是这样,则预计计数将不准确,因为可能会删除较旧的oplog文档,以便为较新的文档腾出空间(oplog是一个数据库)。如果不是这样,您能否提供更多信息,例如所使用的
mongod
mongodump
的特定版本、您的
mongodump
命令行、您正在转储的副本集成员的类型(主副本集成员或次副本集成员),以及您为停止对该成员的写入而采取的任何步骤。您好,Stennie,是的,我正在从仍然接受主节点写入的辅助节点转储oplog。在生产环境中执行oplog转储的最佳实践是什么?我看到一些线程建议从副本集中删除辅助节点,并在不使用--replset参数的情况下重新启动它,并在完成后执行一些操作,将其重新启动到副本集中,但我担心主节点和辅助节点之间的同步时间会花费太长的时间。-Hikow你的目标是什么?如果要备份副本集成员,应遵循文档中支持的其中一种方法。对于主动部署(或数据比RAM大得多的部署),典型的方法是使用备份代理(如MongoDB Cloud/Ops Manager)或文件系统快照。我的目标是从生产中复制oplog并在备用站点上重播,因为如果使用mongodump,生产数据库非常庞大,需要很长时间(超过1天)处理。据我所知,Ops manager可用于Enterprise edition,但我正在使用Community edition,我不能使用它吗?如果您试图将其用作备份方法,则只有在源和目标一致的情况下,才能在另一个部署上重播oplog(即,目标是源部署的早期快照,两个oplog都有一个共同的条目).MongoDB Ops/Cloud Manager可用于备份方法,但复制到备用部署与创建备份的目标不同。如果要设置复制到备用部署,Mongo Connector将是更合适的选项:。