Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Faça backup e restaure um sistema autogerenciado com ferramentas MongoDB

Nesta página

  • Considerações
  • Implantações
  • Impacto no desempenho
  • Formato de saída
  • Procedimentos
  • Faça backup de um banco de dados com mongodump
  • Restaurar um banco de dados com mongorestore

Este tutorial descreve o processo para criar backups e restaurar dados utilizando as utilidades de linha de mongorestore comando e fornecidos com o MongoDB.mongodump

Para restaurar um backup de sua implantação auto-hospedada para uma implantação gerenciada do MongoDB Atlas, consulte Seed with mongorestore.

Para um método de backup totalmente gerenciado, use os Cloud Backups no MongoDB Atlas, que fornecem armazenamento de backup localizado usando a funcionalidade nativa de snapshot do provedor de serviços em nuvem do cluster.

Os utilitários mongorestore e mongodump usam despejos de dados BSON e são úteis para criar backups de pequenas implantações. Para backups resilientes e sem interrupções, use snapshots do sistema de arquivos ou snapshots de disco no nível de bloco com os backups em nuvem do MongoDB Atlas.

Observação

Faça backup de clusters fragmentados com MongoDB Atlas

Para usar mongodump e mongorestore como uma estratégia de backup para clusters fragmentados, consulte Fazer backup de um cluster fragmentado autogerenciado com um despejo de banco de dados.

Os clusters fragmentados também podem usar um dos seguintes processos coordenados de backup e restauração, que mantêm as garantias de atomicidade das transações entre shards:

Como o mongodump e o mongorestore operam interagindo com uma instância do mongod em execução, eles podem afetar o desempenho do seu banco de dados em execução. As ferramentas não apenas criam tráfego para uma instância de banco de dados em execução, mas também forçam o banco de dados a ler todos os dados por meio da memória. Quando o MongoDB lê dados usados com pouca frequência, ele pode remover dados acessados com mais frequência, causando uma queda no desempenho da carga de trabalho regular do banco de dados.

Ao fazer backup de seus dados com as ferramentas do MongoDB, considere as seguintes orientações:

  • Rotule arquivos para que possa identificar o conteúdo do backup, bem como o ponto no tempo que o backup reflete.

  • Utilize uma estratégia alternativa de backup como Snapshots do sistema de arquivos ou os Backups em nuvem do MongoDB Atlas se o impacto de desempenho do mongodump e mongorestore for inaceitável para seu caso de uso.

  • Para garantir que o mongodump possa fazer um backup consistente de um conjunto de réplicas, você deve usar a opção --oplog para capturar gravações recebidas durante as operações de backup ou interromper todas as gravações no conjunto de réplicas durante o backup.

    Para conjuntos de réplicas de clusters fragmentados, consulte Fazer backup de um cluster fragmentado autogerenciado com um despejode banco de dados.

  • Garanta que seus backups sejam utilizáveis restaurando-os para um MongoDB deployment de teste.

  • Para ajudar a reduzir a probabilidade de inconsistências em um backup de cluster fragmentado, você deve interromper o balanceador, interromper todas as operações de gravação e interromper qualquer transformação do esquema durante o backup.

Dica

Veja também:

Métodos de Backup para uma Implementação Autogerenciada e Backups do MongoDB Atlas Cloud para obter mais informações sobre o backup de instâncias do MongoDB. Além disso, considere a seguinte documentação de referência para as MongoDB Database Tools:

mongorestore e mongodump podem enviar dados para um arquivo compactado, que é uma alternativa de arquivo único a vários arquivos BSON. Os arquivos compactados são formatos voltados para fins especiais compatíveis com gravações de arquivos não contíguas. Eles permitem backups simultâneos do MongoDB, bem como restaurações no MongoDB. O uso de arquivos compactados otimiza a entrada/saída de disco enquanto as operações de backup e restauração são executadas.

Você também pode arquivar arquivos de saída na saída padrão (stdout). A gravação na saída padrão permite a migração de dados em redes, a redução da pegada de entrada/saída de disco e ganhos de simultaneidade nas ferramentas do MongoDB e no mecanismo de armazenamento.

Para mais informações sobre arquivos compactados, veja a opção --archive.

Observação

Faça backup de clusters fragmentados com MongoDB Atlas

Para usar mongodump e mongorestore como uma estratégia de backup para clusters fragmentados, consulte Fazer backup de um cluster fragmentado autogerenciado com um despejo de banco de dados.

Os clusters fragmentados também podem usar um dos seguintes processos coordenados de backup e restauração, que mantêm as garantias de atomicidade das transações entre shards:

mongodump exclui o conteúdo do banco de dados local em sua saída.

Para executar mongodump em uma implantação do MongoDB que tenha controle de acesso habilitado, você deve ter privilégios que concedam a ação find para cada banco de dados a ser submetido a backup. A função backup integrada fornece os privilégios necessários para realizar o backup de todo e qualquer banco de dados.

O papel do backup fornece privilégios adicionais para criar uma cópia de segurança da coleção do system.profile que existe ao executar com perfil do banco de dados.

O utilitário mongodump faz o backup dos dados conectando-se a um mongodem execução.

A utilidade pode criar um backup para um servidor inteiro, banco de dados ou collection, ou pode usar uma query para fazer backup de apenas parte de uma collection.

Na execução do mongodump sem nenhum argumento, o comando se conecta à instância do MongoDB no sistema local (por exemplo, localhost) na porta 27017 e cria um backup do banco de dados denominado dump/ no diretório atual.

Para criar cópia de segurança de dados de uma instância do mongod executando na mesma máquina e na porta padrão do 27017, utilize o seguinte comando:

mongodump

Para especificar o host e a porta da instância MongoDB, você pode:

  • Especifique o nome do host e a porta na connection string --uri, usando uma string de conexão SRV ou padrão:

    mongodump --uri="mongodb+srv://username:password@cluster0.example.mongodb.net" <additional_options>
  • Especifique o nome do host e a porta na string --host:

    mongodump --host="mongodb0.example.com:27017" <additional_options>
  • Especifique o nome de host e a porta no --host e --port:

    mongodump --host="mongodb0.example.com" --port=27017 <additional_options>

O mongodump gravará arquivos BSON que contêm uma cópia dos dados acessíveis por meio da escuta mongod na porta do host 27017 mongodb.example.net. Consulte Criar backups de instâncias não locais mongod para obter mais informações.

Para especificar um diretório de saída diferente, você pode utilizar a opção --out or -o:

mongodump --out=/opt/backup/mongodump-1

Para limitar a quantidade de dados incluídos no despejo do banco de dados, você pode especificar --db e --collection como opções para mongodump. Por exemplo:

mongodump --collection=myCollection --db=test

Essa operação cria um despejo da coleção denominada myCollection a partir do banco de dados test em um subdiretório do dump/ do diretório de trabalho atual.

mongodump substitui os arquivos de saída se houver algum na pasta de dados de backup. Antes de executar o comando mongodump várias vezes, verifique se você não precisa mais dos arquivos na pasta de saída (o padrão é a pasta dump/) ou renomeie as pastas ou arquivos.

A opção --oplog com mongodump coleta as entradas de oplog e permite que você execute um backup em um banco de dados ativo. Se você restaurar o banco de dados posteriormente a partir do backup, o banco de dados será o mesmo que era quando o processo de backup foi concluído.

Com --oplog, mongodump copia todos os dados do banco de dados de origem, bem como todas as entradas de oplog do início ao fim do procedimento de backup. Essa operação, em conjunto com mongorestore --oplogReplay, permite restaurar um backup que reflete o momento específico que corresponde ao momento em que mongodump concluiu a criação do arquivo de despejo.

As opções --host e --port para mongodump permitem que você se conecte e faça backup de um host remoto. Considere o seguinte exemplo:

mongodump \
--host=mongodb1.example.net \
--port=3017 \
--username=user \
--password="pass" \
--out=/opt/backup/mongodump-1

Em qualquer comando mongodump, você pode, como acima, especificar credenciais de nome de usuário e senha para especificar a autenticação do banco de dados.

Observação

Faça backup de clusters fragmentados com MongoDB Atlas

Para usar mongodump e mongorestore como uma estratégia de backup para clusters fragmentados, consulte Fazer backup de um cluster fragmentado autogerenciado com um despejo de banco de dados.

Os clusters fragmentados também podem usar um dos seguintes processos coordenados de backup e restauração, que mantêm as garantias de atomicidade das transações entre shards:

Para restaurar dados em uma implantação do MongoDB que tenha o controle de acesso ativado, a função restore fornece os privilégios necessários para restaurar dados de backups se os dados não contiverem dados da coleção system.profile e se você executar mongorestore sem a opção --oplogReplay.

Se o backup de dados incluir dados de coleção do system.profile ou se executar com --oplogReplay, você precisará de privilégios adicionais:

system.profile

Se os dados de backup incluírem dados de coleção system.profile e o banco de dados de destino não contiver a coleção system.profile, mongorestore tentará criar a coleção mesmo que o programa não restaure documentos system.profile. Como tal, o usuário requer privilégios adicionais para executar createCollection e convertToCapped ações na coleção system.profile para um banco de dados.

As funções incorporadas dbAdmin e dbAdminAnyDatabase fornecem os privilégios adicionais.

--oplogReplay

Para executar com --oplogReplay, crie uma função definida pelo usuário que tenha anyAction em anyResource.

Conceda somente aos usuários que devem executar mongorestore com --oplogReplay.

O utilitário mongorestore restaura um backup binário criado pelo mongodump. Por padrão, mongorestore procura um backup do banco de dados no diretório dump/.

O utilitário mongorestore restaura dados conectando-se diretamente a um mongod em execução.

mongorestore pode restaurar um backup de banco de dados inteiro ou um subconjunto do backup.

Observação

Todas as coleções MongoDB têm UUIDs por padrão. Quando o MongoDB restaura as coleções, as coleções restauradas retêm seus UUIDs originais. Ao restaurar uma coleção onde nenhum UUID estava presente, o MongoDB gera um UUID para a coleção restaurada.

Para mais informações sobre UUIDs de coleção, consulte Coleções.

Para usar mongorestore para conectar a um mongod ativo, use um comando com o seguinte formulário de protótipo:

mongorestore --uri <connection string> <path to the backup>

Considere o seguinte exemplo:

mongorestore /opt/backup/mongodump-1

Aqui, o mongorestore importa a cópia de segurança do banco de dados no diretório /opt/backup/mongodump-1 para a instância do mongod executando na interface do localhost na porta 27017 padrão.

Para capturar gravações que podem ocorrer durante a execução do mongodump, use mongodump --oplog. mongodump cria um arquivo oplog.bson com entradas de oplog para cada gravação ocorrida durante a execução. Você pode aplicar as operações de oplog com mongorestore --oplogReplay.

Para ver exemplos, consulte Exemplos de mongodump e Exemplos de mongorestore.

Todos os dados do arquivo oplog.bson são restaurados.

mongorestore --oplogReplay não permite restaurar dados para um ponto no tempo arbitrário. Use mongorestore --oplogReplay para garantir que os dados restaurados estejam atualizados com todas as gravações que ocorreram durante a execução do mongodump --oplog.

Observação

--oplog destina-se ao uso com conjuntos de réplicas. Para clusters fragmentados, incluindo conjuntos de réplicas que fazem parte de um ambiente fragmentado, consulte Fazer backup de um cluster fragmentado autogerenciado com um despejo de banco de dados.

Você pode considerar usar também a opção mongorestore --objcheck para verificar a integridade dos objetos quando inseri-los no banco de dados, ou pode considerar a opção mongorestore --drop para descartar cada coleção do banco de dados antes de restaurá-los a partir dos backups.

Por padrão, mongorestore se conecta a uma instância do MongoDB em execução na interface localhost e na porta padrão (27017). Se você quiser restaurar para um host ou porta diferente, use as opções --host e --port.

O exemplo a seguir que especifica as opções --host e --port:

mongorestore --host=mongodb1.example.net --port=3017

Se estiver fazer a restauração de uma instância que impõe controle de acesso, inclua o --username e o --authenticationDatabase. Omita a opção --password para que o mongorestore solicite a senha:

mongorestore \
--host=mongodb1.example.net \
--port=3017 \
--username=user \
--authenticationDatabase=admin \
/opt/backup/mongodump-1

Voltar

Usar snapshots