gpt4 book ai didi

sql-server - 如何管理 SQL Server 日志大小

转载 作者:行者123 更新时间:2023-12-02 04:47:42 25 4
gpt4 key购买 nike

我正在尝试管理 SQL Server 2008 日志文件的大小。我有一个每天加载一次的报告数据库。简单恢复模型是最适合的,因为除了早上的负载之外没有任何事务,并且我可以重新创建这些记录。我的目标是使事务日志具有固定大小,足够大,以便在加载期间不必分配新空间。

我的问题是日志不断增长。我知道日志应该被标记为可重复使用,但为什么日志不断增长? log_reuse_wait_desc 显示“Nothing”。

我可以将日志文件缩小到 1 MB,因此我知道其中没有事务。我可以设置一个作业来执行此操作,但我更愿意将日志保留在 500MB,这足以处理日常负载。如果我这样做,日志就会增长。

如何保持日志大小一致?

请注意:缩小日志文件并不能解决此问题。我知道该怎么做。我正在尝试找到一种方法来重新使用事务日志中的空间。

最佳答案

即使数据库处于简单恢复模式,日志文件也用于事务目的。如果 LOG 大小确实增长到超过 500 MB,则说明有人正在运行需要该空间的查询或存储过程。

例如,您可能正在针对报告表创建索引。这将在事务内完成,以便在发生错误时可以回滚更改。但是,一旦完成,已使用的空间将被释放以供其他事务使用。

因此,如果日志大小从 1MB 开始并增加到 700MB,那么正在执行的操作需要该空间。如果您将大小锁定为 500MB,您最终将收到“日志文件空间不足”错误。

但如果您确实想将其修复为 500MB,您可以执行以下操作:(我使用的是 SQL Server 2005)

  1. 启动 Microsoft SQL Server Management Studio
  2. 找到您的数据库并右键单击它。选择属性。
  3. 点击"file"部分
  4. 找到日志文件行。
  5. 将初始大小更改为:500
  6. 找到“自动增长”部分并点击椭圆 (...)
  7. 取消选中“启用自动增长”。单击“确定”。
  8. 单击“确定”进行更改。

注意:您还可以在“自动增长部分”中设置最大日志文件大小。

或者,您可以使用以下脚本进行更改。将 DATABASENAME 替换为适当的值。如果需要,还可以更改日志文件名。

USE [master]
GO
ALTER DATABASE [DatabaseName] MODIFY FILE ( NAME = N'DATABASENAME_Log', SIZE = 512000KB , FILEGROWTH = 0)
GO
<小时/>

关于sql-server - 如何管理 SQL Server 日志大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/480897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com