Preciso executar o db.repairDatabase () em todos os mongods?

2

Eu estou manipulando um cluster shared do MongoDB (2.4.10) que tem apenas 1 réplica definida até agora. Eu corri db.repairDatabase () em um mongos.

Com isso, posso recuperar espaço livre no nó principal. Mas não nos secundários. Preciso executá-lo em todos os membros do conjunto de réplicas?

Obrigado,

Greg.

    
por Icu 19.06.2014 / 15:52

1 resposta

2

Sim. Você desejará parar o processo secundário do mongo, comentar os parâmetros de configuração da réplica (replSet, keyFile, etc), iniciar o processo do mongo e, em seguida, efetuar login e executar o reparo. Uma vez concluído, interrompa o processo do mongod, altere a configuração de volta para as configurações originais e inicie o mongod. Isso pressupõe que você tenha uma implantação de três membros com votação correta, etc.

Outra opção é simplesmente ressincronizar o secundário (o seu oplog é longo o suficiente):

link

    
por 19.06.2014 / 16:13