【发布时间】:2015-06-23 17:48:58
【问题描述】:
对于一个 mongoDB 分片,我在同一个卷上拥有日志和数据,因此不需要使用 fsyncLock 锁定后才拍摄快照的一致性问题。 EBS 快照将是单个分片的一致时间点。
我想知道在 mongodb 集群中进行备份的首选方式是什么。我探索了两种选择:
- 通过大约在同一时间拍摄 EBS 快照的近似时间点一致备份。优点是不需要写锁。
- 停止对系统的写入,然后拍摄快照。这将提供时间点一致的备份。
现在,我想知道它是如何在生产中实际完成的。我已经阅读过正在使用的副本集的辅助节点,但不清楚它如何提供时间点一致的备份。除非所有从节点都有一致的时间点数据,否则 EBS 快照不可能是时间点。例如,对于 NodeA 的辅助节点,如果数据与主节点同步,但 NodeB 的辅助节点的某些数据没有同步,该怎么办。我在这里遗漏了什么吗?
另外,如果发生这种情况,方法 1 是否会导致 MongoDB 集群不一致(恢复时),例如崩溃或问题?
【问题讨论】:
-
你的设置是什么?只有一个副本集还是您有一个分片集群(多个副本集、配置服务器)?他们每个人的备份都是不同的。一般来说,如果您可以停止写入并为主节点创建原子快照,这是最简单的解决方案。您需要考虑很多事情(写入问题、复制延迟、oplog/journaling),以尽量减少服务器崩溃时的数据丢失。
-
暂时没有副本。多个分片和 3 个配置服务器。让我知道这是否足以让您回答
标签: mongodb amazon-web-services snapshot