当前位置:首页> 正文

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

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

What is the command to truncate a SQL Server log file?

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


在管理工作室中:

  • 不要在实时环境中执行此操作,但要确保尽可能缩小收缩量:

    • 右键单击数据库,选择Properties,然后选择Options
    • 确保将"恢复模型"设置为"简单",而不是"完整"
    • 点击确定
  • 再次右键单击数据库,选择Tasks-> Shrink-> Files
  • 将文件类型更改为"日志"
  • 单击

另外,SQL也可以这样做:

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

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


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

1
2
3
BACKUP LOG  databasename  WITH TRUNCATE_ONLY

DBCC SHRINKFILE (  databasename_Log, 1)


对于SQL Server 2008,命令为:

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

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


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

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

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


带有truncate_only的备份日志日志名,后跟dbccrinkfile命令


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

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

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

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


展开全文阅读

相关内容