SQL Server 2005 巨大的 ldf 文件

SQL Server 2005 巨大的 ldf 文件

我在 SQL Server 2005 上有一个 24Gb 的数据库。与之配套的 ldf 文件现在有 47Gb。由于磁盘空间不足,我无法运行数据库的备份。我的问题是:如何让这个 ldf 文件的大小降低很多(甚至为零),以及如何防止它在将来变得太大?数据库已使用 Brightstor 备份,但 ldf 仍然很大。

感谢您的帮助。

答案1

假设您的数据库/应用程序运行正常,并且没有进行太多更新。并且假设您没有进行任何事务日志备份,那么您需要执行以下两项操作之一:

  • 开始进行事务日志备份(除了数据库备份)
  • 或者(如建议的那样)将数据库切换到简单恢复模式

要将数据库设置为简单恢复,请使用 SSMS 或针对数据库运行以下 TSQL:

更改数据库[DBNAME]设置恢复简单;

一旦数据库使用简单恢复模式,请确保进行完整备份。之后,您需要通过运行以下 TSQL 告诉 SQLServer 明确收缩日志文件:

DBCC SHRINKFILE (文件名,目标大小)

其中文件名是数据库日志文件的名称(即 DBNAME_Log),目标大小以兆字节为单位(请记住,您不想将其设置得太小,否则它将不得不再次增长到“正常”水平)

答案2

首先想到的是,你的数据库上的日志记录模式是如何设置的?如果你将其更改为简单模式,它应该会减小它的大小。

这个链接可能有帮助:http://www.mindsdoor.net/SQLAdmin/TransactionLogFileGrows_1.html

答案3

如果备份因空间不足而失败,听起来就像您备份到与日志(可能还有数据?)相同的驱动器。希望 Brightstor 备份到服务器外的位置?

您是否需要日志备份来进行恢复?如果不需要,请切换到 SIMPLE 恢复模式,然后收缩事务日志文件。

如果确实需要日志备份,您可以通过运行带有 TRUNCATE_ONLY 的日志备份,然后进行日志收缩,然后进行完整的 DB 备份来回收空间,以便您可以再次启动备份链。

鉴于您的 ldf 非常庞大,我想象您只是没有在完整恢复模式下对数据库进行日志备份,因此它会持续增长,直到您备份它或切换到简单恢复。

答案4

您需要将数据库日志设置为简单(但前提是您对数据库进行了完整备份!)。

  1. 右键点击在你的数据库上
  2. 选择特性
  3. 选择选项
  4. 将恢复模式设置为简单的

这会很有效,并且最好是您的备份计划是完整备份每天。因为在这种情况下,您的日志不会被修剪,而且会飙升。

如果您使用祖父和父亲和儿子备份技术。这意味着每月完整备份每周完整备份,然后每个日增量备份. 那么你需要完全恢复模式

因此,如果您每天都运行完整备份,则可以将其切换到简单恢复模式,这样就不会有数据风险。如果您打算使用增量备份,则将其保留在恢复模式完全

相关内容