在发送给同事之前,我需要清空 LDF 文件。如何强制 SQL Server 截断日志?
ajryan
问问题
521607 次
7 回答
328
在管理工作室:
- 不要在实时环境中执行此操作,但要确保尽可能缩小开发数据库:
- 右键单击数据库,选择
Properties
,然后选择Options
。 - 确保“恢复模式”设置为“简单”,而不是“完整”
- 点击确定
- 右键单击数据库,选择
- 再次右键数据库,选择
Tasks
->Shrink
->Files
- 将文件类型更改为“日志”
- 单击确定。
或者,执行此操作的 SQL:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
于 2008-09-02T19:51:12.087 回答
134
如果我没记错的话……在查询分析器或等效项中:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
于 2008-09-02T19:53:31.410 回答
75
对于 SQL Server 2008,命令是:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
这将我的 14GB 日志文件减少到 1MB。
于 2011-08-08T07:09:49.520 回答
39
对于 SQL 2008,您可以将日志备份到nul
设备:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
然后使用DBCC SHRINKFILE
截断日志文件。
于 2011-09-09T12:24:30.427 回答
3
带有 truncate_only 后跟 dbcc shrinkfile 命令的备份日志 logname
于 2008-09-02T19:51:59.323 回答
0
因为我的答案被埋在评论中。对于 SQL Server 2012 及更高版本,您可以使用以下内容:
BACKUP LOG Database TO DISK='NUL:'
DBCC SHRINKFILE (Database_Log, 1)
于 2020-04-16T20:25:50.563 回答
-4
另一种选择是通过 Management Studio 分离数据库。然后只需删除日志文件,或重命名并稍后删除。
返回 Management Studio 再次附加数据库。在附加窗口中,从文件列表中删除日志文件。
数据库附加并创建一个新的空日志文件。检查一切正常后,您可以删除重命名的日志文件。
您可能不应该将它用于生产数据库。
于 2014-01-13T09:10:08.153 回答