这里的文档说了三个:http : //docs.mongodb.org/manual/tutorial/deploy-replica-set/
“副本集需要三个不同的系统……”
而这里的文档说了两个:http : //docs.mongodb.org/manual/core/replication/
“大多数副本集由两个或多个mongod实例组成...”
有人知道哪个正确吗?
这里的文档说了三个:http : //docs.mongodb.org/manual/tutorial/deploy-replica-set/
“副本集需要三个不同的系统……”
而这里的文档说了两个:http : //docs.mongodb.org/manual/core/replication/
“大多数副本集由两个或多个mongod实例组成...”
有人知道哪个正确吗?
Answers:
如果需要,您实际上可以运行一个成员“集合”。
不过,最好是3个成员(或更高的奇数)。如果副本集的大部分不可用,则副本集将变为只读,因此,如果您丢失了两个成员集中的成员,则其余成员将变为只读。
您可以同时运行两个正式成员以及一个“仅投票”成员(称为仲裁者)。对于副本集,这是最小的合理安全的选择。
这基本上是一个措辞上的问题,因为本教程中的要求不是有关副本集的一般性说明,而是与本教程itelf有关。部署副本集的要求通常为1个或更多,大多数副本具有2个或更多,但是链接到的教程专门用于部署3个成员集:
本教程介绍了如何从MongoDB的三个现有实例创建三成员副本集
因此,本教程的要求是该集合必须具有3个成员。但是,拥有这两个语句有点令人困惑,因此我提交了一个pull请求(EDIT:pull request现在已经被合并到其中)来对其进行清理。
您可以将一个mongod节点配置为副本集的一部分,但严格来说,这不是一个“集合”。实际上,由于复制使用的资源比独立资源多mongod
(基本上是由于oplog所致),所以实际上没有任何必要运行单个成员,除非这是在将其他成员添加到集合中之前作为临时措施,或者如果您需要操作oplog其他原因(例如备份)。