文档菜单
文档首页
/
MongoDB 手册
/ / /

向自管理副本集添加仲裁者

本页内容

  • 考虑因素
  • 主-辅助-仲裁副本集
  • 添加仲裁者

在某些情况下(例如,您有一个主节点和一个辅助节点,但成本限制禁止添加另一个辅助节点),您可以选择添加一个mongod 实例到副本集作为 仲裁器 以在选举中投票。

仲裁器是 mongod 实例,它们是 副本集 的一部分,但不持有数据(即不提供数据冗余)。然而,它们可以参与 选举

仲裁器对资源要求最小,不需要专用硬件。您可以在应用程序服务器或监控主机上部署仲裁器。

重要

不要在也托管副本集的主节点或辅助节点的系统上运行仲裁器。

警告

避免在一个 副本集 中部署超过一个 仲裁器。参见 多个仲裁器的相关问题

要将仲裁器添加到现有的副本集

  • 通常,如果副本集中有两个或更少的数据承载成员,您可能需要首先设置副本集的 集群级写关注

  • 有关为什么您可能需要设置集群级写关注的信息,请参阅 集群级写关注

在启动一个新的带有仲裁器的副本集之前,您不需要更改集群级写关注。

提示

另请参阅

仲裁器 不支持 季度快速发布。如果您的部署包括仲裁器,则仅使用LTS 版本。

如果您使用的是由三个成员组成的主-副-仲裁器(PSA)架构,请考虑以下内容

仲裁者不存储数据,但在仲裁者的 mongod 进程被添加到副本集之前,仲裁者将像任何其他 mongod 进程一样运行,并启动一组数据文件和完整大小的 日志。

警告

在将实例绑定到公网IP地址之前,您必须确保集群安全,防止未经授权的访问。有关安全建议的完整列表,请参阅自管理部署安全清单。至少,请考虑启用身份验证强化网络基础设施

MongoDB的二进制文件,mongodmongos,默认绑定到本地主机。如果二进制文件的配置文件设置或--ipv6命令行选项设置了net.ipv6,则二进制文件还会绑定到本地主机的IPv6地址。

默认情况下,仅绑定到本地主机的mongodmongos仅接受在同一台计算机上运行的客户端的连接。这种绑定行为包括mongosh和您的复制集或分片集群的其他成员。远程客户端无法连接到仅绑定到本地主机的二进制文件。

要覆盖默认绑定并绑定到其他IP地址,请使用配置文件设置net.bindIp或命令行选项--bind_ip来指定主机名或IP地址列表。

警告

从MongoDB 5.0开始,仅配置了IP地址的节点将失败启动验证并报告错误。请参阅disableSplitHorizonIPCheck

例如,以下mongod实例同时绑定到本地主机和主机名My-Example-Associated-Hostname,该主机名与IP地址198.51.100.1相关联。

mongod --bind_ip localhost,My-Example-Associated-Hostname

为了连接到此实例,远程客户端必须指定主机名或其关联的IP地址 198.51.100.1

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1

重要

为了避免因IP地址更改而导致的配置更新,请使用DNS主机名而不是IP地址。在配置副本集成员或分片集群成员时,使用DNS主机名而不是IP地址尤为重要。

使用主机名而不是IP地址来配置跨分割网络视域的集群。从MongoDB 5.0开始,仅配置了IP地址的节点将失败启动验证并无法启动。

警告

避免在一个 副本集 中部署超过一个 仲裁器。参见 多个仲裁器的相关问题

要将仲裁器添加到现有的副本集

  • 通常,如果副本集中有两个或更少的数据承载成员,您可能需要首先设置副本集的 集群级写关注

  • 有关为什么您可能需要设置集群级写关注的信息,请参阅 集群级写关注

在启动一个新的带有仲裁器的副本集之前,您不需要更改集群级写关注。

提示

另请参阅

重要

为了避免因IP地址更改而导致的配置更新,请使用DNS主机名而不是IP地址。在配置副本集成员或分片集群成员时,使用DNS主机名而不是IP地址尤为重要。

使用主机名而不是IP地址来配置跨分割网络视域的集群。从MongoDB 5.0开始,仅配置了IP地址的节点将失败启动验证并无法启动。

  1. 为仲裁者创建一个数据目录(例如 storage.dbPath)。mongod 实例使用该目录进行配置数据。该目录 不会 存储数据集。例如,创建 /var/lib/mongodb/arb 目录

    mkdir /var/lib/mongodb/arb
  2. 启动仲裁者,指定数据目录和要加入的副本集名称。以下示例使用 /var/lib/mongodb/arb 作为 dbPathrs 作为副本集名称来启动仲裁者

    警告

    在将实例绑定到公网IP地址之前,您必须确保集群安全,防止未经授权的访问。有关安全建议的完整列表,请参阅自管理部署安全清单。至少,请考虑启用身份验证强化网络基础设施

    mongod --port 27017 --dbpath /var/lib/mongodb/arb --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  3. 连接到主节点并将仲裁者添加到副本集。使用 rs.addArb() 方法,如下例所示,假设 m1.example.net 是与指定IP地址关联的仲裁者主机名

    rs.addArb("m1.example.net:27017")

    此操作将运行在 m1.example.net 主机上的端口 27017 上的仲裁者添加。

返回

添加成员