如果我在同一个驱动器中进行差异备份而不进行完全备份会怎样?

What happen if I made a Differential Backup without Full Backup in same drive?

我有 SQL Server 2012,还有一个备份驱动器,但它真的很满。我想在完成后将所有备份移动到网络驱动器。我关心的是差异备份和日志备份,因为我不知道他们是否需要查看要完成的完整备份,或者它在 SQL 服务器中如何工作。

将完整备份移动到另一个驱动器,然后执行每日差异备份是否安全?

让我们记住先恢复的黄金法则。

“恢复完整数据库备份后,恢复最新的差异数据库备份和之后的所有事务日志备份,以使数据库恢复到当前状态。”

因此,如果您只有一个完整备份,然后继续进行差异备份,那么差异备份的大小将每天都在增长。万一发生灾难,您可能必须找到较旧的完整备份,然后恢复最新的差异备份。

所以理论上:如果你进行一次完整备份并移动到其他地方并继续进行差异备份工作。 但是,您的完整备份可能会损坏或您的差异备份有问题。在这种情况下,您将错过另一个完整备份。

定期进行完整备份总是一个好主意。当我的数据库相对较小时,我每天对我的数据库进行一次完整备份,而当它们非常大时,我每隔一天进行一次完整备份。

这是我写的关于备份时间表的博客post。

https://blog.sqlauthority.com/2009/07/14/sql-server-backup-timeline-and-understanding-of-database-restore-process-in-full-recovery-model/

要恢复,您需要恢复差异之前的完整备份。正常的恢复顺序是依次恢复最新的全量备份、全量备份后的最新差分备份、差分后的日志备份。

备份文件显然需要可用才能恢复,无论您将它们存储在何处。如果您丢失了本地完整备份,则根本无法恢复。您可能会考虑将完整备份复制到网络共享作为额外的安全层。

为了回答您提出的问题,SQL 服务器在进行差异备份和日志备份时不会访问完整备份本身。相反,它会跟踪需要在数据库本身中备份的内容。

差异备份的短版本是 "the notion of what's changed (and therefore needs to be backed up) is kept track of in what are called differential change map pages",日志备份的短版本是 "the notion of what's changed (and therefore needs to be backed up) is kept track of in the transaction log itself"。

更长的(和 IMO 更有趣的)版本是 Paul Randal 的 this excellent article