需求概述:
现有mongodb副本集群:shard2ReplSet,需要添加一个新成员,新成员的ip是10.44.22.167,端口是27032。
添加步骤可参考文章:添加新成员。
下面的实战步骤,会一一展示给大家。下面的所有操作均是在10.44.22.167这台服务器上进行的操作。
1.准备数据目录,新建目录
D:\db\shard2s\data
D:\db\shard2s\log
2.启动一个新的mongod服务实例
在dos命令行下执行:
D:\MongoDB\Server\3.4\bin>
mongod --keyFile d:\db\root.key --shardsvr --replSet shard2ReplSet --port 27032 --dbpath d:\db\shard2s\data --logpath d:\db\shard2s\log\shard2s.log --bind_ip localhost,0.0.0.0
3.连接到副本集shard2ReplSet 的主节点上:
D:\MongoDB\Server\3.4\bin>mongo --host 10.171.17.227 --port 27022
//如果授权,执行如下语句
use admin
db.auth("admin","zwkj@123!@#")
db.isMaster()//查看primary成员
4.将新成员添加到副本集
rs.add({ host:"10.44.22.167:27032",priority:0,votes:0})
提示:
此步骤需要时间可能与数据文件大小有关,有的情况需要时间较长,请耐心等待。
5.确认新成员已达到SECONDARY状态:
rs.status()
6.新添加的成员转换为SECONDARY状态后,获取配置信息:
rs.conf()
找到新成员在members数组中的位置,注意此时的优先级和投票是0:
7.更新新成员的投票和优先级
如果rs.conf()返回10.44.22.167:27032的配置文档作为members数组中的第4个元素(所以数组下标是3),则执行如下语句,更新新成员的投票和优先级。
var cfg = rs.conf();
cfg.members[3].priority = 1
cfg.members[3].votes = 1
rs.reconfig(cfg)
8.再次运行rs.cConf(),查看新成员 的优先级和投票。
如果遇到任何问题,可以在下方留言哦!!