Como truncar o log de transações em um banco de dados do SQL Server 2008?
Quais são as melhores maneiras possíveis?
Eu tentei isso em um blog da seguinte maneira:
1) Do banco de dados de configurações à recuperação simples, diminuindo o arquivo e definindo novamente a recuperação total, você está perdendo seus valiosos dados de log e não poderá restaurar o ponto no tempo. Além disso, você também não poderá usar os arquivos de log subsequentes.
2) A redução do arquivo ou banco de dados adiciona fragmentação.
Há muitas coisas que você pode fazer. Primeiro, comece a fazer backup de log adequado usando o comando a seguir, em vez de truncá-los e perdê-los com freqüência.
BACKUP LOG [TestDb] TO DISK = N'C:\Backup\TestDb.bak'
GO
Remova o código de SHRINKING o arquivo. Se você estiver executando backups de log adequados, seu arquivo de log normalmente (novamente, geralmente, casos especiais são excluídos) não aumenta muito.
fonte
Respostas:
A maneira mais segura e correta de truncar um arquivo de log, se o banco de dados estiver no Modo de recuperação total, é fazer um backup do log de transações (sem
TRUNCATE_ONLY
. Isso ficará obsoleto em versões futuras e não é aconselhável).Parece que você deseja reduzir o arquivo de log posteriormente; nesse caso, você executaria um
DBCC SHRINKFILE(yourTLogName)
comando. Há um segundo parâmetro opcional para o tamanho solicitado reduzi-lo.fonte
Você pode fazer backup do log no dispositivo nulo:
Ou você pode mudar o modelo de recuperação para simples e depois voltar para cheio / em massa novamente.
fonte
Se você não se importa com seus dados de log e apenas deseja se livrar deles:
Altere o modelo de recuperação de completo para simples e, em seguida, de volta para completo. Reduza o arquivo usando DBCC SHRINKFILE com o argumento TRUNCATEONLY
O comando a seguir alterará o modelo de recuperação de completo para simples
O comando a seguir alterará o modelo de recuperação para completo
Para encontrar o nome do arquivo de log, você pode usar a seguinte consulta
Encolher o arquivo
Consulte Qual é o comando para truncar um arquivo de log do SQL Server? para mais informações sobre isso
fonte