MongoDB - 大容量数据存档和Oplog大小

时间:2016-01-06 09:41:01

标签: mongodb mongodb-query replicaset mongodb-replica-set

我有一个大型集合的定期数据存档请求。该要求的几点引起了我的一些担忧:

  1. 应将归档的数据移动到不同的数据库中,以便作为生产进行相同的应用程序访问。
  2. 备份频率可以是每月,每年甚至更少。
  3. 存档应该在不中断生产系统可用性和性能的情况下进行。
  4. 此要求表示在存档执行的短时间范围内大量插入和删除。它有一些挑战需要解决。

    1. 对于同一记录,删除只能发生,并且必须在插入成功后发生。
    2. 大量的插入和删除可能会在复制完成之前将oplog打到replicaset中的辅助节点。毕竟,oplog大小通常配置为日常例行操作。
    3. 对于挑战1,Mitch Pronschinske提出了一个非常接近here的解决方案。 Mitch的归档功能解决了删除只能在插入成功后才能发生的问题,而不是“必须发生”部分。然而,这非常接近,并且在此脚本之上可以解决“必须发生”部分。

      挑战2会给我带来头痛。根据MongoDB的instruction,更改oplog大小需要停机时间和人工干预。考虑到要求3,这不太可能是一种选择。

      有人会对如何实现这一目标有任何经验或建议吗?谢谢!

      我的环境信息:

      • MongoDB 3.2
      • 3个分片
      • Replicaset:3个数据成员,1个成员在地理上冗余,优先级为0.
      • OS:MS Win2012R2

0 个答案:

没有答案