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

Restaurar um banco de dados MongoDB usando mongorestore


Se você fez backup de um banco de dados usando o mongodump utilitário, você pode restaurá-lo usando o mongorestore Utilitário.

A mongorestore utilitário carrega dados de um dump de banco de dados binário criado por mongodump ou a entrada padrão em um mongod ou mongos instância.

Verificar ferramentas de banco de dados MongoDB


A mongorestore utilitário faz parte do pacote MongoDB Database Tools. As ferramentas de banco de dados do MongoDB são um conjunto de utilitários de linha de comando para trabalhar com o MongoDB.

Se você não tem certeza se possui o MongoDB Database Tools/mongorestore instalado. Tente executar o seguinte comando no seu Terminal ou Prompt de Comando para verificar:
mongorestore --version

Se você não tiver, você pode usar as instruções de instalação no site do MongoDB para instalá-lo em seu sistema.

Onde executar os comandos?


Você precisa executar mongorestore comandos da linha de comando do seu sistema (por exemplo, um novo Terminal ou janela de prompt de comando).

Não os execute a partir do mongo Concha.

Restaurar todos os bancos de dados de um diretório


O comando a seguir restaura todos os bancos de dados cujo backup foi feito no dump/ diretório:
mongorestore dump/

Este exemplo restaura os bancos de dados para a instância local em execução na porta padrão 27017. Sabemos disso porque não fornecemos nenhum host, porta, informações de autenticação etc.

Restaurar um banco de dados específico


Você pode usar o --nsInclude parâmetro para especificar um banco de dados a ser restaurado.

Exemplo:
mongorestore --nsInclude="PetHotel.*" dump/

Neste caso, restauramos o PetHotel base de dados. Restauramos todas as coleções, porque usamos um curinga de asterisco (* ) para especificar todas as coleções.

Restaurar uma coleção específica


Você também pode usar o --nsInclude parâmetro para especificar uma coleção para restaurar.

Exemplo:
mongorestore --nsInclude="PetHotel.pets" dump/

Este exemplo restaura a coleção de animais de estimação do PetHotel base de dados. Se o banco de dados não existir, ele será criado com uma única coleção (pets ).

Este exemplo é quase idêntico ao exemplo anterior, exceto que em vez de usar o curinga asterisco (* ) para especificar todas as coleções, especificamos explicitamente a coleção que queremos restaurar.

Renomear uma coleção


Você pode usar o --nsFrom e --nsTo parâmetros para especificar um novo nome para a coleção.

Exemplo:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/

Isso renomeia os pets coleção para pets2 .

Observe que o código acima também restaura todos os outros bancos de dados e coleções no dump/ diretório. A única diferença é que os pets a coleção é restaurada como pets2 .

Se você deseja restaurar apenas uma única coleção (e renomeá-la no processo), use o --nsInclude parâmetro.

Exemplo:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/

Renomear um banco de dados


Você pode usar o mesmo conceito para renomear um banco de dados. Basta usar o --nsFrom e --nsTo parâmetros para especificar um novo nome para o banco de dados.

Exemplo:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/

Neste caso renomeei o PetHotel banco de dados para PetHouse .

Observe que o --nsInclude O parâmetro especifica o novo nome do banco de dados. Além disso, eu uso o curinga asterisco (* ) para restaurar todas as coleções nesse banco de dados.

Excluindo coleções


Você pode usar o --nsExclude parâmetro para especificar uma coleção para excluir do processo de restauração.

Exemplo:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/

Esse exemplo restaura todas as coleções no PetHotel banco de dados exceto para os dogs coleção.

Você pode usar --nsExclude várias vezes para excluir várias coleções do processo de restauração.

Exemplo:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/

Controle de acesso/autenticação


Os exemplos anteriores foram feitos na máquina local usando a porta padrão. Isso significa que fomos capazes de executar o mongodump sem especificar coisas como --host , --port , --username , etc

Aqui está um exemplo que usa esses parâmetros para autenticar como homer :
mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30

Também poderíamos ter usado o --password parâmetro, mas não o fizemos. Se você passar --user mas não --password , você será solicitado a fornecer a senha.

Restaurar de arquivos compactados


Você pode usar o --gzip parâmetro para restaurar de arquivos compactados ou fluxo de dados criado por mongodump --gzip .

Exemplo:
mongorestore --gzip  --nsInclude="krankykranes.*" dump3/

Modo Silencioso


Você pode usar o comando --quiet parâmetro para limitar a saída em sua janela Terminal ou Prompt de Comando.
mongorestore --quiet

Sem usar isso, você provavelmente verá uma grande lista de visualizações, coleções, etc. que foram restauradas.

Modo detalhado


Por outro lado, você pode usar o --verbose ou -v parâmetros para aumentar a saída em sua janela Terminal ou Prompt de Comando.
mongorestore --verbose

Você pode aumentar a verbosidade repetindo o -v forma várias vezes.

Exemplo:
mongorestore -vvvv

Mais informações sobre mongodump


A mongorestore O utilitário aceita muitos outros parâmetros úteis e também há vários fatores a serem considerados ao usá-lo como parte de uma estratégia de backup e recuperação.

Veja a mongorestore documentação no site do MongoDB para mais informações.

Outras opções


mongodump e mongorestore são ferramentas simples e eficientes para fazer backup e restaurar pequenas implantações do MongoDB, mas não são ideais para capturar backups de sistemas maiores.

Consulte Métodos de backup do MongoDB no site do MongoDB para outros métodos de backup e restauração de bancos de dados do MongoDB.