如何在SQL SERVER 2005中释放事务日志空间:
我的事务日志大小= 70 GB,并且在不同的驱动器中有四个事务日志1,2,3,4。 通过DBCC SQLPERF(LOGSPACE)我发现事务日志是Full(使用100%),我想释放事务日志中的空间,我不想要T-log备份。我没有空间来备份事务日志。我的数据库处于复制状态。
答案 0 :(得分:5)
执行以下语句序列:
BACKUP LOG <db_name> WITH TRUNCATE_ONLY
--or save to log to other drives on disk if required
GO
CHECKPOINT
GO
--replace 2 with your actual log file number.
DBCC SHRINKFILE (2, 100)
如果日志没有缩小,请检查日志文件增长的原因。有关这方面的更多信息,请访问:
http://sqlreality.com/blog/ms-sql-server-2008/troubleshooting-the-full-transaction-log-problem/
答案 1 :(得分:0)
查看Microsoft的以下文章。
http://msdn.microsoft.com/en-us/library/ms175495.aspx
我希望释放空间 事务日志,我不想要T-log 备份
MS不支持此功能。
此处需要事务日志备份。得到一个驱动器,做到这一点。
如果您不这样做,则无法释放日志。
如果不释放日志,则无法缩小文件。因此,无论您是否愿意,都需要进行备份。
如果您不关心事务日志,则应该以简单恢复模式创建数据库,以便开始使用。
答案 2 :(得分:0)
单独收缩文件会实现你想要的吗?
DBCC SHRINKFILE (N'LogFile', 1)
答案 3 :(得分:0)
已经讨论了有关复制数据库here上的恢复模型切换的问题。你可以阅读一些documentation as well on MSDN。
如果由于空间限制而不想进行T-log备份,可以将复制的数据库放在简单恢复模型中并尝试:
执行检查点。 SIMPLE恢复模式下的数据库清除每个检查点上的LOG LOG。
DBCC SHRINKFILE (N'LogFileName', 1) -- shrink the log file to 1 MB
之后将其更改为Full。 为了删除一些数据库的日志文件,首先必须清空要删除的文件,然后将其删除。详情here。