Log de transações do SQL Server BACKUPS são muito grandes

6

No SQL Server 2008 R2, eu tenho um banco de dados que tem backups completos todas as noites e backups de log de transações a cada dez minutos. O banco de dados está no modelo de recuperação completa.

O problema é que os arquivos de backup dos logs de transações têm centenas de megabytes de tamanho, mas definitivamente não deveriam ser. Não há nada próximo dessa atividade no banco de dados. Cada backup é apenas por dez minutos. Eles são tão grandes que, depois de alguns dias, vão encher completamente o disco rígido.

Alguma ideia do que está causando que os backups sejam tão grandes e como corrigir?

    
por Dustin Martin 04.08.2011 / 18:48

3 respostas

3

Só para ficar claro que estamos na mesma página, você está dizendo que o cada backup de log é centenas de MBs, não que os arquivos de log (LDFs) sejam grandes. O mais atrasado é explicado geralmente pelo registro que está sendo fixado pela replicação, espelhando, uma transação ativa esquecida do usuário ou qualquer outra coisa como alistado em sys.databases.log_reuse_wait_desc . No entanto, eu entendo que não é o caso. Se os backups de log realizados a cada 10 minutos tiverem centenas de MBs, isso significa que deve haver centenas de MB de atividade nos últimos 10 minutos. Talvez haja alguma atividade acontecendo constantemente, da qual você não está ciente?

É claro que eu suponho que você não use a sintaxe WITH NO_TRUNCATE ou WITH COPY_ONLY para a tarefa de backup de log.

As três perguntas a seguir devem dar uma ideia sobre o que é o preenchimento do registro:

use [<myproblemdb>];
go

select count(*) as CountLogRecords, 
    sum([Log Record Length]) [Total Log Length]
from fn_dblog(null, null);

select count(*) as CountTransactionRecords, 
    sum([Log Record Length]) [Transaction Log Length],
    [Transaction ID]
from fn_dblog(null, null)
group by [Transaction ID]
order by 2 desc;

select count(*) as CountLogOperations,
    sum ([Log Record Length]) as [Operation Log Length],
    [Operation]
from fn_dblog(null, null)
group by [Operation]    
order by 2 desc;
    
por 06.08.2011 / 01:08
1

Quantos dados estão no arquivo de log de transações antes que o backup seja feito? Você pode ver isso com DBCC LOGINFO ou observando o relatório de espaço em disco no SQL Server Management Studio. Qual o tamanho dos backups de log?

    
por 04.08.2011 / 21:00
1

Você pode ter muitos VLFs. Execute o DBCC LOGINFO e veja quantas linhas são retornadas. Se houver um grande número, considere encolher o log de transações do banco de dados e aumentá-lo em uma etapa para um tamanho apropriado.

    
por 26.08.2011 / 12:42