我需要在发送给同事之前清空LDF文件。如何强制SQL Server截断日志?
答案 0 :(得分:290)
在管理工作室:
Properties
,然后选择Options
。Tasks
- > Shrink
- > Files
或者,执行它的SQL:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
答案 1 :(得分:126)
如果我记得很清楚......在查询分析器或同等程序中:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
答案 2 :(得分:56)
对于SQL Server 2008,命令为:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
这将我的14GB日志文件减少到1MB。
答案 3 :(得分:34)
对于SQL 2008,您可以将日志备份到nul
设备:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
然后使用DBCC SHRINKFILE
截断日志文件。
答案 4 :(得分:3)
backup logname,truncate_only后跟dbcc shrinkfile命令
答案 5 :(得分:0)
由于我的答案被埋在评论中。对于SQL Server 2012及更高版本,可以使用以下命令:
BACKUP LOG Database TO DISK='NUL:'
DBCC SHRINKFILE (Database_Log, 1)
答案 6 :(得分:-5)
另一个选择是通过Management Studio分离数据库。然后只需删除日志文件,或重命名并稍后删除。
返回Management Studio再次附加数据库。在附加窗口中,从文件列表中删除日志文件。
数据库附加并创建一个新的空日志文件。检查完一切后,您可以删除重命名的日志文件。
您可能不应该将此用于生产数据库。