AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 902057
Accepted
mattb
mattb
Asked: 2018-03-17 09:00:34 +0800 CST2018-03-17 09:00:34 +0800 CST 2018-03-17 09:00:34 +0800 CST

断开连接的主副本集添加回副本集

  • 772

我正在寻找一些关于如何处理与网络断开连接的主副本集(例如数据中心网络中断)的建议,以便我们将其中一个辅助副本提升为主副本以使用数据库恢复应用程序的服务.

在网络重新连接之前,我们是否应该杀死机器上运行的 mongodb 以允许重新添加作为辅助?还是主要从其设置的更改模式断开连接?

如果我们允许 mongodb 服务器回到网络上,并且 mongodb 作为主服务器运行,尽管在重新连接之前是隔离的,会发生什么?

抱歉,如果在我尝试查找的其他地方的文档中回答了这个问题,但我可能没有在寻找正确的术语。

mongodb
  • 1 1 个回答
  • 699 Views

1 个回答

  • Voted
  1. Best Answer
    Stennie
    2018-03-18T02:56:48+08:002018-03-18T02:56:48+08:00

    我正在寻找一些关于如何处理与网络断开连接的主副本集(例如数据中心网络中断)的建议,以便我们将其中一个辅助副本提升为主副本以使用数据库恢复应用程序的服务.

    自动故障转移是 MongoDB副本集设计的固有特性之一,因此您不必手动故障转移到辅助服务器,除非您有意更改了默认配置。两者primary和secondary都是副本集中的成员状态(或角色),并且旨在与通常需要手动干预以进行故障转移的主/从拓扑不同。

    如果 MongoDB 副本集的大多数已配置投票成员无法访问当前主节点,则预期结果是:

    • 孤立的主要将下台并成为次要
    • 如果大多数投票成员之间仍然有联系并且有资格选举的成员,则可以选举新的初选。

    有关更多信息,请参阅MongoDB 手册中的副本集选举。

    在网络重新连接之前,我们是否应该杀死机器上运行的 mongodb 以允许重新添加作为辅助?还是主要从其设置的更改模式断开连接?

    rs.status()副本集的隔离数据承载成员将保持辅助状态,但如果您检查副本集的其他成员,则会显示为“不健康/不可访问” 。以相同方式配置所有可选数据承载成员通常是一个好主意,这样任何成员都可以在需要时担任主要成员(而不是拥有一个专门配置的主要成员)。

    如果您希望您的副本集自动恢复,您应该让所有成员按原样运行,一旦连接恢复,它们将恢复同步(如果可能)。在默认配置中,以前是主要成员的隔离成员将作为辅助成员恢复同步。如果您对哪个成员被选为主要成员有强烈的偏好(例如,基于数据中心位置),您可以调整副本集成员的优先级。如果首选主节点被隔离,它将作为辅助节点重新加入副本集并恢复同步,直到它完全赶上来有资格成为主节点并触发选举。

    恢复同步的注意事项是,隔离成员仍必须与健康副本集成员的复制 oplog有足够的重叠,以便赶上成员被隔离时发生的任何写入活动。oplog 不再与副本集的任何其他成员有任何重叠的辅助节点将被标记为“陈旧”并且需要重新同步。

    如果我们允许 mongodb 服务器回到网络上,并且 mongodb 作为主服务器运行,尽管在重新连接之前是隔离的,会发生什么?

    除非您强制重新配置您的副本集以便没有其他投票成员,否则不可能有一个独立的主节点。一个副本集中不能有两个主节点。如果隔离的前主节点接受了任何未传播到大多数副本集成员的写入,则当前主节点恢复与副本集的其他成员的连接时,这些写入将被回滚(导出到磁盘以进行管理干预) . 您可以采取额外的步骤来避免回滚,包括使用majority写关注。

    如果您不熟悉 MongoDB 副本集,我建议您使用默认配置和配置来启用自动故障转移和恢复。只有在特殊情况下才需要人工干预。

    • 0

相关问题

  • MongoDB 的 SELinux 设置

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve