MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como se recuperar de uma reversão do MongoDB?


Se você estiver executando uma réplica do MongoDB definida em um ambiente de nuvem pública por um período de tempo razoável, as chances são de que você experimentou uma 'reversão'. Parece assustador, mas existem etapas simples para recuperar seus dados caso seu sistema sofra uma reversão.

Quando ocorre uma reversão?


Uma reversão em um conjunto de réplicas do MongoDB pode ocorrer na seguinte sequência de etapas
1. Um primário do MongoDB aceita gravações que ainda não foram replicadas para outros secundários e depois trava
2. Outro servidor se torna primário e aceita outras gravações
3. Quando o primário anterior volta a funcionar e ressincroniza seu estado com a maioria

Posso impedir que reversões aconteçam em primeiro lugar?


Certo. Mas como sempre tem um preço. Você pode definir sua preocupação de gravação como 'MAJORITY'. Isso exigirá que todas as suas gravações sejam confirmadas com a maioria dos nós no conjunto de réplicas antes que o MongoDB possa reconhecê-lo com êxito. No entanto, isso terá um impacto dramático no seu rendimento de gravação. Portanto, no mundo real, um bom equilíbrio pode ser usar apenas a preocupação de gravação 'MAJORITY' para gravações de dados transacionais importantes

Como recuperar dados de uma reversão?


Abaixo estão quatro etapas fáceis para recuperar seus dados em caso de reversão

1.  Encontre os arquivos de reversão
Quando ocorre uma reversão, os arquivos bson dos dados de reversão são colocados no diretório 'reversão' do caminho de dados do MongoDB. Os arquivos parecem algo como é
<dbname>.<collectioname>.2016-02-08T19-34-44.0.bson

2. Carregue os dados do rollback em um banco de dados ou servidor separado
Minha preferência é copiar os arquivos de rollback para um novo servidor e usar o mongorestore para carregá-los no servidor. Aqui está a sintaxe que você pode usar
mongorestore -u <> -p <> -h 127.0.0.1 -d <rollbackrestoretestdb> -c <rollbackrestoretestc> <path to the .bson file> --authenticationDatabase=<database of user>

3.  Pesquise os dados e limpe os dados desnecessários
Neste momento, como administrador de banco de dados, você terá que usar seu critério para decidir quais dados da reversão deseja manter e quais dados não fazem mais sentido. Na maioria dos casos, é improvável que você possa simplesmente importar todos os dados. Este é provavelmente o passo mais difícil na recuperação de rollback.

4. Importe dados para o primário do cluster
Use as ferramentas mongodump e mongorestore para baixar os dados limpos e reimportá-los para o cluster de produção original.

Para mais informações sobre as operações de rollback, consulte a documentação oficial do MongoDB