我正在进行下面的练习。我原以为答案是“恢复最新的完整备份。然后,恢复最新的差异备份”。
但是,给出的答案是“还原最新的完整备份,并还原最新的差异备份。然后,还原最新差异备份失败前的每个日志备份”。
我不认为这是正确的,因为事务日志备份不是在简单模式下进行的吗?
谢谢!
方案: 该数据库使用简单恢复模型。 每天01:00完整数据库备份。 差异备份每天13:00。
问题:差异备份失败。然后数据库在14:00失败。如何恢复数据库并确保最小的数据丢失?
答案 0 :(得分:1)
这两个答案都是错误的:你和他们的。
你是对的一件事 - SQL Server不会让你甚至创建日志备份,在数据集上设置为“简单”恢复模型。
所以他们的答案是不正确的,因为当日志备份不存在时,它会说“恢复每个日志备份”。 但是,您的答案也是错误的,因为自完全备份以来只有一个差异备份,并且差异备份失败。
所以......真正的答案是:
(1)尝试备份失败的数据库
这不会让事情变得更糟,如果成功,以后可能会非常有用。 (如果它有非常重要的信息,您可以稍后尝试将其恢复到备用环境,并查看是否可以恢复任何信息。)
(2)从最新的完整备份恢复。
有问题吗?
答案 1 :(得分:0)
场景:数据库使用简单恢复模型。每天01:00完整数据库备份。差异备份每天13:00。
问题:差异备份失败。然后数据库在14:00失败。如何恢复数据库并确保最小的数据丢失?
在这种情况下,您可以做的最好的事情是:恢复完整数据库备份01:00。
RESTORE DATABASE database FROM DISK = 'D:/FULL' WITH RECOVERY
因此差异备份失败,没有机会恢复它,否则完整备份后的下一步将是:恢复差异备份(13:00)。
node.setProperty(propertyName, null);
在您的情况下,自上次完整备份01:00以来的所有更改都将丢失。