你还可以再诡异点吗——SQL日志文件不断增长

  • 时间:
  • 浏览:0

DBCC loginfo()

前言

知道了意味就好办了。

但你这个 客户越来越了采用replication和mirroring,什么都有我初步锁定间题是后来长事务的运行意味。按照常规的法律最好的办法,我只需分析下你这个 事务有无 遇到阻塞、死锁等请况,为什让给出对应的处里方案即可。(但实际请况太久说越来越了)

经与客户沟通,了解你这个 数据库实在是从有1个发布订阅的数据库中还原过来的,尽管新的数据库并越来越了采用发布订阅,但数据库中发布订阅的许多配置选项还在,从而意味了数据库的误判,致使日志文件不断增大。

在网上找些资料,发现了sp_removedbreplication你这个 存储过程,执行后再去收缩日志文件,间题青春恋爱物语处里!

                                          图一

EXEC sp_removedbreplication dbname

遇到你这个 间题,我最直接的感受:肯定有大的事务总是 在执行,意味日志备份无法截断事务日志的大小。

显然,我的判断错了,还要看过,目前【log_reuse_wait_desc】的请况为【REPLICATION】。也什么都有说正是事务日志埋点意味日志文件不断增大的意味。

正如前文分析的,你这个 数据库并越来越了用作发布订阅,为什会总是 总出 你这个 请况呢?

一客户反馈数据库的日志文件不断增长,已分配的磁盘空间快使用完,尝试过事务日志截断(事务日志备份)的操作,但越来越了任何效果。

尽管本文的场景比较少见,但总体处里的思路与许多(日志文件不断增长)实在是一样的。几滴 地方不太明白还要通过网络等许多工具获得。这也说明了SQL原理的重要性,借用一本书的序言中的励志的话 【越接触本质越太久迷茫!】。多接触原理,什么都有东西就有触类旁通的。

分析

首先,我在该数据库下运行DBCC loginfo()

下文将为各位看管完正介绍我的处里思路。

起初让我 通过sp_droppublication来完正删除埋点订阅的配置,但无法通过sp_helppublication获取到@publication的名字(提示:命令已执行完!),为什让这条路走不通了。

SQL日志文件不断增长的各种实例太久多说,园子里有什么都有牛人有过介绍,后来我再阐述哪些地方地方陈谷子芝麻,想必已会被无数次吐槽。

这表明哪些地方地方日志文件实在就有活动请况,一般而言,意味你这个 间题的意味主要有有三种:长事务的运行、replication和mirroring延迟。

间题

为保险起见,我运行如下励志的话 来验证下我的判断:

DBCC SHRINKFILE(Logfilename)

总结

SELECT log_reuse_wait_desc, * FROM sys.databases WHERE NAME='dbname'

                                                                                           图二

但这次我碰到的间题实在比较诡异,其处里法律最好的办法也是我第一次使用。

方案

今天有无 遇到了有1个罕见的案例。

                                                  图三

从图一的红色框还要看过,数据库的多个VLF的请况都为2,也什么都有active请况。(后来为0 ,表示为inactive)。