首页 文章

将MongoDB非主成员添加到成员本身的现有副本集

提问于
浏览
2

我们正在尝试设置与AWS EC2 Autoscaling组合的MongoDB副本集,以便当一台服务器关闭时,副本集可以在没有人为干扰的情况下自我修复 .

一切都要通过每个实例上的bootstrap脚本来完成 .

以下是我们计划如何执行此操作:1第一个实例启动副本集并将其自身设置为主要2每次将新实例添加到自动缩放组时,新实例将连接到现有副本集的一个成员,询问谁是primary 3新实例与primary Build 连接,通过primary将其自身添加到副本集

我的问题是,是通过与主要可行的连接向副本集添加新成员吗?

在当前的mongodb javascript脚本中,我可以通过以下方式 Build 与主节点的连接:conn = new Mongo();

然后有rs.add()来添加成员 .

如何通过Mongo()连接调用rs.add()以在新成员本身上添加新成员?我阅读了文档,找不到从Mongo()连接中检索rs对象的方法 .

谢谢

1 回答

  • 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 .

相关问题