数据库的日志文件已满

时间:2008-09-16 14:32:49

标签: sql-server sql-server-2000

因此我们的SQL Server 2000给出了错误,“数据库的日志文件已满。备份数据库的事务日志以释放一些日志空间。”

如何在不删除其他网站提及的日志的情况下修复此问题?

其他信息:启用启用AutoGrowth增长10%,限制为40MB。

12 个答案:

答案 0 :(得分:17)

要清空它:

backup log <dbname> with truncate_only  

将它保存在某个地方:

backup log <dbname> to disk='c:\somefile.bak'

如果您确实不需要事务历史记录,请尝试将数据库恢复模式设置为简单。

答案 1 :(得分:4)

正如你猜测的那样,斯科特:如果你关心你的数据,截断日志是一个不好的举动。

以下免费视频将帮助您准确了解正在发生的事情,并将向您展示如何在不截断日志的情况下解决问题。 (这些视频也解释了为什么这是一个如此危险的黑客,为什么你正确寻找另一种解决方案。)

这些视频将帮助您准确了解正在发生的事情,并向您展示是否要切换到SIMPLE恢复,或者查看实际更改备份例程。还有一些额外的“操作方法”视频将向您显示如何设置备份以确保可用性,同时管理日志文件大小和增长。

答案 2 :(得分:2)

我不认为在数据库联机时重命名或移动日志文件会有效。

最容易做的事情,IMO,是打开数据库的属性并将其切换到简单恢复模型。然后收缩数据库,然后返回并将数据库设置为完全重建模型(或任何您需要的模型)。

更改日志记录模式会强制SQL Server在数据库中设置检查点,之后缩小数据库将释放多余的空间。

答案 3 :(得分:2)

如果您需要在一分钟内恢复或执行其他有趣的操作(例如将来的日志传送),或者将数据库设置为简单模式并缩小数据文件,则定期备份数据库日志。

请勿复制,重命名或删除.ldf文件,这会破坏您的数据库,在您从中恢复后,您可能会将数据置于不一致的状态,使其无效。

答案 4 :(得分:1)

过去遇到此错误的朋友建议:

尝试

  • 备份数据库。维护计划包括截断这些文件。
  • 还可以尝试将数据库的“恢复模式”更改为简单(而不是完整

原因: 由于记录了事件,事务日志会膨胀(可能您有许多事务失败并被回滚..或者服务器上的事务突然达到峰值)

答案 5 :(得分:1)

答案 6 :(得分:0)

您可以获取事务日志的副本,然后截断日志文件,这是错误消息的建议。

如果磁盘空间已满并且您无法通过网络将日志复制到另一台计算机,则通过USB连接驱动器并将其复制出去。

答案 7 :(得分:0)

你的问题有答案:备份日志,然后它就会缩小。 制定维护计划以定期备份数据库,不要忘记选择“备份事务日志”。这样你就可以保持小。

答案 8 :(得分:0)

如果是生产环境,请使用

dump tran <db_name> with no_log;

完成此操作后,缩小日志文件以释放磁盘空间。最后将数据库恢复模式切换为简单。

答案 9 :(得分:0)

只要对数据库进行完整备份,并且数据库未使用简单恢复模型,SQL Server就会保留对数据库上执行过的所有事务的完整记录。这样做是为了在发生灾难性故障时丢失数据文件,您可以通过备份日志恢复到故障点,并在恢复旧数据备份后恢复日志以重放丢失的数据交易。

要防止此建立,您必须备份事务日志。或者,您可以使用BACKUP LOG的TRUNCATE_ONLY或NO_LOG选项在当前点断开链。

如果您不需要此功能,请将恢复模式设置为“简单”。

答案 10 :(得分:0)

亲爱的朋友,DBA经常检查他的日志文件非常重要。因为如果你有一天不太注意它,它会给出这个错误。

为此,您必须定期备份,以便日志文件不会遇到此类错误。

除此之外,上面给出的建议是完全正确的。

答案 11 :(得分:-1)

重命名它。例如:
旧日志16-09-08.log

然后SQL服务器可以使用新的空服务器。