Valide seus backups com a prRestore

EDIT

O script foi atualizado! Versão 2.0 saindo do forno!!

Agora é possível usar o script para restaurar o último diferencial criado também… E os logs, obviamente, respeitarão a opção. Baixe aqui!

FIM DO EDIT

Se você perguntar para “N” profissionais qual o principal bem das empresas, a resposta será praticamente a mesma: Os dados que ela possui (e se você achava que era o próprio funcionário, sinto te desiludir).
E para garantir que os seus dados estejam sempre prontos para serem recuperados em caso de desastre, basta você fazer o backup dela periodicamente, seguindo uma politica que te permita recuperá-la em um ponto no tempo (eu recomendo ler sobre a procedure criada pelo Edvaldo Castro sobre o assunto), correto??

Apenas o backup não vai te garantir que a base está pronta para ser restaurada quando precisar. Para isso, é necessário que você teste periodicamente os teus backups (sim, muita coisa pode acontecer para que seus backups não funcionem).

Mas ficar lembrando dos comandos ou então deixar um script armazenado para isso não é muito legal também… Porque não, então, automatizar a restauração e deixar o processo mais fácil de ser verificado? Em um dos grupos que eu participo, surgiu a dúvida sobre como automatizar esse processo e, pensando nisso, fiz a procedure prRestore, para tentar ajudar.

Ela está em fase inicial ainda, mas já ajuda em verificar o último backup FULL realizado e os “N” backups do log de transação subsequentes (essa era a dúvida principal).

Algumas observações:

  1. Para fazer algo que eu precisasse passar o mínimo de parâmetros possíveis eu parti do pressuposto de que os arquivos continuam no mesmo local onde eles foram backupeados (?) originalmente.
  2. Como o propósito é testar os backups, aqui eu vou salvar os dados em uma pasta e os logs em outra. Nada impede de colocar na mesma pasta, mas se você quiser separar os dados em mais de uma pasta, não vai funcionar (valeria um item para a ToDo List?)
  3. Falta colocar para validar o diferencial… Esse é um item que entrará para ser feito futuramente (concluído, conforme edit acima)

Mas vamos lá: Como funciona??

Após aplicar o script, execute:

Onde:

  1. @origin_database_name: Nome do banco de origem (a.k.a. O banco que foi backupeado)
  2. @new_database_name: Nome do banco de destino
  3. @last_diff: Se você vai querer restaurar o último diferencial gerado. Parâmetro disponível apenas na versão 2.0, no link acima!
  4. @log_qty: Quantos logs de transação devem ser restaurados depois do full. Coloque 0 para restaurar apenas o FULL.
  5. @data_destination_path: Local onde os arquivos de dados (.mdf, .ndf) serão restaurados.
  6. @log_destination_path: Local onde os arquivos de logs de transação (.ldf) serão restaurados.

Ainda tem muito mais a ser feito (e a minha ideia é manter esse script sempre atualizado – Veja o que já está programado nos comentário do script) e, para isso, eu conto com a sua ajuda amiga… Como? Simples… Baixe, aplique, teste e critique. Todo o feedback é válido e necessário. Só assim eu consigo melhorar, ajustar ou remover o que foi feito…

Interessou??? Então baixe o script lá no começo do post!

O script, como sempre, está disponível para download gratuitamente e serve tanto para uso comercial como pessoal.
Apenas peço para que os créditos sejam mantidos quando for utilizá-lo (não custa nada…).

Para fazer qualquer solicitação, crítica, ou o que mais desejar, é muito fácil… Basta deixar um comentário e/ou enviar um e-mail para logan at merazzi dot com dot br com o que quiser falar que você será extremamente bem recebido. 😉

Espero ter ajudado hoje.

[]’s!!

 

3 comentários

    1. Pois é Jeferson, essa é uma pendência que eu não consegui achar uma solução efetiva (fácil).
      Se houver linked server entre as instâncias, com uma adaptação no script já resolve. Agora, se não tiver… O bixo pega, hehehe…
      Vou pensar em algo como solução e caso encontre, aviso.
      Grande abraço e obrigado pelo feedback!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.