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

Dicas de gerenciamento de backup do MongoDB para clusters compartilhados

Fazer backups adequados do banco de dados é uma tarefa crítica. Além de definir a arquitetura de alta disponibilidade do seu MongoDB para serviços de banco de dados, você também precisa ter backups de seus bancos de dados para garantir a disponibilidade dos dados em caso de desastre. Por exemplo, se você excluir acidentalmente alguns dados de um banco de dados de produção, a única maneira de recuperar os dados do ponto de vista do banco de dados é restaurar a partir do backup.

Recentemente, o ClusterControl começou a oferecer suporte a um novo método de backup, chamado Percona Backup for MongoDB, desenvolvido pela Percona. Ele pode executar backups consistentes para conjuntos de réplicas do MongoDB e clusters fragmentados.

Neste blog, veremos o gerenciamento de backup para conjuntos de réplicas do MongoDB e clusters fragmentados.

Backup do MongoDB em arquitetura de alta disponibilidade

O ClusterControl é compatível com 3 métodos de backup, que são mongodump, mongodb consistente e Percona Backup for Mongodb. O backup consistente do mongodb está usando o utilitário mongodump como método de backup e o backup pode ser restaurado usando o mongorestore.

O método de backup suportado mais recente é o Percona Backup for Mongodb para backups consistentes e pontuais de conjuntos de réplicas e clusters fragmentados. Ele requer que um agente seja executado em cada nó ou conjunto de réplicas ou nós de fragmentos e nós de gerenciamento para clusters de estilhaços conforme descrito aqui.

Configurar e agendar backup consistente usando o Percona Backup para Mongodb no ClusterControl é muito fácil. Vá para a página Backup e configure o Backup Percona para Mongodb. O pré-requisito é ter o Percona Backup for MongoDB rodando em cada nó, que também pode ser instalado a partir do ClusterControl.

Precisamos instalar o agente do Percona Backup for MongoDB antes de poder agendar o backup conforme abaixo:

E então configure o diretório de backup. Observe que o diretório de backup deve ser um disco compartilhado que foi montado em todos os nós com exatamente o mesmo caminho montado abaixo:

Se você não tiver nenhum tipo de disco compartilhado pronto no sistema, você pode usar o NFS para fazer isso. Para configurar o servidor NFS, precisamos de um servidor dedicado/máquina virtual com espaço livre suficiente para armazenar o backup. Instale a biblioteca nfs-utils e nfs-utils-lib no servidor conforme abaixo (assumindo que estamos usando o CentOS baseado):

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

[[email protected] ~]# yum install portmap

E inicie os serviços portmap e nfs.

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

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

Depois disso, adicione novas entradas em /etc/exports conforme mostrado abaixo:

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

/backup 10.10.10.11(rw,sync,no_root_squash)

No nó do banco de dados, só precisamos montar o disco de armazenamento como armazenamento compartilhado.

Por último, basta clicar no botão de instalação e ele acionará um novo trabalho para configurar o agente em cada nó.

Depois que o PBM ggent estiver instalado, podemos configurar o método de backup para o cluster como abaixo:

Backup Físico x Lógico

O backup do MongoDB suporta backup lógico e backup físico. O método para backup lógico usando o utilitário mongodump é incluído quando você instala o pacote mongodb. O Mongodump precisa de um acesso ao seu banco de dados mongodb, portanto, requer acesso de credencial para o mongodump com privilégios de funções de backup e deve ter ação grant find para fazer backup do banco de dados.

Funciona para formatos de despejo de dados BSON. O mongodump se conectará ao seu banco de dados com as credenciais fornecidas, lerá todos os dados em seu banco de dados e despejará os dados em arquivos. Como é um processo de encadeamento único, levará mais tempo para o backup, especialmente com um banco de dados de tamanho grande. O Mongodump não mantém a atomicidade das transações entre os shards, por isso não pode ser usado como estratégia de backup para o mongodb versão 4.2 e superior em um cluster shard. O Percona Backup for MongoDB é um backup lógico, mas suporta backups consistentes de clusters.

O backup físico no MongoDB funciona através do instantâneo dos sistemas de arquivos mongodb, ele está copiando os arquivos mongodb subjacentes para outro local como backup básico do banco de dados mongodb. O instantâneo do sistema de arquivos é o sistema operacional se você usar o LVM (Logical Volume Manager) como software para gerenciar seu layout de disco e dispositivo, ou dispositivo de software, por exemplo. Veritas ou NetApp Backup. Você deve habilitar o journaling, o log de atividades de alterações no mongodb antes de executar o instantâneo do sistema de arquivos para tornar o backup consistente.

Além do instantâneo do sistema de arquivos, você também pode usar o comando cp ou rsync para copiar arquivos de dados do MongoDB, mas você precisa interromper o processo de gravação no mongodb porque o processo de cópia de arquivos de dados não é uma operação atômica. O backup não pode ser usado para recuperação pontual em conjuntos de réplicas ou arquiteturas de cluster fragmentado.

Percona Backup for MongoDB consiste em dois componentes, o pbm-agent que precisa ser instalado em cada nó e o pbm como uma interface de linha de comando para interagir e executar os backups. O pbm-agent coordena entre os nós do banco de dados e executando o processo de backup e restauração. O agente pbm decidirá o melhor nó para fazer o backup.

Backup PITR

Em muitos sistemas de banco de dados, é comum usar um ponto de verificação para liberar os dados no disco. O MongoDB usa o mecanismo de armazenamento WiredTiger como mecanismo de armazenamento padrão e também usa pontos de verificação para fornecer uma visualização consistente dos dados. Além disso, o checkpoint no MongoDB pode ser usado para recuperar do último checkpoint. O registro no diário funciona entre cada ponto de verificação, o registro no diário é necessário para se recuperar de interrupções inesperadas que ocorrem a qualquer momento entre os pontos de verificação. O registro no diário garante que as operações de gravação sejam registradas no disco, o MongoDB criará uma entrada no diário para cada alteração, incluindo os bytes que foram alterados e a localização do disco.

Mongodump e mongorestore podem ser usados ​​para backup de recuperação pontual, há uma opção para aproveitar o oplog. O oplog é uma coleção limitada no MongoDB que rastreia todas as alterações nas coleções para cada transação de gravação (por exemplo, inserir, atualizar, excluir). Portanto, se você deseja fazer uma recuperação pontual, precisa restaurar a partir do último backup completo e também usar o arquivo oplog para aplicar as alterações no momento exato em que deseja recuperar. Outra ferramenta que pode ser utilizada é o Percona Backup for MongoDB, o processo é semelhante ao mongodump, precisamos restaurar a partir do backup e depois aplicar o oplog.

Conclusão


Fazer um backup consistente é importante, especialmente em configurações em cluster do MongoDB (conjunto de réplicas ou cluster fragmentado). O ClusterControl fornece uma maneira fácil de configurar o Percona Backup para MongoDB em seu cluster e agendar seus backups.