我备份了数据库,但选择将其保存到 C 盘上我自己的位置,而不是默认位置。我还从那里将其复制到 USB 记忆棒上。所以我有旧数据。但怎样才能恢复呢?
我不小心删除了很多我需要找回的记录。我在 MSSMS 中没有看到“撤消”选项,也没有看到“回滚”选项。
这是我的第一个想法(尝试撤消或回滚)。于是我就去做了“恢复”,但失败了。
这是我尝试过的:
我尝试使用出现的默认设置,但单击“确定”按钮后,我得到:
我想这可能是因为我没有备份到默认位置,而是备份到我的硬盘上。因此,我尝试通过选择“设备”单选按钮,然后选择此处的省略号按钮来访问 C 驱动器上的备份文件:
...然后从我放置它的文件夹中选择该文件:
...但我仍然收到“恢复失败”
我的下一次尝试(也是我知道要尝试的最后一件事)是转到 USB 记忆棒(驱动器 D)。
所以我再次点击省略号按钮,删除之前的条目(C盘)并添加D/U盘,并选择相同的文件:
我在那里选择了“确定”,然后在这里再次选择“确定”:
...但是第三次是一个诅咒,可以这么说:我再次得到“数据库恢复失败”
我也尝试恢复,不是数据库,而是文件:
...但是得到了这个:
一定可以恢复我的数据库 - 毕竟,我确实备份了它的两个副本。但如何呢?
因为您在SSMS中查看它,所以该数据库被认为正在使用中。
您有两个选择。
后者更安全,也是我的首选,除非您乐意完全回滚到备份时的时间。
如果您使用第一个选项,我强烈建议您在恢复到旧版本之前备份当前数据库,以防您已经完成了一些想要恢复的工作(例如,创建的过程等)。
RESTORE DATABASE db FROM DISK = 'C:\Path\YourBackup.bak'
还有 ...以及他们的其他建议这里。
要禁用所有其他会话,只需将数据库切换到 SINGLE_USER 模式即可:
ALTER DATABASE [MyDatabase] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
之后您可以从文件恢复数据库:
RESTORE DATABASE [MyDatabase] FROM DISK = N'C:\Path\MyDatabase.bak' WITH REPLACE
注意REPLACE选项,如果数据库已经存在则必须指定。
现在您需要将数据库切换回MULTI_USER模式:
ALTER DATABASE [MyDatabase] SET MULTI_USER
将数据库切换到SINGLE_USER模式是维护任务的正常做法
更多