【问题标题】:SQL Server 2005 Transaction Log too bigSQL Server 2005 事务日志太大
【发布时间】:2010-01-08 01:16:29
【问题描述】:

我正在运行 SQL Server 2005。

我的数据库备份方案是:
恢复模式:FULL
备份类型:完整
备份组件:数据库
备份集将过期:0 天后
覆盖媒体:备份到现有的媒体集,追加到现有的备份集

数据库正在写入 250GB 驱动器(实际为 232GB)。

我的 _Data.mdf 文件超过 55GB,我的 _Log.ldf 超过 148GB。

我们遇到了今天我们的驱动器被填满的情况。我将我们的 ab_Full.bak 和 ab_Log.bak 文件移动到另一个驱动器以腾出空间 - 大约 45GB。五小时后,可用空间为 37GB。

我是管理 SQL 服务器的新手;所以,我有一些关于备份的基本问题。

我知道我需要更新数据库以开始管理事务日志大小,以帮助防止将来出现此问题。所以,假设我有足够的可用空间,我:
1.右键单击数据库并选择备份
2. 将“备份类型”设置为“事务日志”
3. 将“备份集将过期”更改为 30 天后
4.点击“确定”

我的理解是,这会将“关闭”的事务从事务日志移至备份并截断事务日志。

这个计划合理吗?之后我需要手动调整日志文件的大小吗?

感谢您的宝贵时间。

【问题讨论】:

  • 尝试谷歌搜索“kimberly tripp”+transaction+log
  • 您是否每隔一小时左右备份一次交易日志?
  • 我现在只有 5GB。我突然意识到要关闭每小时的数据加载。我继续并开始了正常的预定事务日志备份和收缩。我真的很担心这会填满我的磁盘。如果发生这种情况,我正在寻找恢复的步骤。有人告诉我,我可以暂时将备份从完整备份更改为简单备份,缩小 tlog 并改回完整恢复。不知道我是否有空间。感谢您的帮助。

标签: sql-server-2005 transaction-log truncate-log


【解决方案1】:

您是否随时备份事务日志? 如果您使用的是FULL恢复模式,那么除了备份主数据库之外,您还需要备份事务日志,或者如果您不想备份日志(为什么要使用FULL恢复模式? ) 然后至少定期截断日志。

您应该在每次完整备份之前备份事务日志(并且只要您保留之前的完整备份就一直保留它),以便您可以恢复到自第一次完整备份以来的任何时间点。此外,可能值得更频繁地备份事务日志(总大小相同),以防在两次完整备份之间发生不好的事情。

【讨论】:

  • 谢谢大家。我最近开始在我的公司工作,并且是管理数据库的新手。直到 2009 年 11 月 26 日,数据库每天备份一次数据库,每小时备份一次事务日志。现在两者都没有运行。我的前任在我加入公司之前就离开了;因此,无法跟进他为何停止备份。作业已启用,“上次运行结果”为“成功”,“下一次运行”为“未安排”,“已安排”为“是”。我是否只需要右键单击数据库备份作业,单击“在步骤...开始作业”,突出显示第 1 步并单击开始?
  • 如果我上一个问题的答案是“是”;然后,我想一旦我们成功备份数据库,我将对事务日志备份执行相同的步骤。再次感谢!
  • 如果“Next Run”是“Not Scheduled”,那么你应该先检查作业计划,也许它有一些简单的错误,比如定义了“End date”。
【解决方案2】:

最好的方法是定期备份您的日志文件。同时,对于像您描述的那样的“灾难性”场景,您可以使用这个 sn-p 来减小日志的大小: http://www.snip2code.com/Snippet/12913/How-to-correctly-Shrink-Log-File-for-SQL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 2010-11-14
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多