Estou tentando fazer backup/restaurar o banco de dados mongodb de/para arquivos .gz como script de exemplo aqui
#01 create .gz backup - ok for r3.2.9 and r3.4.10
mongodump --db ${DB_NAME} --gzip --archive=${BACKUP_FILE_GZ}
#02 restore from .gz file - NOT ok for r3.2.9
mongorestore --gzip --archive=${BACKUP_FILE_GZ} --nsFrom "${DB_NAME}.*" --nsTo "${DB_NAME_RESTORE}.*"
Etapa 01, ou seja, o backup é bom tanto para a versão mongodb r3.2.9
quanto para r3.4.10
; embora o passo 02 NÃO funcione parar3.2.9
Como posso obter a versão do mongorestorer3.2.9
para restaurar do arquivo .gz e poder renomear o banco de dados?
ps
Temos a solução aqui, mas isso requer que o backup seja uma pasta; meus arquivos de backup são enormes, ou seja, 1Gb-2Gb, então a extração é muito demorada.
Com 3.2.x você não pode usar
--nsFrom
ou--nsTo
parâmetros. Este par de comandos deve funcionar em todas as versões:Agora você obtém um diretório com arquivos compactados em gzip e pode restaurar todas (ou apenas uma) coleções para um banco de dados diferente.
Isso ocorre porque seu script mongodump tem um
--archive
sinalizador.Então você tem que usá-lo ao fazer mongorestore.
Isso funcionou para mim:
Para a versão 6, você só precisa executar: (Suponha que seu diretório atual tenha um arquivo de backup chamado backup_db.gzip e você deseja criar um banco de dados chamado blog a partir de seu conteúdo)