mongodb节点配置指南

修改复制集节点的优先级
复制集节点的 priority 参数的值决定了选举中该节点的优先级。值越高,优先级越高。
我们可以通过修改复制集配置参数中 members 数组位置的优先级来修改对应机器的优先级。数组索引从 0 开始。不要将数组下标与数组 _id 混淆。
复制节点的默认是是1,延迟节点和隐藏节点的值为0.priority 的值可以是1-1000的任意浮点数。
在维护视窗时间内修改优先级。修改优先级会使主节点降职并触发选举。在选举前,主节点将关闭所有已有连接。
复制集节点的优先级影响了 elections 的结果。我们通过设置不同的优先级来提高部分节点成为主节点的可能性,也可以让某些节点不能成为主节点
 
设置节点优先级:
1:拷贝集群配置文件
cfg = rs.conf()
2:修改每个成员的优先级
cfg.members[0].priority = 0.5
cfg.members[1].priority = 2
cfg.members[2].priority = 2
3:修改集群配置文件
rs.reconfig(cfg)
 
禁止从节点升职为主节点:
在复制集的默认设置下。 secondary 是有机会在选举中升职为主节点的。我们可以调节 priority 来使得某个节点成为主节点的可能性更高或者更低又或是禁止其成为主节点。
不能成为主节点的从节点也不会触发选举。在其他方面与其他从节点无区别。
我们可以将 secondary 的优先级设置为 0 来阻止其在选举中升职为 primary 。 关于这样的设定的意义请参见 优先级为0的复制集成员 。
1:拷贝集群配置文件
cfg = rs.conf()
2:设置节点的优先级
cfg.members[2].priority = 0
3:修改集群配置文件
rs.reconfig(cfg)
 
 
配置一个隐藏节点:
将节点0配置为隐藏节点
cfg = rs.conf()
cfg.members[0].priority = 0
cfg.members[0].hidden = true
rs.reconfig(cfg)
 
配置一个延迟复制的节点:
cfg = rs.conf()
cfg.members[0].priority = 0
cfg.members[0].hidden = true
cfg.members[0].slaveDelay = 3600
rs.reconfig(cfg)
 
配置一个不参与投票的节点:
cfg = rs.conf()
cfg.members[3].votes = 0
cfg.members[4].votes = 0
cfg.members[5].votes = 0
rs.reconfig(cfg)
 
将从节点转换为投票节点:
1:如果我们的应用程序是直接连接到从节点的,我们需要修改应用程序的连接方式让其不会再在该从节点是进行查询。
2:关闭从节点
3:主节点执行,然后进行移除:rs.remove("<hostname><:port>")
通过在 mongo 窗口中执行 rs.conf() 命令来确认复制集中已经不再包含该节点
4:将从节点的数据目录移至其他处以作保留。
如。mv /data/db /data/db-old
5:新建一个空的数据目录并在新的 mongod 启动过程中指定其为数据目录。我们可以使用之前的目录名。如:
mkdir /data/db
mongod --port 27021 --dbpath /data/db --replSet rs
6:主节点添加他为新的投票节点
rs.addArb("<hostname><:port>")
 
posted @ 2017-07-19 16:30  M哥  阅读(1744)  评论(0编辑  收藏  举报