我有一个数据库,两天前我对其进行了第一次备份。 然后昨天我花了整整一个时间添加新记录。 今天早上我运行了备份,(但我选择附加到现有备份集),如下图所示。
我刚刚运行了恢复,发现它清除了我昨天的所有数据,并从 2 天前的备份中恢复了它。 不是今天早上备份的版本。
为了安全起见,我压缩了这个备份文件。
我更改了数据库中的一些数据,然后再次运行备份,但这次我选择了“覆盖所有现有备份集”
现在,当我恢复数据库时,它似乎可以正确从备份中恢复数据。 我想我在这里吸取了教训,如果我错了,那就正确
我的问题是,我是否失去了一整天的工作?
我仍然安全地保存着今天早上的备份 .bak 文件。 我可以用正确的数据恢复吗?
最佳答案
好消息是您没有(或至少不应该)丢失您的工作。通过选择“附加”选项(这是默认行为),所发生的一切就是将最新的备份附加到上次备份的末尾。因此,在同一个备份文件上您有 2 个备份。
当您从备份文件恢复时,如果您通过 GUI 执行此操作,您应该可以选择要恢复的特定备份集 - 并且应该有两个备份集可供您恢复。
如果您通过 T-SQL 执行此操作,恢复命令将类似于:
RESTORE DATABASE [my_db] FROM DISK = N'C:\my_db.bak' WITH FILE = 2...
这里的关键是“FILE = 2”选项,它指定要恢复哪个备份集。
希望能帮助您找回数据。
关于sql-server-2008 - 选择追加到现有备份而不是覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929575/