【问题标题】:MongoDB - set replication to DocumentDBMongoDB - 将复制设置为 DocumentDB
【发布时间】:2021-05-04 18:37:37
【问题描述】:

我们正在建立一个本地 MongoDB 集群 - 在本地,我们将拥有一个主节点和一个节点,并且我们希望在 AWS 中拥有另一个节点。是否可以将该节点作为 DocumentDB 服务而不是 EC2 实例?

另外,我知道我的节点总数必须是奇数,是否可以先添加一个节点,然后再添加另一个节点? 谢谢啊。

【问题讨论】:

  • 不,不需要总节点数为奇数。然而,当你有一个偶数并且一半的节点宕机时,那么副本集就没有主节点,即你不能写任何东西,因为你没有多数。部署一个奇数或一个arbiter node 来摆脱这个缺点。
  • 如果我有两个节点(1 个主节点和 1 个辅助节点),并且主节点出现故障,那么辅助节点不是多数吗?它不能投票给自己成为主要的吗?
  • 不,二分之一不是大多数。为此,您需要一个仲裁者。

标签: database mongodb amazon-web-services amazon-ec2 aws-documentdb


【解决方案1】:

如果您只是想将数据复制到 DocumentDB,数据库迁移服务是一个很好的工具:https://aws.amazon.com/dms/

但正如其他人所说,这将是一个独立于您的 MongodDB 设置的集群。

【讨论】:

    【解决方案2】:

    另外,我知道我的节点总数必须是奇数

    在 MongoDB 副本集中,您可以拥有任意数量的节点。可以有一个 2 节点的副本集,尽管它不是非常实用,因为单个节点不可用(例如,重新启动以进行维护)会使整个部署无法写入。如果您想在某个地方添加一个额外的副本(例如,用于从辅助节点进行地理上接近的查询,或用于分析查询),则 4 节点副本集是一种可行的结构,但如果您只是为了冗余而这样做,您可能应该坚持使用标准 3 -节点配置并配置适当的备份。

    是否可以先添加一个节点再添加另一个节点?

    您可以随时重新配置副本集。

    是否可以将该节点作为 DocumentDB 服务而不是 EC2 实例?

    不太可能。 DocumentDB 不是 MongoDB。 DocumentDB 假装 像 MongoDB,但它 1) 假装是 MongoDB 的旧版本,2) 即使那样,许多功能也不起作用,3) 它不是任何接近与 MongoDB 相同架构的地方。因此,当您要求真正的 MongoDB 数据库与 DocumentDB 节点一起工作时,这可能行不通。

    这假设您甚至可以以所需的方式配置 DocumentDB - 我怀疑这不可能开始。

    【讨论】:

    • 非常感谢您的回复!两件事情。 1 - 如果我有两个节点(1 个主节点和 1 个辅助节点),并且主节点出现故障,那么辅助节点不是多数吗?就不能投票给自己当初选吗? 2 - 如果我向集群添加节点,是否需要重新启动主节点?
    • Primary 要求大多数节点都在运行。 2 节点部署中的大多数是 2 个节点。任何单个节点不可用意味着您不能拥有主节点。无需重新启动。
    猜你喜欢
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2017-09-07
    • 2014-12-21
    • 1970-01-01
    相关资源
    最近更新 更多