我正在Google Cloud Compute Engine中将MongoDB实例从一个地区移动到另一个地区。我当前运行的副本集有2.6个MongoDB实例,计划是使用MongoDB 3.4为新区域设置新实例,将一个新实例提升为主实例并关闭旧实例。这样,生产环境的停机时间最短。
我已成功将新实例添加到现有集合中(在暂存测试设置中)但是当新的3.6实例尝试将心跳发送到主设备(2.6)时,我收到以下错误。
[NetworkInterfaceASIO-Replication-0] Failed to connect to mongo-arb:27017 - CommandNotFound: no such cmd: saslStart
[ReplicationExecutor] Error in heartbeat request to mongo-db:27017; CommandNotFound: no such cmd: saslStart
因此它无法对仲裁者和主要人员发出心跳请求。
当我检查主要的rs.status()时,我会看到新实例的以下信息
{
"_id" : 2,
"name" : "mongodb-1:27017",
"health" : 1,
"state" : 0,
"stateStr" : "STARTUP",
"uptime" : 376,
"optime" : Timestamp(0, 0),
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" : ISODate("2017-03-09T06:39:03Z"),
"lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
"pingMs" : 0
}
我试图搜索saslStart背后的错误,但没有运气。是否与版本(可能是2.6)有关,不支持sasl或它可能是什么?