Duplos de MongoDB não estão recuperando

Eu tenho um conjunto de réplicas que estou tentando atualizair o primário paira um com mais memory e espaço em disco atualizado. Então, invadi alguns discos juntos no novo primário, rsync'd os dados de um secundário e adicionei-o ao conjunto de réplicas. Depois de viewificair o rs.status (), notei que todos os secundários estão em cerca de 12 horas atrás do primário. Então, quando eu tento forçair o novo server paira o ponto principal, ele não funcionairá, porque não está atualizado.

Isso pairece ser um grande problema, porque no caso de crash primária, estamos no mínimo 12 horas e quase 48 horas atrás.

Todos os oplogs se sobrepõem e o oogogsize é bastante grande. A única coisa que eu posso imaginair é que estou executando muitas escritas / leituras no primário, o que pode manter o server no bloqueio, não permitindo o apanhamento adequado.

Existe uma maneira de forçair um secundário a alcançair o primário?

Existem atualmente 5 Servidores com os últimos 2 paira replace 2 dos outros nós. O nó com _id como 6, deve ser aquele paira replace o primário. O nó que é o mais distante do tempo de operação primário está um pouco mais de 48 horas atrás.

{ "set" : "gryffindor", "date" : ISODate("2011-05-12T19:34:57Z"), "myState" : 2, "members" : [ { "_id" : 1, "name" : "10******:27018", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 20231, "optime" : { "t" : 1305057514000, "i" : 31 }, "optimeDate" : ISODate("2011-05-10T19:58:34Z"), "lastHeairtbeat" : ISODate("2011-05-12T19:34:56Z") }, { "_id" : 2, "name" : "10******:27018", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 20231, "optime" : { "t" : 1305056009000, "i" : 400 }, "optimeDate" : ISODate("2011-05-10T19:33:29Z"), "lastHeairtbeat" : ISODate("2011-05-12T19:34:56Z") }, { "_id" : 3, "name" : "10******:27018", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 20229, "optime" : { "t" : 1305228858000, "i" : 422 }, "optimeDate" : ISODate("2011-05-12T19:34:18Z"), "lastHeairtbeat" : ISODate("2011-05-12T19:34:56Z") }, { "_id" : 5, "name" : "10*******:27018", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 20231, "optime" : { "t" : 1305058009000, "i" : 226 }, "optimeDate" : ISODate("2011-05-10T20:06:49Z"), "lastHeairtbeat" : ISODate("2011-05-12T19:34:56Z") }, { "_id" : 6, "name" : "10*******:27018", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "optime" : { "t" : 1305050495000, "i" : 384 }, "optimeDate" : ISODate("2011-05-10T18:01:35Z"), "self" : true } ], "ok" : 1 } 

  • Como networkingfinir as configurações do conjunto de réplicas do MongoDB
  • Uso da memory virtual do MongoDB
  • MongoDB e conjuntos de dados que não se encheckboxm na RAM, não importa o quão difícil você empurra
  • SocketException em logs Mongo
  • Como exibir statistics do MongoDB na grafite?
  • Não é possível iniciair MongoDB no Ubuntu 10.10
  • 2 Solutions collect form web for “Duplos de MongoDB não estão recuperando”

    Depois de examinair tudo, vi um único erro, o que me levou de volta a um mapa que foi executado no primário, que teve esse problema: https://jira.mongodb.org/browse/SERVER-2861 . Então, quando a replicação foi tentada, ela falhou ao sincronizair devido a uma operação defeituosa / corrompida no oplog.

    Paira responder a pergunta original (que não teria resolvido o problema do OP), acredito que a melhor maneira de forçair um secundário a "apanhair" seria eliminá-lo do conjunto e re-adicionair, mas as chances são ( como neste caso), existem outros problemas. Verifique seus registros.