在某些情况下(例如,您有一个主服务器和一个辅助服务器,但由于成本限制,禁止添加另一个辅助服务器),您可以选择将一个mongod
实例添加到副本集中作为
仲裁者进行选举。
仲裁器mongod
是属于副本集但不保存数据(即不提供数据冗余)的实例
。但是他们可以参加选举。
仲裁器具有最低的资源要求,并且不需要专用硬件。您可以在应用程序服务器或监视主机上部署仲裁程序。
重要
不要在还承载副本集主要成员或次要成员的系统上运行仲裁程序。
警告
通常,避免每个副本集部署多个仲裁器。
majority
和三成员PSA¶对于三成员的主次仲裁器体系结构
如果您具有具有主次仲裁器(PSA)体系结构的三成员副本集,或者具有三成员PSA分片的分片群集,则如果任何数据承载节点关闭并且支持"majority"
读取关注,则缓存压力将增加
已启用。
为防止存储高速缓存压力使具有三名成员的主次仲裁器(PSA)架构无法实现部署,您可以从MongoDB 4.0.3(和3.6.1+)开始禁用读取关注“多数”。有关更多信息,请参见 禁用多数阅读关注。
从MongoDB 3.6,MongoDB二进制文件mongod
和开始
mongos
,默认情况下绑定到localhost。如果
为二进制net.ipv6
文件设置了
配置文件设置或--ipv6
命令行选项,则二进制文件还会绑定到本地IPv6地址。
以前,从MongoDB 2.6开始,默认情况下,只有正式的MongoDB RPM(Red Hat,CentOS,Fedora Linux和衍生产品)和DEB(Debian,Ubuntu和衍生产品)的二进制文件才绑定到localhost。
当仅绑定到本地主机时,这些MongoDB 3.6二进制文件只能接受来自mongo
在同一台计算机上运行的客户端(包括Shell,副本集中部署的其他成员和分片群集)中的连接。远程客户端无法连接到仅绑定到本地主机的二进制文件。
要覆盖并绑定到其他IP地址,可以使用
net.bindIp
配置文件设置或
--bind_ip
命令行选项来指定主机名或IP地址的列表。
例如,以下mongod
实例绑定到localhost和My-Example-Associated-Hostname
与ip地址关联的主机名198.51.100.1
:
为了连接到该实例,远程客户端必须指定主机名或其关联的IP地址198.51.100.1
:
小费
如果可能,请使用逻辑DNS主机名而不是IP地址,尤其是在配置副本集成员或分片群集成员时。逻辑DNS主机名的使用避免了由于IP地址更改而导致的配置更改。
警告
通常,避免每个副本集部署多个仲裁器。
小费
如果可能,请使用逻辑DNS主机名而不是IP地址,尤其是在配置副本集成员或分片群集成员时。逻辑DNS主机名的使用避免了由于IP地址更改而导致的配置更改。
storage.dbPath
为仲裁器创建一个数据目录(例如)。该mongod
实例使用的配置数据的目录。该目录将不保存数据集。例如,创建/var/lib/mongodb/arb
目录:
启动仲裁程序,指定数据目录和要加入的副本集的名称。后续的使用开始的仲裁/var/lib/mongodb/arb
作为dbPath
和 rs
副本集名称:
连接到主要服务器并将仲裁器添加到副本集。使用rs.addArb()
方法,如以下示例所示,该示例假定m1.example.net
该主机名是与仲裁器的指定ip地址关联的主机名:
此操作将添加27017
在m1.example.net
主机端口上
运行的仲裁器。