Os backups do log de transações SQL estão em conflito com os backups completos?

6

Em nossos servidores SQL (2000, 2005 e 2008), executamos backups completos uma vez por dia à noite e backups de log de transações a cada 2 horas. Não nos preocupamos muito com esses dois processos conflitantes, mas ultimamente encontramos alguns dos seguintes problemas:

  1. Em um servidor, o backup do log de transações bloqueia ocasionalmente o backup completo e deve ser interrompido manualmente antes que o backup completo seja concluído

  2. Às vezes, acabamos com um arquivo de backup trans log de tamanho grande (às vezes maior que o backup completo!) que parece ocorrer ao mesmo tempo em que o backup completo está em execução.

Eu encontrei uma referência que indica que estes são "não permitidos" para executar ao mesmo tempo, o que quer que isso signifique: SQL 2000 Books Online e SQL 2005 Livros Online . Não tenho certeza se isso significa que o servidor irá simplesmente impedir que eles sejam executados simultaneamente, ou se deveríamos estar explicitamente interrompendo os backups de log enquanto os backups completos estão sendo executados.

Então, há conflitos / problemas conhecidos entre eles? A resposta é diferente entre as versões do SQL? Devo fazer com que o trabalho de backup de log trans verifique se o backup completo está em execução antes de ser executado? (e como faço isso ...?)

    
por BradC 27.05.2009 / 18:42

4 respostas

12

Em 2000, os backups de log não podiam ser executados ao mesmo tempo como backups completos ou de diff (porque um backup de log limpa algum log de transações e full / diffs deve fazer backup de algum log para permitir que a cópia restaurada do banco de dados seja transacionalmente consistente).

Em 2005, essa restrição foi suspensa. Eles podem ocorrer ao mesmo tempo, mas um backup de log simultâneo com um full ou diff não limpará o log. A limpeza do log será adiada até que o full ou o diff sejam concluídos - isso aumenta o mito de que os backups completos e diff limpam o log - eles não o fazem.

Obrigado

    
por 27.05.2009 / 19:14
5

Backups de banco de dados normalmente devem ser serializados.

O backup de log grande provavelmente está acontecendo devido às operações de manutenção do banco de dados que acontecem entre o último backup de log e o backup completo. Reduzir o intervalo entre os backups de log pode ajudar nisso.

Você pode executar algum T / SQL para verificar a tabela sysprocesses (ou DMV se SQL 2005+) para ver se um backup já está sendo executado nesse banco de dados. Se não fizer o backup, se assim for socorrer graciosamente.

    
por 27.05.2009 / 18:51
0

Mais uma possibilidade: se você tiver o espelhamento configurado e ele estiver suspenso, seu log de transações e backups de banco de dados aumentarão e continuarão a crescer, contanto que o espelhamento seja pausado.

    
por 12.10.2009 / 23:11
0

No meu cenário ... estamos tendo envio de log

Tempo de backup completo do SQL 2005 db: - 23 horas Registros Tran a cada 15 minutos: - 22:21, 22,30, 22,45, 23,00.

Mas sempre que o backup completo do db é iniciado ... os logs de tran param a geração e nosso banco de dados de espera fica fora de sincronia.

Portanto, atrasamos os registros de transcrição em 5 minutos ... e o problema foi resclatado.

    
por 17.06.2010 / 12:33