数据库备份 - 差异文件大小问题

Chr*_*ess 1 backup sql-server sql-server-2005

对于我的 SQL Server 2005 备份计划,我想在周日做一个完整的:

BACKUP DATABASE myDatabase TO DISK = 'D:\Database Backups\myDatabase_full.bak' WITH FORMAT
GO
Run Code Online (Sandbox Code Playgroud)

然后我想在一周的其余时间每晚做一个微分:

BACKUP DATABASE myDatabase  TO DISK = 'D:\Database Backups\myDatabase_Diff.bak' WITH DIFFERENTIAL
GO
Run Code Online (Sandbox Code Playgroud)

我的假设是,如果数据库中几乎没有活动/没有活动,那么差异的大小就不会增加(或不会增加太多)。

但是,当我运行上面的差异备份(很少或没有活动)时,我看到差异备份一次增加了兆。为什么会这样增加?

谢谢

Nic*_*ias 5

有些东西正在改变你的数据库!

诸如索引重建或碎片整理之类的事情会导致页面更改。回滚的更改可能更改了页面,因此它们也很重要。
此外,差异备份被认为是“模糊的”,因此备份中将包含事务日志数据,这是它需要的一致性。

Paul Randal 不久前写了一个非常酷的脚本,它会告诉您自上次完整备份以来有多少范围发生了变化,因此您可以使用它来计算差异将有多大。

此外,您应该能够使用此脚本来告诉您数据库中的哪些页面发生了更改。这可能会帮助您解决不断变化的数据之谜。