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.