在发给同事之前,我需要清空一个LDF文件。如何强制SQL Server截断日志?
当前回答
使用truncate_only和DBCC shrinkfile命令备份日志logname
其他回答
使用truncate_only和DBCC shrinkfile命令备份日志logname
对于SQL Server 2008,命令为:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
这将我的14GB日志文件减少到1MB。
如果我没记错的话……在查询分析器或等效程序中:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
因为我的答案就藏在评论里。对于SQL Server 2012及以上版本,您可以使用以下命令:
BACKUP LOG Database TO DISK='NUL:'
DBCC SHRINKFILE (Database_Log, 1)
另一种选择是通过Management Studio分离数据库。然后简单地删除日志文件,或者重命名它并稍后删除。
回到Management Studio再次附加数据库。在附加窗口中从文件列表中删除日志文件。
DB附加并创建一个新的空日志文件。检查一切正常后,可以删除重命名的日志文件。
您可能不应该将此用于生产数据库。
推荐文章
- 截断SQL Server日志文件的命令是什么?
- 在pytest测试中记录日志
- 作为变量的表名
- 是否可以直接选择EXISTS作为位?
- SQL JOIN vs IN性能?
- SQL的地方. .IN子句多列
- 修改表:如何将“允许空”属性从不空改为允许空
- 比较两个SQL Server数据库(模式和数据)的最佳工具是什么?
- 在SQL中,如何在范围中“分组”?
- 选项(RECOMPILE)总是更快;为什么?
- 设置数据库从单用户模式到多用户
- 我如何转义一个百分比符号在T-SQL?
- SQL Server恢复错误-拒绝访问
- 如何在SQL Server Management Studio中查看查询历史
- SQL Server索引命名约定