如何释放事务日志空间在SQL Server 2005:SQL Server事务日志已满
我有事务日志的大小= 70 GB,并有四种事务日志在不同的驱动器1,2,3,4。 通过DBCC SQLPERF(LOGSPACE)我发现事务日志是Full(使用100%),我想释放事务日志中的空间,并且我不想T日志备份。我没有空间备份事务日志。我的数据库处于复制状态。
- 我怎样才能腾出事务日志或
- 而不是3事务日志文件,我只能有一个日志文件或
- 如果收缩方法做什么用的复制呢?
如何释放事务日志空间在SQL Server 2005:SQL Server事务日志已满
我有事务日志的大小= 70 GB,并有四种事务日志在不同的驱动器1,2,3,4。 通过DBCC SQLPERF(LOGSPACE)我发现事务日志是Full(使用100%),我想释放事务日志中的空间,并且我不想T日志备份。我没有空间备份事务日志。我的数据库处于复制状态。
查阅以下Microsoft的文章。
http://msdn.microsoft.com/en-us/library/ms175495.aspx
,我想腾出 事务日志的空间,我不想T-数 备份
MS不支持此。
事务日志备份是需要的。得到一个驱动器,做到这一点。
如果你不这样做,你不能释放日志。
不释放日志不能缩小文件。 Ergo,无论您是否需要,您都需要进行备份。
如果您不关心事务日志,那么应该在简单恢复模式下创建数据库以开始使用。
会缩小文件个别完成你想要的?
DBCC SHRINKFILE (N'LogFile', 1)
执行语句的顺序如下:
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/
已经是有关复制数据库here恢复模式开关讨论。你可以阅读一些documentation as well on MSDN。
如果你不想让T-日志备份,因为空间的限制,你可以把复制的数据库中的简单恢复模式,并尝试:
执行检查点。处于SIMPLE恢复模式的数据库将清除每个检查点上的LOG。
DBCC SHRINKFILE (N'LogFileName', 1) -- shrink the log file to 1 MB
之后,将其更改为完整。 为了删除一些数据库的日志文件,首先必须清空那些用于删除的日志文件,然后删除它们。详情here。
属于服务器故障 – 2010-11-09 10:52:24