sql >> Base de Datos >  >> NoSQL >> MongoDB

Una descripción general de Percona Backup para MongoDB

El método de respaldo conocido y popular para MongoDB es mongodump. Es un método de respaldo lógico, similar a mysqldump en MySQL o pg_dump en la base de datos PostgreSQL. Hay otra herramienta de copia de seguridad llamada Percona Backup for MongoDB. Tiene soporte para conjuntos de réplicas y clústeres de fragmentos, así como características más avanzadas como la recuperación de un punto en el tiempo.

Es importante tener en cuenta que realiza una copia de seguridad coherente para su clúster fragmentado de mongodb y también es compatible con el almacenamiento de objetos compatible con S3 para almacenar las copias de seguridad. En este blog, discutiremos la arquitectura, la instalación y el uso de Percona Backup para MongoDB.

Arquitectura

Percona Backup for MongoDB consta de dos componentes, el primero es una utilidad de proceso que debe instalarse en cada nodo de MongoDB, llamada pbm-agent. El agente pbm actúa para coordinar entre los nodos de la base de datos, ejecutando el proceso de copia de seguridad y restauración. También comprueba si el nodo es el nodo correcto para realizar la copia de seguridad. El pbm-agent requiere un usuario específico con algunos privilegios de rol; por ejemplo:readWrite, copia de seguridad, clusterMonitor y restauración. También necesita crear un nuevo rol para pbm con el tipo de acción anyAction y el tipo de recurso anyResource. El usuario debe existir en cada nodo del conjunto de réplicas y también en el servidor de configuración si usa una arquitectura de clúster fragmentado. Percona Backup for MongoDB utiliza un método de cadena de conexión URI de MongoDB para conectarse a la base de datos, por lo que requiere acceso con credenciales la primera vez.

El otro componente es la interfaz de línea de comandos llamada pbm. La utilidad pbm activa las acciones relacionadas con la copia de seguridad, por ejemplo, ejecutar la copia de seguridad, restaurar, enumerar la copia de seguridad, eliminar, etc. Antes de trabajar con pbm, deberá configurar las opciones de copia de seguridad, las opciones de restauración y las opciones de recuperación de un punto en el tiempo.

El archivo de configuración en sí se almacena en un archivo YAML y el comando pbm config se usa para cargar el archivo de configuración. Algunos de los comandos para la utilidad pbm se muestran a continuación:

  • pbm config, el comando utilizado para configurar la opción de copia de seguridad antes de ejecutarlo.
  • copia de seguridad de pbm, utilizada para realizar una copia de seguridad de MongoDB. Admite algunos métodos de compresión como gzip, pgzip, lz4, snappy.
  • pbm restore, el comando utilizado para restaurar una copia de seguridad en un nodo.
  • lista pbm, lista de los archivos de copia de seguridad actuales.
  • pbm cancel-backup, utilizado para cancelar el proceso de copia de seguridad en ejecución.
  • pbm delete-backup, utilizado para eliminar archivos de copia de seguridad. Hay dos opciones; puede especificar el nombre de archivo de la copia de seguridad para eliminar o eliminar los archivos de copia de seguridad que tienen más de cierta antigüedad.

Instalación de Percona Backup para MongoDB

Hay dos formas de instalar Percona Backup para MongoDB, puede usar el administrador de paquetes del sistema operativo y usar el Repositorio oficial de Percona para instalar el software, o puede compilar a partir del código fuente.

Como requisitos previos antes de instalar el pbm a través de la instalación de yum/apt, debe configurar el Repositorio de Percona y luego habilitar el repositorio de pbm:

[[email protected] ~]# percona-release enable pbm release

* Enabling the Percona Backup MongoDB repository

<*> All done!

Luego, instale Percona Backup para MongoDB. En este caso, estoy usando el sistema operativo basado en CentOS, así que haremos yum install:

[[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!

Después de que esté completo, puede configurar pbm-agent como un proceso en segundo plano y jugar con la interfaz de línea de comandos de 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

Copia de seguridad en acción

Antes de realizar una copia de seguridad de MongoDB, asegúrese de que pbm-agent se esté ejecutando en cada nodo y que la configuración de la copia de seguridad se haya establecido como se muestra a continuación, configure la ruta de la copia de seguridad:

[[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

Y prueba ejecutar la copia de seguridad en uno de los nodos secundarios:

[[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

Eso es todo por ahora. Próximamente, ClusterControl 1.8.1 le permitirá programar y administrar sus clústeres de MongoDB utilizando Percona Backup para MongoDB.