我刚刚为一个相当大的数据库(1.3 TB)编写了一个备份语句,并且我一直在使用一个小得多的数据库(10 GB + 10 GB 日志文件)对其进行测试。备份写入三个目的地。在测试过程中,我注意到在运行备份时,每个备份文件的大小约为 1.2 GB,但一旦备份过程完成,文件就会缩小到 600 MB 以下。
我有兴趣知道:
- 为什么在备份过程中文件变大然后缩小?
- 是否有办法防止这种情况,
- 当我备份 1.3 TB 数据库时,文件可能有多大——如果文件再次成为最终大小的两倍,那么我可能不得不要求更多的磁盘空间!
这是我正在使用的备份语句:
BACKUP DATABASE @DatabaseName
TO DISK = @backupMedia1,
DISK = @backupMedia2,
DISK = @backupMedia3
WITH COMPRESSION, RETAINDAYS = 0, NOFORMAT, INIT, NOSKIP, NAME = @DatabaseName
这是一个已知问题和预期行为(这是设计使然)。本质上,备份会保留它认为可能需要的总空间量,然后在最后一步缩小。要更改行为,您可以尝试使用跟踪标志 3042。来自http://msdn.microsoft.com/en-us/library/bb964719.aspx#Allocation: