还原数据库 - 简单恢复模型

时间:2013-10-23 08:38:41

标签: sql-server database backup

我正在进行下面的练习。我原以为答案是“恢复最新的完整备份。然后,恢复最新的差异备份”。

但是,给出的答案是“还原最新的完整备份,并还原最新的差异备份。然后,还原最新差异备份失败前的每个日志备份”。

我不认为这是正确的,因为事务日志备份不是在简单模式下进行的吗?

谢谢!

方案: 该数据库使用简单恢复模型。 每天01:00完整数据库备份。 差异备份每天13:00。

问题:差异备份失败。然后数据库在14:00失败。如何恢复数据库并确保最小的数据丢失?

2 个答案:

答案 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以来的所有更改都将丢失。