La méthode de sauvegarde connue et populaire pour MongoDB est mongodump. Il s'agit d'une méthode de sauvegarde logique, similaire à mysqldump dans MySQL ou pg_dump dans la base de données PostgreSQL. Il existe un autre outil de sauvegarde appelé Percona Backup pour MongoDB. Il prend en charge les jeux de répliques et les clusters de fragments, ainsi que des fonctionnalités plus avancées telles que la récupération à un moment donné.
Il est important de noter qu'il effectue une sauvegarde cohérente pour votre cluster fragmenté mongodb et prend également en charge le stockage d'objets compatible S3 pour stocker les sauvegardes. Dans ce blog, nous discuterons de l'architecture, de l'installation et de l'utilisation de Percona Backup pour MongoDB.
Architecture
Percona Backup pour MongoDB se compose de deux composants, le premier est un utilitaire de processus qui doit être installé sur chaque nœud MongoDB, appelé pbm-agent. Le pbm-agent agit pour assurer la coordination entre les nœuds de la base de données, en exécutant le processus de sauvegarde et de restauration. Il vérifie également si le nœud est le bon nœud pour effectuer la sauvegarde. Le pbm-agent nécessite un utilisateur spécifique avec certains privilèges de rôle ; par exemple :readWrite, sauvegarde, clusterMonitor et restauration. Il doit également créer un nouveau rôle pour pbm avec le type d'action anyAction et le type de ressource anyResource. L'utilisateur doit exister sur chaque nœud du jeu de réplicas et également sur le serveur de configuration si vous utilisez une architecture de cluster partitionnée. Percona Backup pour MongoDB utilise une méthode de chaîne de connexion URI MongoDB pour se connecter à la base de données, c'est pourquoi il nécessite un accès aux informations d'identification la première fois.
L'autre composant est l'interface de ligne de commande appelée pbm. L'utilitaire pbm déclenche les actions liées à la sauvegarde, par exemple, exécuter la sauvegarde, la restauration, la sauvegarde de la liste, la suppression, etc. Avant de travailler avec pbm, vous devez configurer les options de sauvegarde, les options de restauration et les options de récupération à un instant donné.
Le fichier de configuration lui-même est stocké dans un fichier YAML, et la commande pbm config est utilisée pour charger le fichier de configuration. Certaines des commandes de l'utilitaire pbm sont présentées ci-dessous :
- pbm config, la commande utilisée pour configurer l'option de sauvegarde avant son exécution.
- sauvegarde pbm, utilisée pour effectuer une sauvegarde de MongoDB. Il prend en charge certaines méthodes de compression telles que gzip, pgzip, lz4, snappy.
- pbm restore, la commande utilisée pour restaurer une sauvegarde sur un nœud.
- liste pbm, liste des fichiers de sauvegarde actuels.
- pbm cancel-backup, utilisé pour annuler le processus de sauvegarde en cours.
- pbm delete-backup, utilisé pour supprimer les fichiers de sauvegarde. Il y a deux options; vous pouvez spécifier le nom du fichier de sauvegarde pour supprimer ou supprimer les fichiers de sauvegarde qui ont plus d'un certain âge.
Installation de Percona Backup pour MongoDB
Vous pouvez installer Percona Backup pour MongoDB de deux manières, vous pouvez utiliser le gestionnaire de packages du système d'exploitation et utiliser le référentiel Percona officiel pour installer le logiciel, ou vous pouvez créer à partir du code source.
Comme prérequis avant d'installer le pbm via l'installation yum/apt, vous devez configurer le référentiel Percona, puis après cela, activer le référentiel pbm :
[[email protected] ~]# percona-release enable pbm release
* Enabling the Percona Backup MongoDB repository
<*> All done!
Ensuite, installez Percona Backup pour MongoDB. Dans ce cas, j'utilise le système d'exploitation basé sur CentOS, nous allons donc installer yum :
[[email protected] ~]# yum install percona-backup-mongodb
Loaded plugins: fastestmirror
Repository percona-release-noarch is listed more than once in the configuration
Repository percona-release is listed more than once in the configuration
Repository percona-release-noarch is listed more than once in the configuration
Repository percona-release-source is listed more than once in the configuration
(1/10): extras/7/x86_64/primary_db | 222 kB 00:00:00
(2/10): pbm-release-x86_64/7/primary_db | 4.2 kB 00:00:02
(3/10): percona-tools-release/7/x86_64/primary_db | 84 kB 00:00:00
(4/10): tools-release-x86_64/7/primary_db | 84 kB 00:00:00
(5/10): percona-release-x86_64/7/primary_db | 1.1 MB 00:00:06
(6/10): percona-release/7/x86_64/primary_db | 1.1 MB 00:00:08
(7/10): base/7/x86_64/primary_db | 6.1 MB 00:00:11
(8/10): updates/7/x86_64/primary_db | 2.5 MB 00:00:08
(9/10): epel/x86_64/updateinfo | 1.0 MB 00:00:13
(10/10): epel/x86_64/primary_db | 6.9 MB 00:00:07
Loading mirror speeds from cached hostfile
* base: mirror.telkomuniversity.ac.id
* epel: ftp.jaist.ac.jp
* extras: mirror.telkomuniversity.ac.id
* updates: mirror.telkomuniversity.ac.id
Resolving Dependencies
--> Running transaction check
---> Package percona-backup-mongodb.x86_64 0:1.3.3-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================================
Installing:
percona-backup-mongodb x86_64 1.3.3-1.el7 pbm-release-x86_64 16 M
Transaction Summary
==================================================================================================================================================================
Install 1 Package
Total download size: 16 M
Installed size: 61 M
Is this ok [y/d/N]: y
Downloading packages:
percona-backup-mongodb-1.3.3-1.el7.x86_64.rpm | 16 MB 00:00:55
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : percona-backup-mongodb-1.3.3-1.el7.x86_64 1/1
Verifying : percona-backup-mongodb-1.3.3-1.el7.x86_64 1/1
Installed:
percona-backup-mongodb.x86_64 0:1.3.3-1.el7
Complete!
Une fois terminé, vous pouvez configurer pbm-agent en tant que processus d'arrière-plan et jouer avec l'interface de ligne de commande pbm :
[[email protected] ~]# pbm
usage: pbm [<flags>] <command> [<args> ...]
Percona Backup for MongoDB
Flags:
--help Show context-sensitive help (also try
--help-long and --help-man).
--mongodb-uri=MONGODB-URI MongoDB connection string (Default =
PBM_MONGODB_URI environment variable)
--compression=s2 Compression type
<none>/<gzip>/<snappy>/<lz4>/<s2>/<pgzip>
Commands:
help [<command>...]
Show help.
config [<flags>] [<key>]
Set, change or list the config
backup
Make backup
restore [<flags>] [<backup_name>]
Restore backup
cancel-backup
Restore backup
list [<flags>]
Backup list
delete-backup [<flags>] [<name>]
Delete a backup
version [<flags>]
PBM version info
Sauvegarde en action
Avant d'effectuer une sauvegarde de MongoDB, assurez-vous que l'agent pbm est en cours d'exécution sur chaque nœud et que la configuration de sauvegarde a été définie comme indiqué ci-dessous, définissez le chemin de la sauvegarde :
[[email protected] ~]# pbm config --file=/root/config.yaml --mongodb-uri "mongodb://pbmuser:***@localhost:27017/"
[Config set]
------
pitr:
enabled: false
storage:
type: filesystem
filesystem:
path: /data/backups
Et testez l'exécution de la sauvegarde sur l'un des nœuds secondaires :
[[email protected] ~]# pbm backup --mongodb-uri "mongodb://pbmuser:*****@localhost:27017/" --compression=pgzip
Starting backup '2020-11-13T15:28:49Z'...................
Backup '2020-11-13T15:28:49Z' to remote store '/data/backups' has started
C'est tout pour le moment. Bientôt, ClusterControl 1.8.1 vous permettra de planifier et de gérer vos clusters MongoDB à l'aide de Percona Backup pour MongoDB.