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->FilesComo alternativa, o SQL faz isso:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
use mydatabaseantes 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 nuldispositivo:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
E, em seguida, use DBCC SHRINKFILEpara 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.