MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Uma visão geral do Percona Backup para MongoDB

O método de backup conhecido e popular para o MongoDB é o mongodump. É um método de backup lógico, semelhante ao mysqldump no MySQL ou pg_dump no banco de dados PostgreSQL. Existe outra ferramenta de backup chamada Percona Backup for MongoDB. Ele tem suporte para conjuntos de réplicas e clusters de fragmentos, além de recursos mais avançados, como recuperação pontual.

É importante observar que ele executa um backup consistente para seu cluster fragmentado mongodb e também suporta armazenamento de objetos compatível com S3 para armazenar os backups. Neste blog, discutiremos arquitetura, instalação e uso do Percona Backup for MongoDB.

Arquitetura

Percona Backup for MongoDB consiste em dois componentes, o primeiro é um utilitário de processo que precisa ser instalado em cada nó do MongoDB, chamado pbm-agent. O agente pbm atua na coordenação entre os nós do banco de dados, executando o processo de backup e restauração. Ele também verifica se o nó é o nó correto para fazer o backup. O agente pbm requer um usuário específico com alguns privilégios de função; por exemplo:readWrite, backup, clusterMonitor e restore. Ele também precisa criar uma nova função para pbm com o tipo de ação anyAction e o tipo de recurso anyResource. O usuário deve existir em cada nó no conjunto de réplicas e também no servidor de configuração se você usar a arquitetura de cluster fragmentado. O Percona Backup for MongoDB usa um método de string de conexão de URI do MongoDB para se conectar ao banco de dados, e é por isso que requer acesso de credencial na primeira vez.

O outro componente é a interface de linha de comando chamada pbm. pbm aciona as ações relacionadas ao backup, por exemplo, executar backup, restaurar, listar backup, excluir e assim por diante. Antes de trabalhar com pbm, você precisa configurar opções de backup, opções de restauração e opções de recuperação pontual.

O próprio arquivo de configuração é armazenado em um arquivo YAML, e o comando pbm config é usado para carregar o arquivo de configuração. Alguns dos comandos para o utilitário pbm são mostrados abaixo:

  • pbm config, o comando usado para configurar a opção de backup antes de ser executada.
  • backup pbm, usado para fazer backup do MongoDB. Ele suporta alguns métodos de compactação, como gzip, pgzip, lz4, snappy.
  • pbm restore, o comando usado para restaurar um backup em um nó.
  • lista pbm,  lista dos arquivos de backup atuais.
  • pbm cancel-backup, usado para cancelar o processo de backup em execução.
  • pbm delete-backup, usado para excluir arquivos de backup. Existem duas opções; você pode especificar o nome do arquivo de backup para excluir ou excluir arquivos de backup com mais de uma determinada idade.

Instalação do Percona Backup para MongoDB

Existem duas maneiras de instalar o Percona Backup para MongoDB, você pode usar o gerenciador de pacotes do sistema operacional e usar o Repositório Percona oficial para instalar o software, ou você pode compilar a partir do código-fonte.

Como pré-requisitos antes de instalar o pbm através da instalação do yum/apt, você precisa configurar o Percona Repository, e depois disso, habilitar o repositório pbm:

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

* Enabling the Percona Backup MongoDB repository

<*> All done!

Em seguida, instale o Percona Backup para MongoDB. Nesse caso, estou usando o sistema operacional baseado em CentOS, então faremos a instalação do 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!

Depois de concluído, você pode configurar o pbm-agent como um processo em segundo plano e brincar com a interface de linha de comando 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

Backup em ação

Antes de fazer um backup do MongoDB, verifique se o pbm-agent está sendo executado em cada nó e se a configuração do backup foi definida conforme mostrado abaixo, defina o caminho do backup:

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

E teste a execução do backup em um dos nós secundários:

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

É tudo por agora. Em breve, o ClusterControl 1.8.1 permitirá que você agende e gerencie seus clusters MongoDB usando o Percona Backup for MongoDB.