MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment récupérer d'un rollback MongoDB ?

Si vous exécutez un réplica MongoDB défini dans un environnement de cloud public pendant une durée raisonnable, il y a de fortes chances que vous avez subi un 'rollback'. Cela semble intimidant, mais il existe des étapes simples pour récupérer vos données en cas de restauration de votre système.

Quand un rollback se produit-il ?

Une restauration dans un jeu d'instances dupliquées MongoDB peut se produire dans la séquence d'étapes suivante
1. Un primaire MongoDB accepte les écritures qui ne sont pas encore répliquées sur d'autres secondaires, puis plante
2. Un autre serveur devient principal et accepte d'autres écritures
3. Lorsque le primaire précédent revient et resynchronise son état avec la majorité

Puis-je empêcher les rollbacks de se produire en premier lieu ?

Bien sûr. Mais comme toujours, cela a un prix. Vous pouvez définir votre préoccupation d'écriture sur « MAJORITÉ ». Cela nécessitera que toutes vos écritures soient validées sur la majorité des nœuds du jeu de réplicas avant que MongoDB puisse le reconnaître avec succès. Cependant, cela aura un impact considérable sur votre débit d'écriture. Ainsi, dans le monde réel, un bon équilibre pourrait consister à n'utiliser que la préoccupation d'écriture "MAJORITÉ" pour les écritures de données transactionnelles importantes

Comment récupérer des données après un rollback ?

Vous trouverez ci-dessous quatre étapes simples pour récupérer vos données en cas de restauration

1.  Trouvez les fichiers de restauration
Lorsqu'une restauration se produit, les fichiers bson des données de restauration sont placés dans le répertoire "rollback" de votre chemin de données MongoDB. Les fichiers ressemblent à quelque chose comme est

<dbname>.<collectioname>.2016-02-08T19-34-44.0.bson

2. Chargez les données de la restauration dans une base de données ou un serveur séparé
Ma préférence est de copier les fichiers de restauration sur un nouveau serveur et d'utiliser mongorestore pour les charger sur le serveur. Voici la syntaxe que vous pouvez utiliser

mongorestore -u <> -p <> -h 127.0.0.1 -d <rollbackrestoretestdb> -c <rollbackrestoretestc> <path to the .bson file> --authenticationDatabase=<database of user>

3.  Passez au crible les données et nettoyez les données inutiles
À ce stade, en tant qu'administrateur de base de données, vous devrez faire preuve de discrétion pour décider quelles données de la restauration vous souhaitez conserver et quelles données n'ont plus de sens. Dans la plupart des cas, il est peu probable que vous puissiez simplement importer toutes les données. Il s'agit probablement de l'étape la plus difficile de la restauration par restauration.

4. Importez les données dans le cluster principal
Utilisez les outils mongodump et mongorestore pour télécharger les données nettoyées et réimportez-les dans votre cluster de production d'origine.

Pour plus d'informations sur les opérations de restauration, veuillez consulter la documentation officielle de MongoDB