MongoDB :: Backup e Restore de Collections com Mongotools

Share:
Créditos Kevin


Instalação do MongoDB Tools


Importe a public key dos repositórios do MongoDB

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Será necessário instalar o repositório referente a versão mais atualizada do seu sistema. O respositório do Ubuntu 16.04 também funciona para as versões mais recentes do Debian 8/9.

Ubuntu 12.04 
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list


Ubuntu 14.04
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list


Ubuntu 16.04
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list


Instalação do mongo-tool


sudo apt-get update
sudo apt-get install -y mongodb-org-tools



Ambiente de teste

Para esse exemplo estarei utilizando dois containers Docker servindo o MongoDB. O mongo_production, mapeado na porta 27017 do host será o host de produção, no qual iremos fazer backup das informações e o container mong_restore será o container onde iremos aproveitar para fazer o restore do mesmo. 

Container de produção

docker run -d -p 27017:27017 --name mongo_production mongo

Container de restore

docker run -d -p 27016:27017 --name mongo_restore mongo

Adicionando algumas informações para o exemplo:

Vamos fazer o download de um dataset de exemplo que contem algumas informações mockadas de restaurantes. Você pode fazer o download do mesmo diretamente do link raw do Github.


wget https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json



Importando um dataset com mongoimport


O mongoimport é um utilitário de restore de arquivos JSON exportados de uma base Mongo para dentro de uma collection.


mongoimport --help

Principais opcões


--host hostname do servidor mongo (default: 127.0.0.1)
--port porta onde o serviço do mongo está escutando (default: 27017)
--collection nome da collection onde os registros vão ser importados
--db nome do banco de dados que a collection pertence
--user usuário de autenticação
--pass senha do usuário para autenticação
--file caminho para o arquivo contendo os dados
--drop dropa a collection antiga antes de inserir os novos registros
--verbose verbose mode
--quiet quiet mode

Exemplo:


mongoimport --host 176.45.98.12 --port 27017 --collection restaurants --db stores --file primer-dataset.json -v --drop



Realizando o Backup de uma collection usando mongodump

Para realizar o backup de uma collection, utilizaremos a ferramenta mongodump. O mongodump irá gerar uma pasta, onde irá guardar o nome da collection, os dados em formato BSON e um JSON contendo todas as metadatas da collection que fizemos Backup. A interface da ferramenta é identica ao mongoimport.


mongodump --help

Principais opções


--host hostname do servidor mongo (default: 127.0.0.1)
--port porta onde o serviço do mongo está escutando (default: 27017)
--collection nome da collection onde os registros vão ser importados
--db nome do banco de dados que a collection pertence
--user usuário de autenticação
--pass senha do usuário para autenticação
--out caminho para o backup
--verbose verbose mode
--quiet quiet mode

Vamos realizar o Backup da collection restaurants de dentro da database stores e mandar o mesmo para a pasta chamada backup. Confira o exemplo:


mongodump --host production --collection restaurants --db stores --out backup




Restaurando um Backup com mongorestore


mongorestore --help

As principais opções também são parecidas.


--host hostname do servidor mongo (default: 127.0.0.1)
--port porta onde o serviço do mongo está escutando (default: 27017)
--collection nome da collection onde os registros vão ser importados
--db nome do banco de dados que a collection pertence
--user usuário de autenticação
--pass senha do usuário para autenticação
--verbose verbose mode
--quiet quiet mode

Vamos passar o caminho para a pasta de backup e informar o servidor de Backup no parâmetro --host


mongorestore --host restore --port 27017 --drop backup/




Os arquivo de dump é gerado em formato (Binary JSON), um formato especifico de representação de objetos inicialmente utilizado pelo MongoDB. É possivel realizar a exportação desses dados em formato JSON default, identico ao arquivo que importamos. Para isso, utilizaremos a ferramenta mongoexport.

Nenhum comentário