Posted on: February 04, 2021 05:59 PM
Posted by: Renato
Views: 1466
Opção 1:
mongodump e mongorestore. São duas ferramentas que estão no diretório bin da instalação do MongoDB. Você poderia fazer um script para automatizar o dump de um lado, e restore do outro. Existe um artigo (em inglês) sobre o backup com essas ferramentas aqui. O serviço do banco (mongod) precisa estar ativo nas duas máquinas nesse caso.
Exemplo do mongodump:
- Linux:
mongodump -h localhost --gzip -o /Backups/MongoDB/dados
- Windows:
mongodump /h localhost /gzip /o C:\Backups\MongoDB\dados
O comando acima faz backup de todos os bancos de dados de um servidor MongoDB executando no computador local, na porta padrão (27017). Compacta esse backup e coloca os dados no diretório /Backups/MongoDB/dados. Existem várias opções do comando, vale olhar a documentação. Um simples mongodump
já executa o backup de um banco rodando na máquina local, colocando os arquivos em um diretório "dump" dentro do diretório atual.
Exemplos do mongorestore:
- Linux:
mongorestore -h localhost --gzip --dir /Backups/MongoDB/dados
- Windows:
mongorestore /h localhost /gzip /dir C:\Backups\MongoDB\dados
O comando restaura em um servidor executando em localhost, descompactando o resultado (--gzip) presente no diretório /Backups/MongoDB/dados. Estou considerando que você usou os exemplos acima para gerar o backup/dump. Se você usar a opção de gerar o backup em um arquivo, por exemplo, deve usar a opção --archive.
Opção 2
Copiar os arquivos de dados de uma instalação para outra também é uma opção viável. Inclusive é um dos métodos recomendados como backup na documentação do MongoDB.
Não recomendo
Usar o mongoexport e mongoimport pois eles trabalham com saída/entrada de arquivos de texto. Assim você perde informações:
- Você está convertendo BSON para JSON, o JSON não tem informações tão ricas quanto aos tipos de dados.
- Os índices que você criou nas collections não são levados no processo. Você precisa recriar eles quando fizer a importação.
Donate to Site
Renato
Developer
-
Renato Lucena - há 3 anos
Outra fonte: https://blog.renatolucena.net/post/mongo-no-docker-com-mongodump-e-mongorestore