SQL SERVER 事务日志已满

3

如何在SQL SERVER 2005中释放事务日志空间:

我的事务日志大小为70GB,有四个不同驱动器上的事务日志1、2、3、4。 通过DBCC SQLPERF(LOGSPACE),我发现事务日志已满(使用100%),我想释放事务日志中的空间,但我不想进行T-log备份。我没有备份事务日志的空间。而且我的数据库处于复制状态。

  1. 如何释放事务日志或
  2. 可以只有一个日志文件而不是3个吗?或者
  3. 如果使用缩小方法,该怎么处理复制?
4个回答

5

0

单独缩小文件能够达到你想要的效果吗?

DBCC SHRINKFILE (N'LogFile', 1)

0

已经讨论了关于复制数据库上恢复模式切换的问题这里。你也可以在MSDN上阅读一些文档

如果由于空间限制而不想进行T-log备份,可以将复制数据库置于简单恢复模式,并尝试:

执行CHECKPOINT操作。简单恢复模式下的数据库会在每次checkpoint时清除日志。

DBCC SHRINKFILE (N'LogFileName', 1) -- shrink the log file to 1 MB 

然后将其改回完整模式。 为了删除一些数据库日志文件,您首先必须清空要删除的日志文件,然后再将它们删除。详情请参见此处


0
请查看微软的以下文章。

http://msdn.microsoft.com/en-us/library/ms175495.aspx

我想释放交易日志中的空间,不想进行T-log备份。微软不支持这样做。必须进行事务日志备份,获取一个驱动器进行备份。如果不备份,将无法释放日志。没有释放日志就无法收缩文件。所以,无论你是否愿意,都需要备份。如果您不关心事务日志,那么数据库一开始就应该以简单恢复模式创建。

这是一个开发环境,我使用了这个句子。下次发布时我一定会注意的。如果我将数据库设置为简单恢复模式,是否会影响我的复制? - Dhiva
不确定 - 真的。如果有什么问题,建议设置每日备份脚本....然后删除备份 ;) - TomTom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接