常见问题解答:复制和副本集

在本页面

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

MongoDB 支持哪种复制?

MongoDB 支持replica sets,最多可以包含50 nodes

MongoDB 还支持主从复制;但是,副本集是推荐的复制拓扑。但是,如果您的部署需要 50 个以上的节点,则必须使用主/从复制。

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

Yes.

例如,部署可以在东海岸数据中心维护primarysecondary以及在西海岸数据中心维护secondary成员以进行灾难恢复。

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

是的,但并非没有连接失败和明显的延迟。

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

如果复制已提供数据冗余,为什么要使用日志记录?

Journaling有助于更快的崩溃恢复。记录日志之前,崩溃通常需要database repairs或完全重新同步数据。两者都很慢,并且第一个不可靠。

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

replica set运行日记功能时,您可以安全地重新启动mongod实例,而无需其他干预。

Note

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

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

仲裁者与其余副本集交换哪些信息?

仲裁器从不接收集合的内容,但会与其余副本集交换以下数据:

  • 用于使用副本集对仲裁程序进行身份验证的凭据。这些交换是加密的。

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

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

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

See

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

Yes.

这些因素包括:不同的 oplog 大小,不同的存储碎片级别以及 MongoDB 的数据文件预分配,可能导致节点之间的存储利用率发生一些变化。当您在不同时间添加成员时,存储使用差异将最为明显。

我可以重命名副本集吗?

No.

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