如何在 SSMS 中恢复我的 SQL 服务器数据库?

How can I restore my SQL Server database in MSSMS?

我备份了数据库,但选择将其保存到 C 盘上我自己的位置,而不是默认位置。从那里我也将它复制到 USB 记忆棒。所以我有旧数据。但是我该如何恢复呢?

我不小心删除了很多我需要找回的记录。我在 MSSMS 中看不到“撤消”选项,也看不到“回滚”选项。

这是我的第一个想法(尝试撤消或回滚)。所以然后我去做了一个“恢复”,但它失败了。

这是我尝试过的:

我尝试使用出现的默认设置,但在我点击“确定”按钮后,我得到:

我想这可能是因为我没有备份到默认位置,而是备份到我的硬盘。因此,我尝试通过选择“设备”单选按钮然后单击此处的省略号按钮来访问 C 盘上的备份文件:

...然后从我放置它的文件夹中选择文件:

...但我仍然收到“恢复失败”

我的下一次尝试(也是我知道要尝试的最后一件事)是转到 USB 记忆棒(驱动器 D)。

所以我再次单击省略号点按钮,删除了之前的条目(C 盘)并添加了 D/usb 棒,并选择了相同的文件:

我在那里选择了确定,然后在这里再次选择了确定:

...但是第三次​​是诅咒,可以这么说:我再次收到“数据库恢复失败”

我也试过还原,不是数据库,而是文件:

...但是得到了这个:

我的数据库一定是可以恢复的——毕竟我备份了两个副本。但是怎么办?

因为您在 SSMS 中查看它,所以认为数据库正在使用中。

你有两个选择。

  • 在 'options' table 中进行恢复时(在左侧),确保勾选 'close existing connections' 框。 (请注意,您可能还需要勾选有关覆盖现有数据库的内容。)
  • 恢复到新数据库(例如,FixToFams4_RESTORE_20201015)而不是覆盖旧数据库,然后将您需要的数据从恢复的数据库传输回原始数据库。

后者 MUCH 更安全,也是我的首选,除非您愿意完全回滚到备份时的时间。

如果您使用第一个选项,我强烈建议您在恢复到旧版本之前备份当前数据库,以防您完成了一些您想要的工作(例如,创建过程等)返回。

另一件可以做的事情(现在对我来说没有意义,因为问题已经解决),来自 MS SQL 服务器论坛,是 运行 这个命令:

RESTORE DATABASE db FROM DISK = 'C:\Path\YourBackup.bak'

还有this linkSQL服务器专家提供。

...以及他们的其他建议 here