【问题标题】:SQL Server Log File SizeSQL Server 日志文件大小
【发布时间】:2020-09-16 12:40:54
【问题描述】:

如果有人问了这个问题,我们深表歉意。 我在 SQL Server 方面没有太多经验。

在我们的 SQL 服务器上,有 1 TB 加上日志文件大小。 数据库处于完全恢复状态。 已进行初始完整备份并为事务日志设置了定期备份作业,以防止日志文件大小过大。

所以我的问题是,我可以在进行日志备份后截断我的日志文件吗?

【问题讨论】:

  • 如果您的数据库处于完全恢复模式,我个人不建议截断(缩小)它,至少不要立即。您是否真的在执行定期事务日志备份?如果没有,是时候开始做那个了,还是你需要完整地拥有它,一个简单的恢复模式就足够了吗?无论哪种方式,您是否也考虑过为您的事务日志文件设置最大大小?
  • 日志备份会截断日志。但是,它不会减少由于疏忽而可能变大的文件大小。您可以对日志文件使用DBCC SHRINKFILE 以减小大小,但仍应调整其大小以适应日志备份之间的修改。
  • 谢谢 Larnu - 是的,它已经设置为自动增长。我们在一天结束时进行了定期日志备份。

标签: sql-server database-backups logfile


【解决方案1】:

如果出现长时间运行事务或大量数据导入等异常事件,您可以使用以下代码恢复之前的大小:

DBCC SHRINKFILE(2,TRUNCATEONLY);
ALTER DATABASE [StackOverflow] MODIFY FILE (NAME = N'StackOverflow_Log', SIZE = 256MB);

SHRINKFILE 第二个参数是file_id

SELECT *
FROM sys.database_files;

此外,有时拥有巨大的日志文件可能是正常的。它基本上取决于数据库上的活动。所以,256 MB 可能或多或少。最好设置一个大小,它足以处理您的正常工作量而不会增长。

您还应该检查执行日志文件备份的频率 - 每 10 分钟或每 1 小时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    相关资源
    最近更新 更多