domingo, 21 de julho de 2013

     Sabemos que backups são fundamentais e são parte de um eficiente plano de disaster recovery (quem já precisou nunca mais esquece). Mais do que apenas fazer uma cópia do arquivo, um bom backup garante a integridade dos dados, funcionamento em mais de um sistema e está alocado em diversos lugares.

     Como fazer isto de forma rápida e simples no MongoDB? Utilizando os componentes mongodump e mongorestore.

     O mongodump é utilizado para exportar o conteúdo de sua base de dados, no formato BSON (representação binária de estruturas de dados – Binary JSON). Os formatos exportados a partir da versão 2.2 são incompatíveis com as versões anteriores.

     O mongorestore é utilizado em conjunto com o mongodump para restaurar (“importar”) o arquivo BSON, recriando os índices criados na base que foi exportada (falaremos mais sobre índices em outro post). Com ele é possível criar uma nova base de dados ou adicionar os dados a uma base já existente.

     Na prática temos:
     Entramos no shell e dentro de um banco “test” inserimos um dado de exemplo na collection “teste”


     Em seguida, vamos exportar esta collection com o comando mongodump. Saímos do shell ( CTRL + C) e digitamos:

mongodump –collection teste –db test




     Vemos que nosso único objeto foi exportado corretamente e está localizado no diretório C:\Users\Leandro\dump\test  (diretório onde foi executado o comando). Aqui vale uma observação importante pois são criados 2 arquivos: o arquivo teste.metadata.json e o arquivo teste.bson. Este último é o arquivo que será utilizado como entrada para o comando mongorestore.
     Agora, para restaurar esta collection, fazemos:

mongorestore –collection teste –db test C:\Users\Leandro\dump\test\teste.bson



     Veja que nossa collection foi restaurada, mas não perfeitamente. Por quê? Algum erro?

     Não. Propositalmente, restauramos a collection utilizando os mesmos nomes de collection e db anteriores (teste e test). Veja que há um “warning” dizendo que os dados foram restaurado, sem apagar o anterior. Ou seja, nosso documento foi duplicado! Como evitar isso?

     É fácil e temos 2 modos (ou situações). O primeiro é que seus dados foram perdidos e realmente você poderia restaurar utilizando os mesmos nomes de collection e db. Outro é poder restaurar o documento em um novo banco, com uma nova collection. Para isto, basta inserir o nome que quiser. Veja o exemplo abaixo:

mongorestore –collection testado –db testando C:\Users\Leandro\dump\test\teste.bson


     Alteramos os nomes e veja que a restauração funcionou perfeitamente, sem o “warning”.

     Não deixe de consultar a página de documentação do MongoDB onde é possível encontrar as estratégias de backups sugerida pelos desenvolvedores. Acesse: http://docs.mongodb.org/manual/core/backups/

Até o próximo!

0 comentários:

Postar um comentário