Este tutorial aborda a criação de backups e a restauração de dados usando mongodump e mongorestore.
Para restaurar um backup de sua implantação auto-hospedada para uma implantação gerenciada do MongoDB Atlas, consulte Seed with mongorestore.
Considerações
Implantações
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:
Impacto no desempenho
Como o mongodump e o mongorestore interagem com uma instância do mongod em execução, eles podem impacto o desempenho do banco de dados . As ferramentas criam tráfego e forçam o banco de dados a ler todos os dados por meio da memória. Quando o MongoDB lê dados acessados com pouca frequência, ele remove os dados acessados com frequência, degradando o desempenho da carga de trabalho regular do banco de dados.
Ao fazer backup de dados com ferramentas MongoDB , siga estas diretrizes:
Identifique arquivos para identificar o conteúdo do backup e o horário do backup.
Se o impacto no desempenho de
mongodumpemongorestorefor inaceitável, use uma alternativa como o Filesystem Snapshots ou os backups em nuvem no MongoDB Atlas.Para garantir que o
mongodumppossa fazer um backup consistente de um conjunto de réplicas, você deve usar a opção--oplogpara 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.
Verifique seus backups restaurando-os em uma implantação de teste.
Para reduzir inconsistências de backup em um cluster, interrompa o balanceador, todas as operações de gravar e quaisquer transformações de esquema durante o backup.
Dica
Para obter mais informações, consulte Métodos de backup para uma implantação autogerenciada. Para obter a referência das Database Tools MongoDB , consulte:
Formato de saída
mongorestore e mongodump podem gerar dados para um arquivo compactado, que é uma alternativa de arquivo único para vários arquivos BSON. Os arquivos compactados são formatos para fins especiais que suportam gravações de arquivos não contíguos. Elas permitem backups simultâneos do MongoDB e restaurações no MongoDB. Os arquivos também otimizam a E/S de disco durante o backup e a restauração.
Você também pode gravar arquivos na saída padrão (stdout). A gravação na saída padrão permite a migração de dados pelas redes, a redução do E/S de disco e os ganhos de simultaneidade nas ferramentas do MongoDB e no seu mecanismo de armazenamento.
Para mais informações sobre arquivos compactados, veja a opção --archive.
Backups obsoletos
Os backups oferecem um snapshot do estado atual do banco de dados. Ao restaurar de um backup, o banco de dados restaurado não inclui alterações feitas após a conclusão do backup, o que pode resultar em perda de dados.
Procedimentos
Faça backup de um banco de dados com mongodump
O utilitário mongodump faz o backup dos dados conectando-se a um mongod em execução. Ele pode fazer backup de um servidor, banco de dados ou coleção inteiros, ou usar uma query para fazer backup de parte de uma coleção. mongodump exclui o conteúdo do banco de dados local de sua saída.
Sem argumentos, mongodump se conecta à instância do MongoDB no sistema local na porta 27017 e cria um backup do banco de dados denominado dump/ no diretório atual:
mongodump
Para especificar o host e a porta, use uma das seguintes opções:
Especifique a string
--uriusando 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 no
--host:mongodump --host="mongodb0.example.com:27017" <additional_options> Especifique
--hoste--portseparadamente:mongodump --host="mongodb0.example.com" --port=27017 <additional_options>
Para especificar um diretório de saída diferente, utilize --out (ou -o):
mongodump --out=/opt/backup/mongodump-1
Para limitar o dump a um banco de dados ou coleção específica, use --db e --collection:
mongodump --collection=myCollection --db=test
Isso cria um dump de myCollection do banco de dados test em um subdiretório dump/ do diretório atual.
mongodump substitui arquivos existentes na pasta de saída (padrão: dump/). Antes de executá-lo várias vezes, faça backup ou renomeie a pasta de saída.
Acesso necessário
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.
Especificar host e porta
Utilize --host e --port para conectar a uma instância remota:
mongodump \ --host=mongodb1.example.net \ --port=3017 \ --username=user \ --password="pass" \ --out=/opt/backup/mongodump-1
Especifique o nome de usuário e senha em qualquer comando mongodump para autenticar.
Criar backups utilizando oplogs
A opção --oplog coleta entradas de oplog durante o backup para que você possa restaurar o banco de dados ao seu estado no momento em que o backup for concluído.
Com o --oplog, o mongodump copia todos os dados do banco de dados de origem e todas as entradas de oplog do início ao fim do backup. Use isso em conjunto com mongorestore --oplogReplay para restaurar um backup que reflete o momento exato em que mongodump foi concluído.
Restaurar um banco de dados com mongorestore
O utilitário mongorestore restaura um backup binário criado pelo mongodump conectando diretamente a um mongod em execução. Por padrão, o mongorestore procura por um backup do banco de dados no diretório dump/ e pode restaurar um backup inteiro ou um subconjunto.
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 conectar mongorestore a um mongod ativo:
mongorestore --uri <connection string> <path to the backup>
Por exemplo, para restaurar a partir de um diretório:
mongorestore /opt/backup/mongodump-1
Isso restaura o backup na instância mongod em localhost:27017.
Controle de acesso
Para restaurar dados em uma implantação que tenha o controle de acesso ativado, a função restore fornece os privilégios necessários se os dados não incluírem dados de coleta system.profile e você executar mongorestore sem a opção --oplogReplay.
Você precisa de privilégios adicionais se o backup de dados incluir dados de coleção do system.profile ou se você executar com --oplogReplay:
| Se os dados de As funções incorporadas |
| Para executar com Conceda somente aos usuários que devem executar |
Especificar host e porta
Por padrão, mongorestore se conecta a localhost:27017. Para restaurar para um host ou porta diferente, use --host e --port:
mongorestore --host=mongodb1.example.net --port=3017
Para autenticar, inclua --username e --authenticationDatabase. Omita --password para que mongorestore solicite a senha:
mongorestore \ --host=mongodb1.example.net \ --port=3017 \ --username=user \ --authenticationDatabase=admin \ /opt/backup/mongodump-1
Usar um arquivo Oplog para restaurar dados
Para capturar gravações que ocorrem enquanto o mongodump está em execução, use --oplog. mongodump cria um arquivo oplog.bson com entradas oplog para cada gravação durante a execução. Aplique essas operações com --oplogReplay ao restaurar.
Para ver exemplos, consulte Exemplos de mongodump e Exemplos de mongorestore.
mongorestore --oplogReplay restaura todos os dados de oplog.bson, mas não suporta a restauração em um ponto arbitrário no tempo. Use-o para garantir que os dados restaurados reflitam quaisquer 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.
Use --objcheck para validar a integridade do documento durante a inserção ou --drop para descartar cada coleção antes de restaurar.