Eu tenho uma réplica do MongoDB definida com secundários que não passarão do estado STARTUP. O banco de dados é grande, mas eles já deveriam ter migrado para STARTUP2. As portas corretas estão abertas, pois posso conectar-me aos secundários do primário e vice-versa.
Responder1
As próximas etapas resolveram o problema semelhante:
No membro PRIMÁRIO:
rs.status() { "set" : "ShardD", "date" : ISODate("2015-08-28T17:01:40.647Z"), "myState" : 1, "members" : [ { "_id" : 0, "name" : "host.example.com:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 1167, "optime" : Timestamp(1440780623, 1), "optimeDate" : ISODate("2015-08-28T16:50:23Z"), "electionTime" : Timestamp(1440780252, 2), "electionDate" : ISODate("2015-08-28T16:44:12Z"), "configVersion" : 3, "self" : true }, { "_id" : 1, "name" : "192.0.2.222:27017", "health" : 1, "state" : 0, "stateStr" : "STARTUP", "uptime" : 584, "optime" : Timestamp(0, 0), "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "lastHeartbeat" : ISODate("2015-08-28T17:01:40.601Z"), "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"), "pingMs" : 0, "configVersion" : -2 }, { "_id" : 2, "name" : "192.0.2.223:27017", "health" : 1, "state" : 0, "stateStr" : "STARTUP", "uptime" : 676, "lastHeartbeat" : ISODate("2015-08-28T17:01:40.643Z"), "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"), "pingMs" : 0, "configVersion" : -2 } ], "ok" : 1
}
Verifique o nome do membro PRIMARY (geralmente é igual a"_id": 0)
Se o nome tiver um formato de nome de domínio, tente reescrever o nome no endereço IP.Alterar nomes de host em um conjunto de réplicas:
cfg = rs.conf() cfg.members[0].host = "192.0.2.221" rs.reconfig(cfg)
Depois que o conjunto de réplicas voltou ao status normal.
PS host.example.com foi resolvido para endereço IP em todos os hosts.
Responder2
Requer que o primário resolva o nome do host para o IP do secundário e também o secundário resolva o nome do host do primário para um IP.
No meu caso, esqueci de adicionar o arquivo hosts do secundário para resolver o nome do host do primário. Depois de atualizar o arquivo hosts no secundário, o estado do secundário mudou para STARTUP2 e depois para SECONDARY.
Responder3
Esse problema ocorre quando há problemas de conectividade entre hosts mongo.
Por exemplo, se o primário puder se conectar aos secundários, mas os secundários não puderem se conectar ao primário.
Nesse caso, o primário aceitará a configuração do conjunto de réplicas, pois pode se conectar aos secundários; no entanto, os secundários não podem sincronizar com o primário, pois não há conectividade do secundário para o primário.