Está tendo um 92MB .mdf com um 58MB .ldf ok? Como faço para gerenciar o log para manter as coisas funcionando bem?

1

Eu tenho trabalhos no lugar para cortar tabelas usadas para histórico e registro para mantê-las em bom estado. Quero ter certeza de que não negligenciei o arquivo de log.

Como e o que eu posso ou devo fazer para manter o arquivo de log sob controle?

O script SQL que estou executando em uma programação noturna é:

declare @DBname varchar(500)
set @DBname = 'E:\Database\backup\PMIS_backup_' +
    convert(varchar(MAX), getdate(), 23 ) +'.bak'

BACKUP DATABASE [PMIS] TO DISK = @DBname
    WITH NOFORMAT, NOINIT, NAME = @DBname, SKIP, REWIND, NOUNLOAD, STATS = 10

O banco de dados está no modo de recuperação simples.

    
por kacalapy 01.03.2011 / 17:42

3 respostas

3

Se o banco de dados estiver no modo de recuperação simples e o arquivo de log não estiver aumentando gradualmente, não me preocuparei com isso. As chances são de que ele precisa ser tão grande se houver qualquer tipo de plano de manutenção fazendo uma reindexação substancial regularmente.

Se o arquivo de log aumentar , você vai querer descobrir o motivo. Você pode executar DBCC SQLPERF (LOGSPACE) para ver quanto do arquivo de log está em uso - se ele for consistentemente alto, então verifique a coluna log_reuse_wait_desc em master.sys.databases para ver porque ele não está reutilizando o espaço como deveria. Se o uso for baixo, provavelmente houve alguma transação única que causou uma tonelada de trabalho e fez com que o arquivo de log crescesse. Se for uma transação que acontecerá regularmente, então, encolher e aumentar repetidamente o arquivo de log afetará apenas o desempenho, portanto, deixe-o em qualquer tamanho que ofereça uma sala de trabalho confortável. Por outro lado, se o arquivo de log for muitas vezes o tamanho do arquivo de dados, provavelmente é desnecessário.

    
por 01.03.2011 / 20:25
2

Você está fazendo backups de log de transação? Cada vez que se obtém êxito, o SQL elimina as transações inativas do log, e isso por si só pode manter o tamanho do arquivo de log de transações gerenciável.

    
por 01.03.2011 / 17:58
1

Você precisará reduzir o arquivo de registro depois de realizar um backup do arquivo de registro.

Toda vez que você apaga um registro da tabela, você está removendo os dados do arquivo de dados, mas essa operação é registrada no arquivo de registro (daí o nome; -).

Quando um banco de dados é configurado para o modelo de recuperação Completa, o arquivo de registro é infinitamente anexado também até que seja feito o backup. Confira a MSDN: Arquitetura física do log de transações para obter mais informações.

Além disso, se você não estiver fazendo backups de log de transações regulares (presumivelmente porque não precisa de recuperação pontual), considere usar um modelo de recuperação simples. Claro, você deve fazer backup & encolha o arquivo de log primeiro e depois mude o modelo de recuperação do banco de dados para simples.

    
por 01.03.2011 / 18:36