FAQ
Comment sauvegarder une base de données MongoDB en production sans temps d’arrêt ?
Pour les serveurs autonomes et les ensembles de répliques, le plugin Bacula Enterprise MongoDB exécute mongodump sur une base de données en production sans interrompre les opérations de lecture ou d’écriture, et la base de données reste pleinement opérationnelle tout au long des tâches de sauvegarde. Cela dit, la garantie d’absence d’interruption ne s’applique pas aux sauvegardes de clusters fragmentés, car celles-ci nécessitent (1) d’arrêter le balancier de fragments via sh.stopBalancer(), (2) de désactiver ensuite les migrations de fragments planifiées, et (3) d’empêcher les écritures et les transformations de schéma pendant toute la durée de la sauvegarde. Il faut s’attendre à ce que les écritures soient interrompues pendant la fenêtre de sauvegarde. Sauvegardez d’abord le jeu de répliques du serveur de configuration, puis capturez chaque jeu de répliques de fragment à des intervalles aussi rapprochés que possible.
Quelle est la différence entre une sauvegarde logique et une sauvegarde physique dans MongoDB ?
Une sauvegarde logique utilise mongodump pour exporter les documents, les index et les schémas de la base de données vers des fichiers d’archive BSON portables. Ces archives sont indépendantes du moteur de stockage sous-jacent et peuvent généralement être restaurées sur un autre serveur, bien que les restaurations entre versions différentes dépendent de la compatibilité des versions de MongoDB, de la version de Database Tools et de la version de compatibilité des fonctionnalités (FCV). Ainsi, toutes les combinaisons ne sont pas garanties de fonctionner. Une sauvegarde physique, en revanche, copie les fichiers de données brutes depuis le disque, ce qui est bien plus rapide pour les très grands ensembles de données, mais lie l’artefact au moteur de stockage et à la version d’origine.
Comment fonctionne la restauration à un instant donné pour les ensembles de répliques MongoDB ?
La restauration à un instant donné est disponible exclusivement pour les ensembles de répliques. Lorsqu’une restauration est nécessaire, le paramètre `replay_to` interrompt la relecture de l’oplog à n’importe quel moment de la fenêtre oplog disponible et restaure l’ensemble de répliques à l’état protégé le plus proche au sein de cette fenêtre avant la survenue d’un incident. Les serveurs autonomes et les clusters fragmentés ne prennent pas en charge la restauration à un instant donné (PITR) via ce plugin, car ils ne fournissent pas de chaîne de restauration oplog de la même manière que les ensembles de répliques. Si vous devez restaurer une collection spécifique à un instant donné, la procédure recommandée consiste à restaurer d’abord la chaîne complète de l’ensemble de répliques vers une cible hors production, puis à extraire et à réconcilier les données requises au niveau de l’application.
Peut-on restaurer une seule collection MongoDB sans restaurer l’intégralité de la base de données ?
Oui. Le plugin MongoDB de Bacula prend en charge les filtres d’inclusion et d’exclusion au niveau de la base de données et des collections, ce qui permet à une tâche de restauration de cibler une collection spécifique sans toucher au reste de la base de données. Cela permet de réduire la durée des fenêtres de restauration et de limiter le risque d’écraser des données saines en même temps que les données endommagées que vous devez remplacer. Une restauration complète de la base de données est disponible si nécessaire, mais ce n’est jamais la seule option.
Notez également que la restauration granulaire au niveau des collections s’applique aux artefacts logiques complets et ne peut pas être combinée avec la relecture de l’oplog, ce qui signifie que la restauration à un instant donné s’effectue à chaque fois à l’échelle de l’ensemble des répliques. Si vous avez besoin des deux, veillez à restaurer d’abord l’ensemble complet de la chaîne de répliques vers une cible hors production, puis à extraire les données requises au niveau de l’application.
Pourquoi utiliser le plugin MongoDB de Bacula plutôt que d’exécuter mongodump manuellement ?
mongodump est en soi un outil performant pour une exportation logique unique. Cela dit, son inconvénient est qu’il ne vous offre pas toutes les fonctionnalités (planification centralisée, conservation automatisée, validation par somme de contrôle, métadonnées de la chaîne de récupération, et la liste est longue) qui interviennent après le dump. Le plugin MongoDB de Bacula Enterprise intègre mongodump et mongorestore au sein du moteur de politiques de Bacula, de sorte que chaque tâche de sauvegarde MongoDB est correctement planifiée, cataloguée, validée et peut être restaurée à partir de la même console qui gère le reste de votre infrastructure.