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??

giphy
Não… Não é…

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 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.

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… No link abaixo esse parâmetro não existe!
  4. @log_qty: Quantos logs de transação devem ser restaurados depois do full. Coloque 0 para testar 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!

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

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

Espero ter ajudado hoje.

[]’s!!

 

3 comentários sobre “Valide seus backups com a prRestore”

  1. Jerfeson Santosjulho 11, 2016 às 1:25 pmResponder

    Show de bola man. Já estou utilizando em meus ambientes.

    Parabéns!

  2. Jerfeson Santossetembro 14, 2016 às 6:09 pmResponder

    Logan , tenho ambientes que estão em domínios diferentes e em outras situações banco está em outro ambiente, no qual uso os arquivos de backups do servidor principal para restaurá-los.

    1. Logan Merazzisetembro 16, 2016 às 1:39 pmResponder

      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 uma resposta