发送给同事之前,我需要清空LDF文件。如何强制SQL Server截断日志?
发送给同事之前,我需要清空LDF文件。如何强制SQL Server截断日志?
Answers:
如果我还记得...在查询分析器或等效工具中:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
WITH TRUNCATE_ONLY
。
BACKUP LOG DatabaseNameHere TO DISK='NUL:'
。
在管理工作室中:
Properties
,然后选择Options
。Tasks
-> Shrink
->Files
另外,SQL也可以这样做:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
use mydatabase
在执行之前dbcc shrinkfile
对于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,您可以将日志备份到nul
设备:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
然后使用DBCC SHRINKFILE
截断日志文件。
另一个选择是通过Management Studio分离数据库。然后,只需删除日志文件,或重命名该日志文件,然后再删除。
回到Management Studio,再次附加数据库。在附加窗口中,从文件列表中删除日志文件。
数据库将附加并创建一个新的空日志文件。检查一切正常后,您可以删除重命名的日志文件。
您可能不应该将此用于生产数据库。