为复制集添加投票节点¶
这些设置仅在投票节点上进行。千万不要在拥有数据的节点上将 journal.enabled 设置为 false 。也不要设置 smallFiles 或者是 preallocDataFiles 除非有特殊的需求。
投票节点是 replica set 中的一个不包含数据的 mongod 实例。投票节点参与 elections 来打破投票僵局。如果复制集拥有偶数个节点,那么请新增一个投票节点。
投票节点仅需很少的资源,对硬件也没有要求。我们可以将投票节点部署在一个应用服务的机器上或是一个监控机上。
重要
尽量不要将投票节点部署在复制集节点的机器上。
注意事项¶
投票节点不储存数据,但是一旦其加入到复制集中,投票节点将像其他节点一样开始建立自己的数据文件和 journal 。
为了让其占用的空间尽可能的小,请参考如下设置 configuration file :
storage.journal.enabled to false
启动投票节点并指定数据目录和复制集名。下列的命令将启动一个使用 /data/arb 为 dbPath ,复制集名为 rs 的投票节点:
进入主节点并将投票节点加入复制集。使用 rs.addArb() ,例子如下:
Add an Arbiter¶
Create a data directory (e.g. storage.dbPath) for the arbiter. The mongod instance uses the directory for configuration data. The directory will not hold the data set. For example, create the /data/arb directory:
mkdir /data/arb
Start the arbiter, specifying the data directory and the replica set name. The following starts an arbiter using the /data/arb as the dbPath and rs for the replica set name:
mongod --port 30000 --dbpath /data/arb --replSet rs
千万不要在拥有数据集的节点上设置 journal.enabled 为 false 。
rs.addArb("m1.example.net:30000")
This operation adds the arbiter running on port 30000 on the m1.example.net host.