我们使用在完全恢复模式下运行的SQL Server 2012(SP2)。我们每半小时进行一次事务日志备份。我们的数据库大小为20GB。每天晚上,我们执行数据库维护任务-完全备份,重建一些索引,更新统计信息,清除一些旧数据。半小时的事务日志备份保存到外部HDD。我们的事务日志LDF文件始终增长到大约13GB。事务日志备份.trn文件约为20-30MB(当然取决于数据库的活动),但是在每晚维护任务之后立即执行的备份文件为13GB。我的理解是,在备份事务日志后,事务日志LDF文件会立即自动缩小为0。但是,似乎它可以扩展到所需的最大大小并保持该大小。
这正常吗?这是个问题吗?事务日志备份后,有什么方法可以将其自动缩小为0? (我知道如何手动缩小)。
谢谢乔恩W
答案 0 :(得分:0)
每晚维护任务结束后立即执行一次的任务是13GB。
在index rebuild
模型中执行full
时,log fil
e的大小至少增长到该index
的大小。当rebuild
13Gb索引时,所有13Gb都进入日志文件。这是因为新索引的每一页都照原样写入日志。
我的理解是,事务日志LDF文件将 事务日志记录后立即自动缩小为0 备份
这是错误的。 Log backup
不执行shrink
,即log file
的大小在log backup
之后未更改。
Log truncation
,log backup
的性能与日志文件的大小无关。这仅意味着log file
的某些部分不再保留,可以被新的日志记录覆盖。