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

标签 mongodb amazon-web-services amazon-ec2 autoscaling

我们正在尝试设置一个 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/

相关文章:

mongodb - 在 MongoRepository<Customer,String> 中使用限制和跳过

Swift 和亚马逊网络服务

git - 在 EC2 上设置 Git 以从 GitHub 存储库中提取

amazon-ec2 - Windows Server 2008 的云信息

linux - 在 mac 上通过 ssh 连接到 amazon aws linux 服务器

mysql - 在一个项目中同时使用 Mongodb 和 Mysql

node.js - 蒙戈错误。发现(不可变)字段 '_id' 已更改为 _id

javascript - Promises 传播中间对象(NodeJS + MongoDB)

ruby-on-rails - Rails 的 AWS CodeBuild 进程无法安装 pg gem

ios - 获取对 AWSS3 对象的引用