截断SQL Server日志文件的命令是什么?

时间:2008-09-02 19:44:50

标签: sql-server truncate logging

我需要在发送给同事之前清空LDF文件。如何强制SQL Server截断日志?

7 个答案:

答案 0 :(得分:290)

在管理工作室:

  • 不要在实时环境中执行此操作,但要确保尽可能多地缩小dev db:
    • 右键单击数据库,选择Properties,然后选择Options
    • 确保“恢复模式”设置为“简单”,而不是“完整”
    • 点击确定
  • 再次右键单击数据库,选择Tasks - > Shrink - > Files
  • 将文件类型更改为“日志”
  • 单击“确定”。

或者,执行它的SQL:

 ALTER DATABASE mydatabase SET RECOVERY SIMPLE
 DBCC SHRINKFILE (mydatabase_Log, 1)

参考:http://msdn.microsoft.com/en-us/library/ms189493.aspx

答案 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再次附加数据库。在附加窗口中,从文件列表中删除日志文件。

数据库附加并创建一个新的空日志文件。检查完一切后,您可以删除重命名的日志文件。

您可能不应该将此用于生产数据库。