Answers:
答案是否定的,无论使用什么备份软件。
备份是一种物理操作,而不是逻辑操作。它读取包含已分配页面的所有扩展数据块(即,即使仅分配了8页扩展数据块中的单个页面,它也会备份整个64K扩展数据块),并按物理顺序进行。
还原是一种物理操作,而不是逻辑操作。它在数据文件中的适当位置放下扩展区。
重建索引(或类似的索引)是一项逻辑操作,必须进行记录。备份和还原无需通过缓冲池即可直接操作数据文件,这是无法完成此操作的原因之一。无法执行此操作的另一个原因是,备份和还原不了解要备份的数据中包含的内容。
但是,无法完成此操作的主要原因是,在还原操作期间移动页面会破坏b树指针。如果页面A指向页面B,但是还原过程移动了页面A,那么页面B如何更新为指向页面A?如果立即更新,则还原过程的其余部分可能会覆盖它。如果延迟更新,如果还原过程还原了删除了页面A或页面B的某些事务日志,该怎么办?根本无法做到。
底线-备份和还原是永远不会更改数据的物理操作。
希望这可以帮助!
PS虽然不能直接解决此问题,但请查阅我为July TechNet杂志撰写的文章,其中解释了各种备份在内部的工作方式:了解SQL Server备份。《九月》杂志将是有关了解还原的系列文章中的下一篇。
本机 SQL备份只是备份文件的逐页转储,因此答案为“否”。Quest lightspeed备份可能使用某种压缩压缩算法,但是它仍然不会“重建”数据文件或索引,这在大型数据库上将花费大量时间。
备份是定期进行的,而且非常频繁(我希望如此)。因此,设计人员确保了备份尽可能快。什么是最快的I / O?顺序的。您以精确的物理顺序从磁盘读取数据块,从而获得最佳性能。
为什么在地球上,数据库应该每天晚上执行繁琐的随机I / O操作,从而遍地浪费磁盘的磁头?差异将在两个数量级左右。这是不可能的。
嗯 BradC,您之前使用过Firebird / Interbase吗-在其中主要的备份/还原实用程序/ API更类似于SSMS / EM的“复制数据库...”?如果是这样,请知道MS SQL Server不喜欢它。
SQLServer Backup更像是一个数据库转储,可以按“ AS-IS”还原-因此,它更像是一个方便的在线快捷方式,用于“在其他位置分离-复制-重新连接”操作。恢复的数据库几乎是原始数据库文件的精确副本(几乎是因为您可以更改恢复的数据库的数据库文件的位置)...