FAQ: MongoDB复制和副本集

在本页面

本文档回答了有关MongoDB中复制的常见问题。另请参见手册中的“ 复制”部分,其中概述了复制,包括有关以下方面的详细信息:

MongoDB支持哪种复制?

MongoDB支持副本集副本集最多可包含50个节点

复制是否可以通过Internet和WAN连接进行?

可以。

例如,在东海岸数据中心可以部署一个主节点和一个副节点 ,以及在西海岸数据中心部署一个作为灾难恢复的从节点成员。

参见

部署异地冗余的副本集

MongoDB可以通过“noisy”的连接进行复制吗?

是的,但连接失败和非常明显的延迟的情况下不行。

集合中的成员将尝试重新连接到集合中的其他成员,以响应网络波动。这不需要管理员干预。但是,如果副本集中节点之间的网络连接非常慢,则节点成员可能无法跟上复制。

参见

副本集选举

如果复制已经提供了数据冗余,为什么还要使用journaling(预写日志,WAL)功能?

Journaling功能有助于加快崩溃恢复速度。

Journaling功能对于防止电源故障特别有用,尤其是当副本集位于单个数据中心或电源电路中时。

副本集与Journaling一起运行时,您可以安全地重新启动 mongod实例,而无需其他干预。

注意

Journaling记录需要一些资源开销来进行写操作。但是,Journaling对读取性能没有影响。

默认情况下,在MongoDB v2.0及更高版本的所有64位版本上都启用Journaling功能。

仲裁节点与副本集的其余节点交换哪些信息?

仲裁节点永远不会复制集合的数据内容,但会与副本集的其余节点交换以下数据:

  • 用于副本集认证仲裁节点的凭据。这些交换数据是加密的。

  • 副本集配置数据和投票数据。此信息未加密。仅加密交换凭证。

如果您的MongoDB部署使用TLS / SSL,则仲裁节点与副本集其他成员之间的所有通信都是安全的。

有关更多信息,请参阅有关为TLS / SSL配置mongod和mongos的文档。与所有MongoDB组件一样,应该在安全网络上运行仲裁节点。

参见

副本集仲裁成员概述 。

副本集成员使用不同大小的磁盘空间是否正常?

正常。

因素包括:不同的oplog大小,不同程度的存储碎片以及MongoDB的数据文件预分配,都可能导致节点之间的存储利用率发生一些变化。当您在不同时间添加成员时,存储使用差异将最为明显。(译者注:可以理解为先后添加,因此上述存储碎片程度等差异就会比较明显,从而导致影响磁盘占用不同)。

我可以重命名副本集吗?

不可以。

您可以使用“ 从MongoDB备份还原副本集”教程中描述的备份和还原过程来创建具有所需名称的新副本集。为了确保原始副本集和新副本集之间的奇偶校验,可能需要停机。

原文链接:https://docs.mongodb.com/manual/faq/replica-sets/

译者:钟秋

update:小芒果