我们正在尝试设置一个 MongoDB 副本集与 AWS EC2 Autoscaling 组相结合,以便副本集可以在一台服务器停机时自行修复而无需人为干预。
一切都由每个实例上的引导脚本完成。
以下是我们计划如何做到这一点: 1 第一个实例启动副本集并设置自己为主 2 每次向autoscaling组添加一个新实例,新实例连接到现有副本集的一个成员,询问谁是primary 3 新实例与primary建立连接,通过primary将自己添加到副本集
我的问题是,通过与主服务器的连接向副本集添加新成员是否可行?
在当前的 mongodb javascript 脚本中,我可以通过以下方式连接到主数据库: conn = new Mongo();
然后就是rs.add()添加成员。
如何通过 Mongo() 连接调用 rs.add() 以在新成员本身上添加新成员?我通读了文档,但找不到从 Mongo() 连接检索 rs 对象的方法。
谢谢
最佳答案
您可以执行如下操作。
确定哪个是主要的。
PRIMARY=/usr/bin/mongo ${IP}:27017 --eval "printjson(rs.isMaster())"| grep“主要” |剪切-d"\""-f4
连接到主节点以添加新节点。
R=/usr/bin/mongo ${PRIMARY}/admin --eval "printjson(rs.add('${NEW_NODE_IP}:27017'))"
注意:NEW_NODE_IP为新增EC2的IP。
关于mongodb - 将 MongoDB 非主成员添加到成员本身的现有副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39172612/