Eu tenho uma Mongo
réplica definida com alguns secundários. Uma caixa que hospeda uma instância secundária caiu e perdeu o banco de dados.
Iniciei a Mongo
instância secundária novamente e agora ela fica presa no STARTUP2 por mais de 12 horas. Isso faz sentido ? Os documentos dizem que Mongo
devem estar em STARTUP2 por um curto período de tempo antes de entrar no estado RECOVERING
O que significa exatamente o STARTUP2? Está copiando o banco de dados do primário? Como posso verificá-lo (assumindo que o Mongo esteja sendo executado no Linux)?
show databases
falha comnot master and slaveOk=false
O estado STARTUP2 significa que o nó não pode votar. Um membro de um RS entra nesse estado quando o processo do MongoD termina de carregar sua configuração. Nesse estado, o membro criou threads para lidar com as operações de replicação interna, mas ainda precisa mudar de estado para Recuperando e daí para a Secundária (consulte o [estado e seus detalhes nos documentos]) .
Se o seu nó estiver nesse estado há mais de um breve período, você estará encontrando algum comportamento estranho. É praticamente impossível analisar sem os logs para determinar por que está bloqueado. A execução de rs.status () e db.printSlaveReplicationInfo () fornecerá alguns detalhes sobre a imagem local no nó.
A abordagem normal para resolver isso seria encerrar o nó, limpar seus arquivos de dados (esses arquivos no dbpath) e reiniciá-lo. Isso reiniciará o processo de sincronização inicial e deverá passar para SECONDARY. Se ele travar no STARTUP2 novamente, será necessário examinar os logs para reunir mais informações sobre o motivo - há várias causas, mas uma que pode acontecer é uma rede inadequada ou alguma contenção de recursos locais.
Um ponto a ser observado é que, enquanto uma sincronização inicial estiver em andamento, o nó permanecerá em STARTUP2; portanto, dependendo da quantidade de dados sincronizados, isso pode levar uma quantidade considerável de tempo (potencialmente dias).
fonte
db.stats
banco de dados, está crescendo. O log diz que alguns objetoscloned
. Ainda estou procurando possíveis causas para esse problema.ping
entre os hosts está OK.Uma causa possível é que seu secundário se torne "obsoleto", conforme indicado aqui .
Ao ressincronizar um membro, verifique se o RS não está sob carga pesada.
fonte
O estado STARTUP2 pode ser devido ao espaço insuficiente no disco. Bem, como não há onde sincronizar, ele pode permanecer apenas no estado @ STARTUP2.
fonte