我们正在尝试设置一个与AWS EC2 Autoscaling组合的MongoDB副本集,这样当一台服务器关闭时,副本集可以在没有人为干扰的情况下自我修复。
每个实例都要通过引导脚本来完成。
以下是我们计划如何做到这一点: 1第一个实例启动副本集并将其自身设置为主副本 2每次将新实例添加到自动扩展组时,新实例将连接到现有副本集的一个成员,询问谁是主要实例 3新实例与primary建立连接,通过主
将自身添加到副本集我的问题是,是否通过与主要可执行文件的连接向副本集添加新成员?
在当前的mongodb javascript脚本中,我可以通过以下方式建立与主要的连接: conn = new Mongo();
然后有rs.add()添加成员。
如何通过Mongo()连接调用rs.add()以在新成员本身上添加新成员?我仔细阅读了文档,找不到从Mongo()连接中检索rs对象的方法。
由于
答案 0 :(得分:0)
您可以执行以下操作。
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。