Páginas

sexta-feira, 14 de setembro de 2012

Ajustando-me a necessidade


Na empresa em que trabalho, temos databases hospedados...
Não vou dizer onde pois me causa alergia! (começa com "L" e termina com "ocaweb").

O ambiente de desenvolvimento sofria com atualizações pois para realizar backups dos databases hospedados, temos que solicitar e pagar um taxa a cada backup para Locaweb.
A alternativa de gerar script de todos os schemas e dados pelo próprio SQL Management Studio (Task > Generate Scripts) se torna inviável pelo tamanho do Database.

Usar path UNC público resolveria o problema, mas politicamente isto não é tão fácil de conseguir.

Pesquisando na web, encontrei um software free chamado SQLBackupandFTP.
O software tem algums recursos interessantes, como a possibilidade de schedular o backup, envio de email, salvar o backup na nuvem, compactação do backup, criptografia.

Tela inicial e Backup destination




Ao registrar o servidor, o software identifica que o servidor está hospedado e informa que o backup será realizado através de script. A mensagem assusta pois esta funcionalidade está classificada como Beta e como a mensagem mesmo diz, vale considerar o risco.

Eu testei, testei, testei e não tive problemas... Faça os seus testes antes de utilizar indiscriminadamente.


Para gerar o backup é muito simples:
  1. Com o servidor devidamente registrado, escolha o database.
  2. Defina um local para armazenar o backup, neste caso os scripts.
  3. Clicar em Run Now.
O software gerará diversos scripts que em meus testes, ficaram na média de 10Mb cada.
Os scripts são compactados de acordo com a configuração (.zip, .zip 7-zip Engine, .7z) que você definir.
Eu deixei como zip e após gerar 245 scripts o arquivo compactado ficou com 258MB...

A funcionalidade de schedular a tarefa é interessante para otimizar o consumo da internet.

Ok.. Scripts gerados!
Agora vamos automatizar a execução destes scripts pois não sou louco de ficar executando um a um.

Para isso, criei um script ".bat" para executar todos os scripts no SQL Server através do comando sqlcmd. 
Deveremos informar o diretório onde estão armazenados os scripts ".sql" e também a instância onde serão executados. Agora é só executar e acompanhar e analisar os arquivos gerados no diretório de log.




Após a execução dos scripts, meu ambiente de desenvolvimento deverá estar devidamente atualizado, mas como garantir que tudo está em seu devido lugar.
Para isto, utilizo outra ferramenta free chamada DB Comparer em que podemos comparar os dois Databases.


Obs.: O objetivo desta imagem é demonstrar a funcionalidade da ferramenta.

Bem pessoal, é isto!
Desta forma, automatizei a atualização de meu ambiente de desenvolvimento com databases hospedados.
Deve existir outra forma mais elegante e/ou de melhor performance. Se quizer compartilhar sua experiência nestes cenários, fique a vontade para comentar o post.

Até o próximo post.

Nenhum comentário:

Postar um comentário