日志空间自动增长造成数据库不响应,请教如何解决

时间:2021-12-26 23:47:03
Autogrow of file 'chisdb_dev_Log' in database 'chisdb_sgrm' took 152125 milliseconds.  Consider using ALTER DATABASE to set a smaller FILEGROWTH for this file.

A time-out occurred while waiting for buffer latch -- type 4, bp 0000000089FD0B80, page 1:438, stat 0xcc0000b, database id: 5, allocation unit Id: 37615116025856/319090092736512, task 0x000000001441BEB8 : 0, waittime 300, flags 0x300000003a, owning task 0x0000000E6B98A9B8. Not continuing to wait.

以上是我复制的两条日志。
我们的数据库不定期的出现全面的无响应,通过分析日志,感觉像是日志文件在自动增长时,占用大量资源,导致数据库无响应(个人认为,不太确定)。现在的日志文件大约100G,是完整日志。
请高手指教一下,是不是这个原因?怎样避免这个问题?
如果增长发生在夜间的话,就不会对业务造成大影响。

12 个解决方案

#1


你的库是什么恢复模式的?如果是非简单模式,有没有做日志备份?

#2


完整日志模式

#3


先做日志备份吧

#4


每天数据库全备份,但没有做日志的单独备份

#5


完整模式下必须做常规日志备份,按照你的规模,可以考虑一小时一次,现在做一次日志备份,然后收缩日志,把常规日志备份设定好,基本上问题不大

#6


引用 4 楼 sgrmyy 的回复:
每天数据库全备份,但没有做日志的单独备份
完整模式下完整备份不截断日志,日志会一直增长

#7


数据库完整备份应该包括日志备份吧?数据库完整备份会截断日志吗?

#8


做了一小时一次的日志常规备份,那数据库全备份应该采用什么策略?

#9


引用 7 楼 sgrmyy 的回复:
数据库完整备份应该包括日志备份吧?数据库完整备份会截断日志吗?
不包含

#10


引用 8 楼 sgrmyy 的回复:
做了一小时一次的日志常规备份,那数据库全备份应该采用什么策略?
完整备份继续,日志备份独立出来,每小时一次,用维护计划来做,图形化很容易的

#11


记住:非简单模式下,只有日志备份才能截断日志,虽然完整备份包含了部分日志,但是 “不截断”

#12


楼主的企业根本不重视DB管理、维护,所以玩DB就显得没价值
应急是改变日志文件每次增长大小(如固定300M,而不是默认的10%)

#1


你的库是什么恢复模式的?如果是非简单模式,有没有做日志备份?

#2


完整日志模式

#3


先做日志备份吧

#4


每天数据库全备份,但没有做日志的单独备份

#5


完整模式下必须做常规日志备份,按照你的规模,可以考虑一小时一次,现在做一次日志备份,然后收缩日志,把常规日志备份设定好,基本上问题不大

#6


引用 4 楼 sgrmyy 的回复:
每天数据库全备份,但没有做日志的单独备份
完整模式下完整备份不截断日志,日志会一直增长

#7


数据库完整备份应该包括日志备份吧?数据库完整备份会截断日志吗?

#8


做了一小时一次的日志常规备份,那数据库全备份应该采用什么策略?

#9


引用 7 楼 sgrmyy 的回复:
数据库完整备份应该包括日志备份吧?数据库完整备份会截断日志吗?
不包含

#10


引用 8 楼 sgrmyy 的回复:
做了一小时一次的日志常规备份,那数据库全备份应该采用什么策略?
完整备份继续,日志备份独立出来,每小时一次,用维护计划来做,图形化很容易的

#11


记住:非简单模式下,只有日志备份才能截断日志,虽然完整备份包含了部分日志,但是 “不截断”

#12


楼主的企业根本不重视DB管理、维护,所以玩DB就显得没价值
应急是改变日志文件每次增长大小(如固定300M,而不是默认的10%)