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 mongorestore utilitários mongodump e funcionam com despejos de dados BSON e são úteis para criar backups de pequenos sistemas. Para backups resilientes e sem interrupções, use file system snapshots ou snapshots de disco em 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 como uma estratégia de backup para clusters fragmentados, consulte Fazer backup mongorestore de um cluster fragmentado autogerenciado com um descarte 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 interagem mongorestore mongod com uma instância do 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 do volume 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
mongodumpe for inaceitável, usemongorestoreuma alternativa como o Filesystem Snapshots ou o Cloud Backups no MongoDB Atlas.Para garantir que possa fazer um backup consistente de um
mongodump--oplogconjunto de réplicas, você deve usar a opção para capturar as 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 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 mongodump 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 obter mais informações sobre arquivos compactados, consulte a --archive opção.
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 mongodump utilitário faz o backup dos dados conectando-se a um em mongod 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 local banco de dados 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 -o(ou):
mongodump --out=/opt/backup/mongodump-1
Para limitar o despejo a um banco de dados ou collection específica, use --db --collectione:
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 em um mongodump MongoDB deployment que tenha controle de acesso ativado, você deve ter privilégios que concedam find a ação para cada banco de dados a backup ser submetido a backup. A função 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 para conectar a uma instância --port 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 --oplog opção 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 --oplog o, omongodump 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 para restaurar um backup que reflete o momento exato mongorestore --oplogReplay em que mongodump foi concluído.
Restaurar um banco de dados com mongorestore
O utilitário restaura um backup binário mongorestore criado mongodump por conectando diretamente a um mongod em execução. Por padrão, omongorestore procura por uma cópia de segurança do banco dump/ de dados no diretório e pode restaurar uma cópia de segurança inteira ou um subconjunto.
Observação
Todas as coleções MongoDB têm UUIDs por padrão. Quando o MongoDB restaura collections, as collections restauradas retêm seus UUIDs originais. Ao restaurar uma collection onde nenhum UUID estava presente, o MongoDB gera um UUID para a collection 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 system.profile dados de collection do ou se você executar --oplogReplay com:
| Se os dados de backup incluírem dados de coleta 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--usernamee--authenticationDatabase. Omita--passwordpara 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 --drop para soltar cada coleção antes de restaurar.