Hi @Li,
感谢您提供的信息,欢迎来到Microsoft Q&A!
是否可以看到官方文档中提到的二十四个数据区
这里更改了二十四个数据区中的六个数据盘区是指,SQL Server 在内部存储脏盘区(自上次完整备份以来已更改的数据库部分)的位图,当您运行差异备份时,它会查阅位图,并且仅将数据库的那些已更改部分写入备份。
您可以通过以下命令来查看备份文件的内容:
USE AdventureWorks2022;
RESTORE HEADERONLY
FROM DISK = N'C:\AdventureWorks2022-FullBackup.bak' ;
GO
如果要了解自上次完整备份以来盘区是如何更改的,可以通过查询 DBCC PAGE 命令来完成,您可以看看这篇文章。不过据我所知,DBCC PAGE读取的结果是一个十六进制输出,除非您有一个十六进制编辑器,否则很难解读里面的内容!
以便于查看是什么导致的数据量小但差异备份文件大
如果您只是对差异备份的文件大小感到疑惑,请看以下内容:
差异备份基于最后一次完整备份的差异,那么,对于一个繁忙的数据库,在一段时间内做了几次差异备份,无论这中间有多少次Checkpoint,SQL Server依然将这些基于完整备份的差异页面放入差异备份文件,按道理来说,一个页面在一次Checkpoint之后,如果没有再发生任何修改,那么是不需要放入差异备份文件里面的(如果是基于最后一次差异的差异),因为差异位图无法基于差异的差异,这样会导致,有时候差异备份文件比完整备份文件还要大。
这篇文章中有几张图片也许可以能够帮您更好的理解:
如果您有任何的疑问,请随时在这里分享您的问题!
Best regards,
Lucy Chen
如果回复有帮助,请点击“接受答案”并点赞,因为这可以帮助其他社区成员寻找类似的帖子