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

Conseils de gestion de sauvegarde MongoDB pour les clusters partagés

Réaliser des sauvegardes appropriées de la base de données est une tâche critique. Outre la configuration de l'architecture haute disponibilité de votre MongoDB pour les services de base de données, vous devez également disposer de sauvegardes de vos bases de données pour garantir la disponibilité des données en cas de sinistre. Par exemple, si vous supprimez accidentellement des données d'une base de données de production, le seul moyen de récupérer les données du point de vue de la base de données est de restaurer à partir d'une sauvegarde.

Récemment, ClusterControl a commencé à prendre en charge une nouvelle méthode de sauvegarde, appelée Percona Backup pour MongoDB, développée par Percona. Il peut exécuter des sauvegardes cohérentes pour les ensembles de répliques MongoDB et les clusters partagés.

Dans ce blog, nous examinerons la gestion des sauvegardes pour les ensembles de répliques MongoDB et les clusters partagés.

Sauvegarde MongoDB dans une architecture hautement disponible

ClusterControl prend en charge 3 méthodes de sauvegarde, qui sont mongodump, mongodb consistent et Percona Backup for Mongodb. La sauvegarde cohérente mongodb utilise l'utilitaire mongodump comme méthode de sauvegarde, et la sauvegarde peut être restaurée à l'aide de mongorestore.

La dernière méthode de sauvegarde prise en charge est Percona Backup pour Mongodb pour des sauvegardes cohérentes et ponctuelles de l'ensemble de répliques et des clusters fragmentés, elle nécessite qu'un agent s'exécute sur chaque nœud ou ensemble de répliques ou nœuds de partition et nœuds de gestion pour les clusters de fragments, comme décrit ici.

Configurer et planifier une sauvegarde cohérente à l'aide de Percona Backup pour Mongodb dans ClusterControl est très simple. Accédez à la page de sauvegarde, puis configurez la sauvegarde Percona pour Mongodb. La condition préalable est que Percona Backup pour MongoDB s'exécute sur chaque nœud, qui peut également être installé à partir de ClusterControl.

Nous devons d'abord installer l'agent Percona Backup pour MongoDB avant de pouvoir programmer la sauvegarde comme ci-dessous :

Et puis configurez le répertoire de sauvegarde. Veuillez noter que le répertoire de sauvegarde doit être un disque partagé qui a été monté sur tous les nœuds avec exactement le même chemin monté que ci-dessous :

Si vous n'avez aucun type de disque partagé prêt dans le système, vous pouvez utiliser NFS pour y parvenir. Pour configurer le serveur NFS, nous avons besoin d'un serveur dédié / d'une machine virtuelle avec suffisamment d'espace libre pour stocker la sauvegarde. Installez les bibliothèques nfs-utils et nfs-utils-lib sur le serveur comme ci-dessous (en supposant que nous utilisons la base CentOS) :

[[email protected] ~]# yum install nfs-utils nfs-utils-lib

[[email protected] ~]# yum install portmap

Et démarrez les services portmap et nfs.

[[email protected] ~]# /etc/init.d/portmap start

[[email protected] ~]# /etc/init.d/nfs start

Après cela, ajoutez de nouvelles entrées dans /etc/exports comme indiqué ci-dessous :

[[email protected] ~]# vi /etc/exports

/backup 10.10.10.11(rw,sync,no_root_squash)

Sur le nœud de la base de données, nous avons juste besoin de monter le disque de stockage en tant que stockage partagé.

Dernière chose, cliquez simplement sur le bouton d'installation et cela déclenchera une nouvelle tâche pour configurer l'agent sur chaque nœud.

Une fois que tout PBM ggent est installé, nous pouvons configurer la méthode de sauvegarde pour le cluster comme ci-dessous :

Sauvegarde physique vs logique

La sauvegarde MongoDB prend en charge la sauvegarde logique et la sauvegarde physique. La méthode de sauvegarde logique à l'aide de l'utilitaire mongodump est incluse lorsque vous installez le package mongodb. Mongodump a besoin d'un accès à votre base de données mongodb, il nécessite donc un accès aux informations d'identification pour mongodump avec des privilèges de rôles de sauvegarde et doit avoir une action de recherche d'autorisation pour sauvegarder la base de données.

Cela fonctionne pour les formats de vidage de données BSON. Le mongodump se connectera à votre base de données avec les informations d'identification fournies, lira l'intégralité des données de votre base de données et videra les données dans des fichiers. Comme il s'agit d'un processus à thread unique, la sauvegarde prendra plus de temps, en particulier avec une base de données de grande taille. Mongodump ne maintient pas l'atomicité des transactions entre les fragments, c'est pourquoi il ne peut pas être utilisé comme stratégie de sauvegarde pour mongodb version 4.2 et supérieure dans un cluster fragmenté. Percona Backup for MongoDB est une sauvegarde logique mais prend en charge des sauvegardes cohérentes de clusters.

La sauvegarde physique dans MongoDB fonctionne via l'instantané des systèmes de fichiers mongodb, elle copie les fichiers mongodb sous-jacents vers un autre emplacement en tant que sauvegarde de base de votre base de données mongodb. L'instantané du système de fichiers est le système d'exploitation si vous utilisez LVM (Logical Volume Manager) comme logiciel pour gérer la disposition de votre disque et votre périphérique, ou un appareil logiciel, par exemple. Veritas ou NetApp Backup. Vous devez activer la journalisation, le journal d'activité des modifications dans mongodb avant d'exécuter l'instantané du système de fichiers pour rendre la sauvegarde cohérente.

Outre l'instantané du système de fichiers, vous pouvez également utiliser la commande cp ou rsync pour copier les fichiers de données MongoDB, mais vous devez arrêter le processus d'écriture sur mongodb car le processus de copie des fichiers de données n'est pas une opération atomique. La sauvegarde ne peut pas être utilisée pour la récupération ponctuelle dans des ensembles de répliques ou des architectures de cluster partagé.

Percona Backup pour MongoDB se compose de deux composants, le pbm-agent qui doit être installé sur chaque nœud et le pbm en tant qu'interface de ligne de commande pour interagir et exécuter les sauvegardes. Le pbm-agent coordonne entre les nœuds de la base de données et l'exécution du processus de sauvegarde et de restauration. Le pbm-agent décidera du meilleur nœud pour effectuer la sauvegarde.

Sauvegarde PITR

Dans de nombreux systèmes de base de données, il est courant d'utiliser un point de contrôle pour vider les données sur le disque. MongoDB utilise le moteur de stockage WiredTiger comme moteur de stockage par défaut et utilise également des points de contrôle pour fournir une vue cohérente des données. De plus, le point de contrôle dans MongoDB peut être utilisé pour récupérer du dernier point de contrôle. La journalisation fonctionne entre chaque point de contrôle, la journalisation est nécessaire pour récupérer des pannes inattendues qui se produisent à tout moment entre les points de contrôle. La journalisation garantit que les opérations d'écriture sont enregistrées sur le disque, MongoDB créera une entrée de journal pour chaque modification, y compris les octets modifiés et l'emplacement du disque.

Mongodump et mongorestore peuvent être utilisés pour la sauvegarde de récupération ponctuelle, il existe une option pour tirer parti de l'oplog. L'oplog est une collection plafonnée dans MongoDB qui suit tous les changements dans les collections pour chaque transaction d'écriture (par exemple, insertion, mise à jour, suppression). Ainsi, si vous souhaitez effectuer une récupération ponctuelle, vous devez restaurer à partir de la dernière sauvegarde complète et également utiliser le fichier oplog pour appliquer les modifications à l'heure exacte à laquelle vous souhaitez effectuer la récupération. Un autre outil qui peut être utilisé est la sauvegarde Percona pour MongoDB, le processus est similaire à mongodump, nous devons restaurer à partir de la sauvegarde, puis appliquer l'oplog.

Conclusion

Il est important d'effectuer une sauvegarde cohérente, en particulier dans les configurations MongoDB en cluster (jeu de réplicas ou cluster fragmenté). ClusterControl fournit un moyen simple de configurer Percona Backup pour MongoDB dans votre cluster et de planifier vos sauvegardes.