Backup Bases MongoDB com Plugin Bacula bpipe

Apenas como ilustração, o caractere traço (-) pode ser utilizado para gerar o backup de bancos Mongo diretamente para a saída padrão capturada pelo bpipe, mas é necessário especificar a collection (tabela) para cada fluxo:

mongodump --db hfaria --collection teste -o -
mongodump --db hfaria --collection teste2 -o -

O traço também pode ser utilizado no comando mongorestore para a leitura da entrada padrão durante o restore do bacula pelo bipe:

mongorestore --db hfaria --collection teste -

É possível utilizar um script no Cliente Zimbra a partir do FileSet para automaticamente listar todas as bases e criar linhas de configuração do bpipe para o Bacula.

Exemplo de File Set Include:

\| /opt/bacula/scripts/mongo_bpipe.sh

Exemplo de script mongo_bpipe.sh:

#
# Autoria: Heitor Faria (Copyleft: all rights reversed).
# Testado por: xxxx
#
# Deve ser chamado no sub-recurso INCLUDE do FileSet do bacula-dir.conf, referente ao backup do cliente instalado na máquina do Mongo (por exemplo):
#
# Plugin = "\|/etc/bacula/mongo_bpipe.sh %l"
#

for db in $(echo "db.adminCommand( { listDatabases: 1 } )" | mongo --quiet | grep name | cut -d '"' -f 4); do
  for coll in $(echo "show collections" | mongo --quiet $db); do
    echo "bpipe:/opt/bacula/working/$db_$coll:mongodump --db $db --collection $coll -o -:mongorestore --db $db --collection $coll -"
  done
done

A restauração será feita automaticamente para o MongoDB, se selecionado o named pipe para restore.

Alternativamente, as collections podem ser restauradas para disco, alterando o comando para “dd of=arquivo”.

Disponível em: pt-brPortuguêsenEnglish (Inglês)esEspañol (Espanhol)

Deixe uma resposta