Preciso esvaziar um arquivo LDF antes de enviar para um colega. Como forçar o SQL Server a truncar o log?
Preciso esvaziar um arquivo LDF antes de enviar para um colega. Como forçar o SQL Server a truncar o log?
Respostas:
se bem me lembro ... no analisador de consultas ou equivalente:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
WITH TRUNCATE_ONLY
.
BACKUP LOG DatabaseNameHere TO DISK='NUL:'
.
No estúdio de gerenciamento:
Properties
, em seguida Options
.Tasks
-> Shrink
->Files
Como alternativa, o SQL faz isso:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
use mydatabase
antes de executardbcc shrinkfile
Para o SQL Server 2008, o comando é:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
Isso reduziu meu arquivo de log de 14 GB para 1 MB.
Para o SQL 2008, você pode fazer backup do log no nul
dispositivo:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
E, em seguida, use DBCC SHRINKFILE
para truncar o arquivo de log.
Outra opção é desanexar o banco de dados via Management Studio. Em seguida, basta excluir o arquivo de log ou renomeá-lo e excluir posteriormente.
De volta ao Management Studio, anexe o banco de dados novamente. Na janela anexar, remova o arquivo de log da lista de arquivos.
O banco de dados anexa e cria um novo arquivo de log vazio. Depois de verificar se está tudo bem, você pode excluir o arquivo de log renomeado.
Você provavelmente não deve usar isso para bancos de dados de produção.