首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志自动增长大于日志大小,但没有收缩来解释

日志自动增长大于日志大小,但没有收缩来解释
EN

Database Administration用户
提问于 2020-01-13 14:47:17
回答 1查看 73关注 0票数 2

我有一个日志文件大小为1GB的数据库。我实现了AutoGrowths的一些日志记录,以最终设置数据库自动增长时的一些通知。

不过,我所经历的是,SQL Server说日志文件是自动增长的,但是日志文件的文件大小实际上并没有改变。自年初以来,有足够的自动增长将我的文件大小增加到12 1GB,但我的文件仍然只有1GB。

有人知道这是怎么发生的吗?

Microsoft 2017 (RTM-CU16) (KB4508218) - 14.0.3223.3 (X64) 2019年7月12日17:43:08版权(C) 2017年微软公司企业版(64位)在Windows 2016标准10.0 (构建14393:) (Hypervisor)

日志文件没有任何自动收缩或手动收缩。

EN

回答 1

Database Administration用户

发布于 2020-01-13 15:09:05

我能想到的最可能的解释是:

  • 数据库已从备份或快照中还原。

  • 监视缺少收缩事件,或者由于错误而重复增长事件。
    • 默认跟踪事件“日志文件自动收缩”将只捕获自动收缩。如果有人使用DBCC SHRINKFILE,它将显示为Audit DBCC Event事件。所以要确保你同时捕获了两个

检查是否定期进行恢复(例如,这是一个测试或报告数据库)。否则,您可能需要检查监视查询的代码,并确保没有丢失或重复的事件。

尝试收集更多信息的一种方法是使用DBCC SQLPERF('LOGSPACE')来确定日志的大小是否一直在变化(感谢保罗·兰德尔提出这样的建议)。通过将输出转储到临时表(从那里可以将其插入日志记录表),可以将其添加到现有的-15分钟检查中:

代码语言:javascript
复制
CREATE TABLE #log_space
( 
    [DatabaseName] sysname NOT NULL,
    LogSizeMb float NOT NULL,
    LogSpaceUsedPct float NOT NULL,
    [Status] int NOT NULL
);

INSERT INTO #log_space
EXEC ('DBCC SQLPERF(LOGSPACE);');

这将帮助您跟踪文件是否实际增长。如果是这样的话,现在你就会知道它在哪一天又在收缩了。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/257273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档