Acabei de ler muita documentação do MSDN e acho que entendo os diferentes modelos de recuperação e o conceito de uma cadeia de backup. Eu ainda tenho uma pergunta:
Um backup completo do banco de dados trunca o log de transações (usando o modo de recuperação completa)?
Se sim: Onde isso é mencionado no MSDN? Tudo o que pude encontrar foi que apenas o BACKUP LOG trunca o log.
Se não: por quê? Como um backup completo do banco de dados inicia uma nova cadeia de backups, qual é o sentido de manter as transações finalizadas antes do backup completo ativo no log?
fonte
Um backup completo NÃO trunca o log, você deve executar uma operação de log de backup. Um backup completo NÃO redefine a cadeia de logs - isso estragaria totalmente a replicação / envio de logs, etc.
Você precisaria examinar atentamente como o SQL Server faz backups, mas sabe que as transações em andamento / em execução longa não estão incluídas no backup (caso contrário, o backup pode nunca ser concluído), portanto, não é preciso dizer com precisão que um backup completo de um O banco de dados online é garantido para tornar o próximo backup de log obsoleto.
http://msdn.microsoft.com/en-us/library/ms175477.aspx
fonte
Pelo que entendi, a única coisa que trunca o log de transações é um backup de log .
Um backup completo apenas copia o suficiente do log para que seja consistente em termos de transação, porque leva um tempo para a operação de backup ser concluída e, nesse período, as páginas copiadas podem ter sido alteradas.
Você ainda precisa de seus backups de log para recuperação pontual.
Não tenho o MSDN para vincular, mas posso vincular você ao blog de Paul Randal , que foi desenvolvedor da equipe do SQL Server, escreveu DBCC CHECKDB e partes dos Books Online.
Ele também responde perguntas neste fórum, de modo que seria uma autoridade ainda melhor do que as informações de segunda e terceira mão de minha parte :)
fonte
As pessoas geralmente têm um conceito errado sobre os backups completos e de log. Para que o backup funcione no
FULL
modelo de recuperação de backup, os logs t devem ser usados, pois durante os backups ainda pode haver transações em andamento no banco de dados (a menos que você execute umCOLD
backup chamado ao desligar o banco de dados). O Oracle usa o mesmo conceito quando você tem um banco de dados noARCHIVELOG
modo. A sequência de um backup se resume a isso:Essa é a razão pela qual os logs t não são, por padrão, truncados / diminuídos, pois são uma parte vital da continuação da transação durante a fase de backup.
fonte
Não confunda truncar o log com diminuir o log.
TRUNCATE é remover as transações no log anteriores ao último ponto de verificação (o ponto de verificação é quando as transações são liberadas no próprio banco de dados). Isso é feito usando o comando BACKUP.
Para SHRINK, o log é reduzir o tamanho real do arquivo de log. Isso é feito usando comandos DBCC.
fonte
Basicamente, você não precisa reduzir o log de transações automaticamente todas as vezes porque os logs de transações precisam de espaço para funcionar e, se você truncar automaticamente, ele permanecerá quase do mesmo tamanho.
fonte