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

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

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

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

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

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

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

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

这里图片:

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

sql-server ssms
1个回答
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' ;
© www.soinside.com 2019 - 2024. All rights reserved.