首页 > 解决方案 > 我无法恢复我的数据库 SQL Server Management Studio 无法识别我的 .bak 文件

问题描述

我正在尝试从课堂上恢复数据库。但是,当我尝试恢复 .bak 文件时,SSMS 似乎无法识别它。

我授予了包含 .bak 文件的文件夹的完全权限(它是 ms SQL studio 的默认备份文件夹)。

我为恢复 .bak 文件所采取的步骤:

右键单击 DB -> 还原 DB -> 从设备(选择 .bak 文件位置)-> 到数据库(选择 DB 目标)

像这里:C:\Program Files (x86)\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup

数据库没有损坏我检查了其他 2 个数据库相同的结果,所以我不知道是什么问题

这里的图片:

在此处输入图像描述

我看不到数据库,而且我几乎拥有最新版本的 MS SQL Studio,所以我不明白这里发生了什么以及为什么我无法恢复数据库

我在这里检查过: restore database in ssms 2017 selected bak file in device option and show nothing in Backup sets to restore option and disable Ok button too

在这里: SQL Server Management Studio 无法识别 .bak 文件

https://www.youtube.com/watch?v=U0FpXwQfBaU

它应该像上面的视频一样简单易行,但就像我上面所说的那样,这里出了点问题,我不知道是什么。我的 SQL 版本的图像

在此处输入图像描述

标签: sql-serverssms

解决方案


一旦您(我的意思是服务帐户)获得了文件所在.bak文件夹的完全权限并且文件未损坏,您应该能够毫无问题地恢复,但有时在 GUI 中会出现故障并与命令行完美配合。不确定问题是否存在SSMS 发行说明的修复之一

但是,您可能想尝试以下操作:

  1. 验证备份文件 - 它验证备份文件并检测备份文件中的任何错误/损坏
RESTORE VERIFYONLY FROM DISK = 'C:\YourbackupLocation\DbName.bak';
  1. 读取标题 - 它返回备份文件的信息,即 DB 版本、附加的备份文件、LSN 信息和数据库恢复模型等。
RESTORE HEADERONLY FROM DISK = 'C:\YourbackupLocation\DbName.bak';
  1. 从备份中获取文件名列表 - 如果文件位置与创建备份的源服务器不同,这将很有帮助
RESTORE FILELISTONLY FROM DISK = 'C:\YourbackupLocation\DbName.bak' ;
  1. 恢复备份 - 通过 T-SQL 实际恢复
RESTORE Backup DBName FROM DISK = 'C:\YourbackupLocation\DbName.bak' with replace, recovery, stats;

重新定位文件

RESTORE Backup DBName FROM DISK = 'C:\YourbackupLocation\DbName.bak' 
with replace, recovery, stats
--- Get the logical name from the result of "RESTORE FILELISTONLY" command
move 'DBName' to 'C:\NewLocation\DBName.mdf',
move 'DBName_Log' to 'C:\NewLocation\DBName_log.ldf' ;

推荐阅读