我们正在尝试将MongoDB副本集与AWS EC2自动伸缩组相结合,以便在一台服务器宕机时副本集可以在没有人为干扰的情况下自行修复。
在每个实例上,一切都由bootstrap脚本完成。
我们计划这样做:第一个实例启动副本集,并将自己设置为主实例每次一个新实例被添加到autoscaling组时,新实例连接到现有复制集中的一个成员,询问谁是主3 .新实例与primary建立连接,通过primary
将自己添加到副本集我的问题是,通过连接到主副本集添加新成员是否可行?
在当前mongodb javascript脚本中,我可以通过以下方式连接到primary:conn = new Mongo();
还有rs.add()来添加成员。
如何通过Mongo()连接调用rs.add()来在新成员本身上添加新成员?我通读了文档,找不到从Mongo()连接检索rs对象的方法。
谢谢
您可以做如下操作。
确定哪个是主服务器。
PRIMARY= /usr/bin/mongo ${IP}:27017 --eval "printjson(rs.isMaster())" | grep "primary" | cut -d""" -f4
连接到主节点以添加新节点。
R= /usr/bin/mongo ${PRIMARY}/admin --eval "printjson(rs.add('${NEW_NODE_IP}:27017'))"
注:NEW_NODE_IP为新增EC2的IP