[英]Transaction log is full (due to NOTHING)... but this database is in simple recovery mode
[英]Transaction Log remains 60GB size, even after changing to Full Recovery
刚从一家公司开始,并注意到他们的数据库设置为“简单恢复”。
我与所有者交谈,建议将其转换为完全恢复,并向他解释了使用事务日志并每小时进行备份的好处。 在他同意之后,我在转换之前做了完整的数据库备份。 然后,计划对事务日志文件进行每小时一次的备份,对数据文件进行每日一次完整的备份。
我的印象是,一旦每小时备份开始运行,事务日志的大小(60GB)就会缩小。 已经有一个多月了,但是事务日志的大小仍然相同。
是否可以在不分离和附加数据库的情况下针对日志文件运行DBCC ShrinkDB
?
我的印象是,一旦每小时备份开始运行Tlog的大小,则60GB将开始减少。 已经过去了一个多月,但Tlog的大小仍然相同。
日志文件不会自动缩小
是否可以对Tlog运行DBCC ShrinkDB
除非空间不足,否则不要收缩日志文件。原因是文件增长操作非常昂贵
您可以看到以下命令以查看日志文件中的可用空间
dbcc sqlperf('logspace')
您正在执行的日志备份将有助于防止日志文件增长,但是日志文件不会自动收缩。 在内部,日志文件被分段为虚拟日志文件(VLF),并且(或多或少)以循环方式使用。 在运行工作负载时,交易记录在这些VLF中。 运行日志备份时,它将从上次日志备份以来读取所有具有事务的VLF,将这些事务写入磁盘,然后清除VLF并将其标记为可重复使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.