在发给同事之前,我需要清空一个LDF文件。如何强制SQL Server截断日志?
在管理工作室:
不要在运行环境中这样做,但是为了确保你尽可能地缩小你的开发数据库: 右键单击数据库,选择Properties,然后选择Options。 确保“恢复模式”设置为“简单”,而不是“完整” 单击OK 再次右键单击数据库,选择“任务->收缩->文件” 更改文件类型为“日志” 单击OK。
或者,SQL来做它:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
裁判:http://msdn.microsoft.com/en-us/library/ms189493.aspx
如果我没记错的话……在查询分析器或等效程序中:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
对于SQL Server 2008,命令为:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
这将我的14GB日志文件减少到1MB。
对于SQL 2008,您可以将日志备份到null设备:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
然后使用DBCC SHRINKFILE对日志文件进行截断。
另一种选择是通过Management Studio分离数据库。然后简单地删除日志文件,或者重命名它并稍后删除。
回到Management Studio再次附加数据库。在附加窗口中从文件列表中删除日志文件。
DB附加并创建一个新的空日志文件。检查一切正常后,可以删除重命名的日志文件。
您可能不应该将此用于生产数据库。
因为我的答案就藏在评论里。对于SQL Server 2012及以上版本,您可以使用以下命令:
BACKUP LOG Database TO DISK='NUL:'
DBCC SHRINKFILE (Database_Log, 1)
推荐文章
- SQL Server:过滤sp_who2的输出
- 在SQL Server上使用varchar(MAX) vs TEXT
- Visual Studio: ContextSwitchDeadlock
- Sql Server字符串到日期的转换
- 有nginx access_log和error_log日志的STDOUT和STDERR的主进程
- 如何将SQL Azure数据库复制到本地开发服务器?
- SQL Server 2008不能用新创建的用户登录
- 用CSS截断长字符串:可行吗?
- 在Python Django中运行单元测试时,如何禁用日志记录?
- SQL Server中User和Login的区别
- 在参数声明中,varchar(MAX)的大小是多少?
- 数据库性能调优有哪些资源?
- 为两列的组合添加唯一的约束
- 哪里是logging.config.dictConfig的完整示例?
- SQL Server的隐藏特性