【问题标题】:Add a MongoDB non-primary member to an existing replica set from the member itself将 MongoDB 非主成员从成员本身添加到现有副本集
【发布时间】:2017-01-03 11:58:49
【问题描述】:

我们正在尝试设置一个结合 AWS EC2 Autoscaling 组的 MongoDB 副本集,以便副本集可以在一台服务器关闭时自行修复而无需人为干预。

一切都由每个实例上的引导脚本完成。

我们计划这样做: 1 第一个实例启动副本集并将自己设置为主 2 每次将新实例添加到自动伸缩组时,新实例连接到现有副本集的一个成员,询问谁是主 3 新实例与primary建立连接,通过primary将自己加入副本集

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

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

然后就是rs.add()添加成员了。

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

谢谢

【问题讨论】:

  • 你用的是哪个版本的mongodb?哪个 javascript 驱动程序/版本?
  • mongo 3.2版,文档并没有真正说明javascript是哪个版本
  • additoin 脚本不是必须从主要执行吗?

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


【解决方案1】:

您可以执行以下操作。

确定哪个是主要的。

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。

【讨论】:

  • 有没有办法一次性添加所有新节点。
猜你喜欢
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多