Sql server 监视SQL日志文件
在客户机上部署项目后,sql db日志文件已增长到450G,尽管db大小小于100MB,但日志模式设置为简单模式,事务由windows服务发送,该服务每30秒发送一次插入和更新事务。 我的问题是,如何知道db日志文件增长的原因? 我想知道如何监视日志文件,以了解导致问题的确切事务是什么。 我应该调试前端吗?或者有一种方法公开导致db日志文件增长的事务。Sql server 监视SQL日志文件,sql-server,logging,monitor,Sql Server,Logging,Monitor,在客户机上部署项目后,sql db日志文件已增长到450G,尽管db大小小于100MB,但日志模式设置为简单模式,事务由windows服务发送,该服务每30秒发送一次插入和更新事务。 我的问题是,如何知道db日志文件增长的原因? 我想知道如何监视日志文件,以了解导致问题的确切事务是什么。 我应该调试前端吗?或者有一种方法公开导致db日志文件增长的事务。 谢谢。日志文件是文本文件,根据您的日志级别以及您收到的错误和消息数量,这些文件可能会快速增长 你需要用这样的东西来轮换你的日志,虽然从你的问题来
谢谢。日志文件是文本文件,根据您的日志级别以及您收到的错误和消息数量,这些文件可能会快速增长 你需要用这样的东西来轮换你的日志,虽然从你的问题来看,听起来你在使用Windows,所以不确定解决方案是什么 日志循环的基础是获取日志的每日/每周版本,并使用gzip或类似工具压缩日志,然后销毁未压缩的版本
由于它是重复性很强的文本,相比之下,这将使文件非常小,应该可以解决您的存储问题。如果有打开的事务,日志文件空间将不会被重用。您可以使用下面的DMV验证日志空间重用的原因
select log_reuse_wait_desc,database_id from sys.databases
在您的情况下,您的数据库设置为simple,数据库为100MB。但是日志已增长到450GB。这是非常巨大的
我的理论是,可能存在一些打开的事务,这阻止了日志空间的重用。日志文件不会在增长后收缩
正如您所知,您可以在DMV上运行并查看,此时是什么阻止了日志空间重用,您无法及时返回以了解是什么阻止了日志空间重用请注意,简单的恢复模型不允许日志备份,因为它保留的信息量最少,并且依赖于检查点,因此如果这是一个关键数据库,考虑通过计划保护客户。是的,您必须使用更多的空间,但磁盘空间很便宜,您可以更好地控制时间点恢复和管理日志文件。尽量简明扼要:
- A) 简单模式下的数据库仅在创建时截断事务日志中的事务
- B) 不幸的是,大量的
,包括未提交事务
、创建备份
、以及快照
,除此之外,将阻止您的数据库创建这些检查点,并且在这些事务完成之前,您的数据库将不受保护日志扫描
- 您当前的系统依赖于拥有正确版本的
文件,这取决于文件的大小,可能意味着数小时的潜在损失.bak
SHRINKFILE
将日志文件压缩到可用的最小大小/指定的大小
用于查看日志文件的使用量和大小。执行完全备份后,日志文件将被截断为剩余的未提交/活动事务。(不要将此与缩小尺寸混淆)
关于调查您的交易的一些建议:
- 您可以使用系统表查看最昂贵的缓存、频繁计划和活动计划
- 您可以使用未记录的扩展存储过程来搜索日志文件,
fn\u dblog
- Pinal在这个主题上有很多信息,你可以在这个网页和链接上阅读: