在发给同事之前,我需要清空一个LDF文件。如何强制SQL Server截断日志?
当前回答
对于SQL Server 2008,命令为:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
这将我的14GB日志文件减少到1MB。
其他回答
因为我的答案就藏在评论里。对于SQL Server 2012及以上版本,您可以使用以下命令:
BACKUP LOG Database TO DISK='NUL:'
DBCC SHRINKFILE (Database_Log, 1)
如果我没记错的话……在查询分析器或等效程序中:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
对于SQL Server 2008,命令为:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
这将我的14GB日志文件减少到1MB。
使用truncate_only和DBCC shrinkfile命令备份日志logname
对于SQL 2008,您可以将日志备份到null设备:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
然后使用DBCC SHRINKFILE对日志文件进行截断。