即使在更改为完全恢复后,事务日志仍保持60GB大小

时间:2018-03-16 21:56:57

标签: sql-server database-backups transaction-log

刚开始与一家公司合作,发现他们的数据库已设置为简单恢复。

我与所有者交谈并建议将其转换为完全恢复,向他解释使用事务日志并每小时备份的好处。在他同意我在转换之前完成了一个完整的数据库备份。然后计划每小时备份事务日志文件和完整夜间备份数据文件。

我的印象是,每小时备份一旦开始运行,事务日志的大小(60GB)就会缩小。这已经超过一个月,但事务日志的大小仍然相同。

是否可以在不分离和附加数据库的情况下对日志文件运行DBCC ShrinkDB

2 个答案:

答案 0 :(得分:1)

  

我的印象是,每小时备份开始运行Tlog的大小后,60GB将开始缩小。这已经超过一个月,但Tlog的规模仍然相同。

日志文件不会自动缩小

  

是否可以针对Tlog运行DBCC ShrinkDB

不要缩小日志文件,除非你的空间不足。这背后的原因是,文件增长操作很昂贵

您可以在下面的命令中查看日志文件中的可用空间

dbcc sqlperf('logspace')

答案 1 :(得分:1)

您正在进行的日志备份将有助于防止日志文件增长,但日志文件不会自行缩小。在内部,日志文件被分段为虚拟日志文件(VLF),并以(或多或少)循环方式使用。当您正在运行工作负载时,会将事务记录到这些VLF中。当日志备份运行时,它将从自上次日志备份以来具有事务的任何VLF读取,将这些事务写入磁盘,然后清除VLF并将其标记为可重用。