我有一个带有3个节点的副本集,我有一个名为dev-6的服务器,它运行mongo 3.0.6,dev 5上有2个mongos,运行3.2。我希望dev 6成为主节点,因此我已经将其他2个节点添加到它启动的副本集中,一旦我这样做,它就成为主节点,其他2个节点开始同步到它。下面是一个屏幕截图,说明当我下载dev 6,然后重新启动时,我的设置是什么样子的。

因为,预期的dev 6是次要的,dev 5: 27018也是次要的。我想知道的是,为什么dev 5说没有人可以同步,但是dev 5:27019表示它与dev 5 :27018同步。
我现在将遵循蒙戈指令,使dev 6成为主要的,这是现在的结果。

Dev 6是主要的,但我想了解的是为什么其他dev 5实例与dev 6没有连接。在得出一些结论之前,我能够从dev 6中选择dev 5,而visa相反,/etc/hosts配置文件包含彼此的ip地址。
编辑:是基于复制集无法连接到下面的消息"lastHeartbeatMessage" : "could not find member to sync from",。如果我运行rs.config(//current cfg),或者添加或删除一个副本集,这似乎是固定的。
发布于 2016-10-31 21:19:09
在这两种情况下,你的复制品似乎都是健康的。所有次要程序都应用了主操作日志中的最后一个操作(optime/optimeDate是相同的),而且lastHeartbeat稍微落后于dev 6时间。关于lastHeartbeatMessage,请参阅这 jira问题,内容如下:
当二次选择要同步的源时,它会选择一个比self更新(不等于)的节点,因此启动后,当所有节点都有一些数据时,oplog将是相同的,因此次要节点不能选择同步源,写入操作发生后写入,主节点将有较新的oplog,次要节点可以成功地选择要同步的延迟,错误消息将消失。
发布于 2016-10-31 21:23:13
错误“找不到要同步的成员”,我通常与无法相互交谈的复制集成员相关联。或者是因为防火墙或凭据问题。
我知道您可以对服务器进行ping,但是您是否尝试过使用mongoclient从第二个服务器连接到主mongo实例?
mongo vpc-dev-app-06:27017
必要时提供适当的用户凭据。
作为升级的一部分,mongod.conf中有什么变化吗?
https://stackoverflow.com/questions/40348221
复制相似问题