none
Duvida Backup RRS feed

  • Pergunta

  • Olá,

    estou pensando a estrutura de backups do meu servidor aqui e cheguei na seguinte conclusao.

    Backup Full todo domingo
    Backup Diferencial todo dia as 03:00 com Overwrite
    Backup de Log por hora

    a questao que eu tenho é a seguinte... se, por exemplo, na terça feira houve algum problema no banco e corrompeu os meus dados e eu nao vi... as 03:00 da manha de quarta ele vai fazer o backup diferencial e sobreescrever o de terça... ou seja... vai fazer o backup dos dados corrompidos e nao vou conseguir mais recupera-los, correto ? Tem alguma maneira de se precaver disso ? desligar o overwrite ?

    Obrigado

    Luiz
    quinta-feira, 11 de fevereiro de 2010 16:56

Todas as Respostas

  • Boa tarde Luiz

    Aconselho você reservar pelo menos uns dois arquivos Differential, se você não tiver problemas de armazenamento. Uma outra alternativa que pode ser interessante é você gerar um Database Snapshot antes de fazer o Backup Diferencial, pois caso tenha algum problema com os dados você pode recuperá-los utilizando o Database Snapshot.



    Espero ter ajudado
    Anderson - DBA/MCP/MCTS/MCITP/MCT - Sua pergunta foi respondida ? Marque-a como tal! www.myspace.com/andersondpa
    quinta-feira, 11 de fevereiro de 2010 17:16
  • Adicionalmente recomendo a leitura deste post do Gustavo Maia Aguiar:
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!719.entry?sa=256282230

    http://ricardomura.spaces.live.com
    quinta-feira, 11 de fevereiro de 2010 18:05
  • Luiz,

    Dependendo do sql que você estiver usando (2000, 2005 ou 2008), existem diversas maneiras de se precaver isso...
    Isso pode ser feito graficamente ( pelo SQL Server Management Studio), ou através de alterações no comando backup.

    1) Você poderia fazer a salva com append ao invés de overwrite, mas isso vai te causar problemas de espaço cedo ou tarde.
    2) Você pode também automatizar a deleção do arquivo de backup (ex. reter 2 dias de arquivos com extensão .bak) em uma determinada pasta.
    3) Você pode também continuar gerando seus backups da forma que está, mas copiando-os para outro servidor ou fita, onde ele ficará retido por mais tempo.

    Particulamente, eu uso as opções 2 e 3, dependendo do sql que estou usando ou da estrutura que tenho disponível.


    Eduardo
    sexta-feira, 12 de fevereiro de 2010 17:56
  • Olá Luiz,

    Voce pode utilizar a opção CHECKSUM do comando BACKUP DATABASE.
    Com a opção CHECKSUM o SQL Server faz uma verificação das páginas de dados antes de escreve-las no dispositivo de backup.

    Lembre-se também de definir a opção STOP_ON_ERROR (Default) de qual irá impedir o backup de continuar caso é encontrado alguma falha.

    Espero ter ajudado
    Até mais.

    Felipe Santana - MCP
    • Sugerido como Resposta Felipesf sábado, 13 de fevereiro de 2010 02:42
    sábado, 13 de fevereiro de 2010 02:42
  • Boa Tarde,

    Antes de apontar sugestões é necessário levar alguns pontos em consideração:

    - Quantas bases serão backupeadas ?
    - Qual a criticidade dessas bases ?
    - É necessário restaurá-las em um momento específico no caso de falha ? Isso para todas as bases ?
    - Para onde o backup vai ? Disco ? Fita ?
    - Qual é o comportamento das bases ? O banco possui atividade de escrita intensa ou é na maior parte do tempo lido ?
    - Qual é a janela de backup ?
    - Qual é a utilização do backup ? Ele existe só para quando um dia ocorrer problemas  na produção ou você costuma restaurá-lo em outras situações ?
    - Há soluções de alta disponibilidade envolvidas como cluster, database mirroring, replicação ?

    Do jeito que você montou, parece uma boa estratégia, mas se você pudesse fazer um full diário por exemplo, no momento de uma catástrofe, a restauração seria muito mais rápida. Só que dependendo do tamanho da base, um full diário é proibitivo. Um diferencial diário é uma ótima idéia para bancos com pequenos alterações, mas se sua base tem alterações intensas, é possível que em pouco tempo o diferencial atinja o tamanho do full o que deixa a estratégia menos interessante.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com/blog

    Encontrando índices não utilizados
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!945.entry


    Classifique as respostas. O seu feedback é imprescindível
    sábado, 13 de fevereiro de 2010 17:52
  • Entao pessoal,

    resolvi seguir a dica de alguns e manter os baclups por um certo tempo...

    montei a estrutura e botei pra rodar, porem tive um problema sério aqui... ele rodou o backup full, o diferencial e o de log 1 vez... perfeito... porem.. quando ele foi rodar o de log pela segunda vez, ele nao gerou o backup e colocou isso no Log do SQL Server:

    Erro: 3041, Gravidade: 16, Estado: 1.

    a partir dai o banco de dados foi marcado como (Restaurando...) e nunca mais saiu disso...

    fui ler por ai e vi que esse erro ocorre quando se faz um backup de log sem um backup full anterior.. o que, como da pra ver, não é o caso...
    alguem sabe o que seria isso ?

    Obrigado

    Luiz

    segunda-feira, 15 de fevereiro de 2010 20:36