Após a atualização para o SQL Server 2008, o arquivo de log do banco de dados cresce de forma desproporcional

3

Após a atualização do SQL2005 para o 2008 SP1, observamos de repente expansões desproporcionais do arquivo de log do banco de dados durante grandes transações.

Exemplo: inserindo 75 milhões de linhas na tabela B, excluindo as mesmas linhas de 75M da tabela A, ambas na mesma transação. A quantidade total de dados é de cerca de 2 vezes 20 GB, mas o arquivo de log do banco de dados aumenta para 150 GB ou mais.

Nunca vi isso no SQL2005, antes de atualizar.

Eu não achei isso documentado como uma regressão conhecida no SQL2008 em qualquer lugar .. alguém viu isso também?

Obrigado

Máximo

    
por Max 06.08.2010 / 22:39

4 respostas

2

Você sempre pode usar o fn_dblog () para analisar o conteúdo do log e entender de onde vem o aumento. Com a recuperação simples, o log pode ser revertido e não ser capaz de analisar, portanto, para fins de análise, recomendo alterar a recuperação para completo, fazer um backup completo simulado para / dev / nul ( backup database ... to disk='nul:' ) e executar novamente sua transação . Se possível, marque a ID da transação (procure em sys.dm_tran_active_transactions ) e, em seguida, examine a select ... from fn_dblog(null, null) where [TransactionID] = 'xactid' output e ver que tipo de registros são gerados para que seu log cresça para 150Gb. O espaço reservado é a coluna relevante para você. Eventualmente, se possível, compare com o mesmo no SQL 2005.

Depois disso, você pode reverter o modelo de recuperação de volta ao simples. No entanto, observe que o comportamento da reserva de log pode ser diferente em simples que em completo, mas vamos cruzar essa ponte quando chegarmos nela, se acontecer.

    
por 07.08.2010 / 18:15
0

Um log de transações cresce inesperadamente ou fica cheio em um computador que está executando o SQL Server

Isso é para o SQL 2005, mas também pode ser relevante para 2008.

    
por 07.08.2010 / 04:15
0

Seu log de transações pode ser definido para crescimento automático. Desative essa configuração e defina seu arquivo de log em um tamanho fixo.

    
por 07.08.2010 / 18:03
-2

Isso ocorre porque seu arquivo de log está registrando tudo, o que eu recomendaria é cortar os arquivos de log do banco de dados por meio do Reduzir a tarefa do banco de dados . Lembre-se de fazer isso depois de fazer um backup.

Tsql para fazer isso:

USE [N2CMS]
GO
DBCC SHRINKDATABASE(N'MyDataBase', 10, TRUNCATEONLY)

Dependendo de como você faz backups, seu software de backup deve ser capaz de fazer isso

    
por 07.08.2010 / 00:55