我有一个数据库(Sql Server 2014),它被设置为定期进行完全和更频繁的差异备份;我需要迁移该数据库并在迁移失败时将其还原。为了防止任何数据丢失,我将在尝试迁移之前备份数据库。
我知道我不应该进行完整备份,因为它会影响后续的差异。如果我只复制备份,则会被阻止。但是,如果我使用仅复制备份进行恢复,后续差异是否会起作用并且可以恢复?我做了一个较小的数据库的实验,我注意到,虽然恢复副本只备份改变了DatabaseBackupLSN,我仍然可以做差异,并且还能够使用它们来恢复数据库(将差异与完整备份相结合)预先)。但是,我还没有找到任何确认这适用于所有情况的东西。
提前致谢!
答案 0 :(得分:0)
差异包含自上次完整备份以来修改的所有数据页,因此它们只能与上次完整备份一起用于还原。例如,如果您有以下事件序列:
如果必须从这些备份还原数据库,则从1还原完整备份,从5还原差异备份将使数据库恢复到步骤5的状态。如果只有备份只能还原到第1步,如果仅具有差异,则您将无法还原任何内容(因为差异将与丢失的完整备份有关)。如果仅具有仅复制备份和差异备份,则可以还原仅复制备份,并且将还原到步骤3的状态,但是由于差异是相对于缺少的完整备份的,因此您无法使用差异
因此,为了回答您的问题,如果您从仅复制备份还原,则仍然可以进行差异备份,但是仅当与上一个完整备份结合使用时,它们才可用。仅复制备份的主要目的是允许进行备份而不会使差异所需的最后一次完整备份无效。