如何在 MSSMS 中恢复我的 SQL Server 数据库?

问题描述 投票:0回答:3

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

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

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

这是我尝试过的:

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

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

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

enter image description here

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

enter image description here

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

enter image description here

我也尝试恢复,不是数据库,而是文件:

enter image description here

...但是得到了这个:

enter image description here

一定可以恢复我的数据库 - 毕竟,我确实备份了它的两个副本。但如何呢?

sql-server ssms database-backups database-restore
3个回答
2
投票

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

您有两个选择。

  • 在进行恢复时(位于左侧)的“选项”表中,确保选中“关闭现有连接”框。 (请注意,您可能还需要勾选有关覆盖现有数据库的内容。)
  • 恢复到新数据库(例如 FixToFams4_RESTORE_20201015)而不是覆盖旧数据库,然后将所需的数据从恢复的数据库传输回原始数据库。

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

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


0
投票
来自 MS SQL Server 论坛的另一件事(现在对我来说没有意义,因为问题已经解决)是运行此命令:

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

此链接 SQL Server 专家提供的。

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

这里


0
投票
SSMS 界面有很多选项,很容易迷失。有时使用 T-SQL 命令要简单得多。

要禁用所有其他会话,只需将数据库切换到 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模式是维护任务的正常做法

更多

恢复变化

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.