我正在使用下面的脚本来缩小事务日志
*使用 AVPC GO 将数据库 AVPC 备份到磁盘 = 'H:\DBBackup\AVPC\FullBackUp\AVPC.bak' 使用 AVPC GO 将日志 AVPC 备份到磁盘 = 'H:\DBBackup\AVPC\Transaction\AVPC.trn' GO
USE AVPC GO -- 通过将数据库恢复模式更改为 SIMPLE 来截断日志。 ALTER DATABASE AVPC SET RECOVERY SIMPLE; GO checkpoint -- 将截断的日志文件缩小到 1 MB。 DBCC SHRINKFILE (AVPC_log, 1); GO -- 重置数据库恢复模式。 ALTER DATABASE AVPC SET RECOVERY FULL; GO*
但我没有成功,我没有收到任何错误,但日志没有缩小。我还验证了是否有任何未结交易,但一无所获。而且我们每周进行两次全面备份,每分钟备份一次交易日志。
有人可以帮我缩小日志文件吗?它确实越来越大了。
答案1
DBCC LOGINFO 将显示事务日志的活动部分。日志的活动部分在末尾吗?
答案2
它还取决于日志中的虚拟日志文件的大小。如果日志文件创建为 16 Gb 文件,则它内部有 16 个 VLF,每个 VLF 为 1 Gb,因此只能缩小到 1 Gb 大小,不能更小。如果活动 VLF 是第三个,则它不会缩小到 3 Gb 以下