我无法还原数据库SQL Server Management Studio无法识别我的.bak文件

时间:2019-10-21 17:21:10

标签: sql-server ssms

我正在尝试从类中还原数据库。但是,当我尝试还原.bak文件时,似乎SSMS无法识别它。

我对包含.bak文件的文件夹(这是ms SQL studio的默认备份文件夹)具有完全权限。

我已采取的还原.bak文件的步骤:

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

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

该数据库没有损坏,我检查了另外2个数据库,结果相同,所以我不知道出了什么问题

此处图片:

enter image description here

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

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

在这里: SQL Server Management Studio can't recognize .bak file

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

应该像上面的视频那样简单容易,但是就像我上面所说的那样,这里有些错误,我不知道这是什么。 我的SQL版本的图片

enter image description here

2 个答案:

答案 0 :(得分:0)

一旦您(我的意思是服务帐户)拥有.bak文件存放位置且文件未损坏的文件夹的完全权限,则应该可以还原,但是没有任何问题。有时会导致GUI失败,并且无法与命令行完美配合。不确定问题可能是fix of SSMS release notes

之一

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

  1. 验证备份文件-验证备份文件并检测备份文件中的任何错误/损坏
RESTORE VERIFYONLY FROM DISK = 'C:\YourbackupLocation\DbName.bak';
  1. 读取标题-它返回备份文件的信息,即数据库版本,附加的备份文件,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' ;

答案 1 :(得分:0)

.bak是否已损坏?如果不是这样,请对该数据库进行另一个备份,然后尝试还原。检查以下参考:https://dba.stackexchange.com/questions/47304/bak-file-not-visible-in-any-directory-in-ssms bak file not visible when trying to restore database