翻译或纠错本页面
为复制集添加投票节点¶
投票节点是 replica set 中的一个不包含数据的 mongod 实例。投票节点参与 elections 来打破投票僵局。如果复制集拥有偶数个节点,那么请新增一个投票节点。
投票节点仅需很少的资源,对硬件也没有要求。我们可以将投票节点部署在一个应用服务的机器上或是一个监控机上。
重要
尽量不要将投票节点部署在复制集节点的机器上。
注意事项¶
投票节点不储存数据,但是一旦其加入到复制集中,投票节点将像其他节点一样开始建立自己的数据文件和 journal 。
为了让其占用的空间尽可能的小,请参考如下设置 configuration file :
journal.enabled 设置为 false
警告
千万不要在拥有数据集的节点上设置 journal.enabled 为 false 。
smallFiles 设为 true
preallocDataFiles 设为 false
这些设置仅在投票节点上进行。千万不要在拥有数据的节点上将 journal.enabled 设置为 false 。也不要设置 smallFiles 或者是 preallocDataFiles 除非有特殊的需求。
新增一个投票节点¶
为投票节点建立数据目录(如 dbPath )。 mongod 实例将在这个目录中存储配置数据。该文件夹中将不会存有数据集。举个例子,建立 /data/arb 目录:
mkdir /data/arb
启动投票节点并指定数据目录和复制集名。下列的命令将启动一个使用 /data/arb 为 dbPath ,复制集名为 rs 的投票节点:
mongod --port 30000 --dbpath /data/arb --replSet rs
进入主节点并将投票节点加入复制集。使用 rs.addArb() ,例子如下:
rs.addArb("m1.example.net:30000")
该操作将运行在 m1.example.net 机器的``30000`` 端口的投票节点加入复制集中。