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

问题描述 投票:190回答:7

我需要先清空LDF文件,然后再发送给同事。如何强制SQL Server截断日志?

sql-server truncate logging
7个回答
130
投票

如果我还记得...在查询分析器或类似工具中:

BACKUP LOG  databasename  WITH TRUNCATE_ONLY

DBCC SHRINKFILE (  databasename_Log, 1)

304
投票

在管理工作室中:

  • 不要在实时环境中执行此操作,但要确保尽可能缩小收缩开发数据库:
    • 右键单击数据库,选择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


60
投票

对于SQL Server 2008,该命令是:

ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL

这将我的14GB日志文件减少到1MB。


36
投票

对于SQL 2008,您可以将日志备份到nul设备:

BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10

然后使用DBCC SHRINKFILE截断日志文件。


3
投票

带有truncate_only的备份日志日志名,后跟dbcc收缩文件命令


0
投票

由于我的答案被埋在评论中。对于SQL Server 2012及更高版本,可以使用以下命令:

BACKUP LOG Database TO DISK='NUL:'
DBCC SHRINKFILE (Database_Log, 1)

-5
投票

另一种选择是通过Management Studio分离数据库。然后,只需删除日志文件,或重命名该日志文件,然后再删除。

返回Management Studio,再次附加数据库。在附加窗口中,从文件列表中删除日志文件。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.