SQL Server事务日志备份和日志文件大小

时间:2019-01-30 12:18:01

标签: sql-server logging transactions

我们使用在完全恢复模式下运行的SQL Server 2012(SP2)。我们每半小时进行一次事务日志备份。我们的数据库大小为20GB。每天晚上,我们执行数据库维护任务-完全备份,重建一些索引,更新统计信息,清除一些旧数据。半小时的事务日志备份保存到外部HDD。我们的事务日志LDF文件始终增长到大约13GB。事务日志备份.trn文件约为20-30MB(当然取决于数据库的活动),但是在每晚维护任务之后立即执行的备份文件为13GB。我的理解是,在备份事务日志后,事务日志LDF文件会立即自动缩小为0。但是,似乎它可以扩展到所需的最大大小并保持该大小。

这正常吗?这是个问题吗?事务日志备份后,有什么方法可以将其自动缩小为0? (我知道如何手动缩小)。

谢谢乔恩W

1 个答案:

答案 0 :(得分:0)

  

每晚维护任务结束后立即执行一次的任务是13GB。

index rebuild模型中执行full时,log fil e的大小至少增长到该index的大小。当rebuild 13Gb索引时,所有13Gb都进入日志文件。这是因为新索引的每一页都照原样写入日志。

  

我的理解是,事务日志LDF文件将   事务日志记录后立即自动缩小为0   备份

这是错误的。 Log backup不执行shrink ,即log file的大小在log backup之后未更改。

Log truncationlog backup的性能与日志文件的大小无关。这仅意味着log file的某些部分不再保留,可以被新的日志记录覆盖。