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

Un aperçu de Percona Backup pour MongoDB

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.