Como verificar a integridade dos metadados do mongodb?

2

Eu tive que substituir um servidor de configuração mongodb em um cluster que contém apenas 1 fragmento.

Por engano, iniciei o novo servidor de configuração sem nenhum dado e recebi a seguinte mensagem nos registros:

[CheckConfigServers] ERRO: não foi possível verificar se os servidores de configuração estão em sincronia :: causados por :: config servers configserver1.mydomain.com:27019 e configserver2.mydomain.com:27019 differ

Seguindo o procedimento em ' link ', tentei parar o balanceador de um mongos. Mas recebi uma mensagem de erro. Eu só pude parar o balanceador depois de ter reiniciado o configserver vazio.

Eu copiei o conteúdo dbpath de configserver2 para configserver1 e tudo parece bem.

Gostaria de garantir que nenhum dado tenha sido perdido ou perdido durante essas operações. Com apenas 1 fragmento no cluster, os dados podem ser perdidos?

Obrigado,

Greg.

    
por Icu 21.08.2013 / 13:50

2 respostas

3

A mensagem de aviso CheckConfigServers que você recebeu na inicialização é uma verificação de integridade para evitar que quaisquer alterações de metadados (por exemplo, migração de partes como resultado de uma rodada de balanceamento) aconteçam enquanto os servidores de configuração estão em um estado inconsistente. >

Parar o servidor de configuração com o dbpath vazio e recopiar os dados de um bom servidor de configuração foi a ação correta a ser executada. Os servidores de configuração do MongoDB não são um conjunto de réplicas, e são mantidos em sincronia por meio de confirmações de duas fases coordenadas pelos servidores mongod / mongos em seu cluster fragmentado.

Se você tiver apenas um fragmento, os dados não serão perdidos; não há para onde migrar.

Além disso, se você tiver ativado o recurso de sharding, mas não tiver sharelado nenhuma coleção, os dados estarão todos no shard primário.

    
por 21.08.2013 / 16:40
1

Eu acho que você deveria estar bem com a execução do printShardingStatus () comando.

    
por 21.08.2013 / 14:09