恢复数据库备份时出错

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (54)

我在恢复使用以前版本(SQL Server 2008)进行的备份时使用SQL Server 2012出现错误。我实际上有几个相同数据库的备份文件(在过去的不同时间拍摄)。最新的恢复没有任何问题; 然而,其中一个给出了以下错误:

System.Data.SqlClient.SqlError:目录查找文件“C:\ PROGRAM FILES \ MICROSOFT SQL SERVER \ MSSQL.1 \ MSSQL \ DATA \ MYDB_ABC.MDF”失败,操作系统错误3(系统找不到路径指定)。(Microsoft.SqlServer.SmoExtended)

这是一台x64机器,我的数据库文件位于以下位置:c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL

我不明白为什么它试图恢复上MSSQL.1,而不是MSSQL11.MSSQLSERVER

提问于
用户回答回答于

备份存储数据库文件的原始位置,并且默认情况下会尝试恢复到同一位置。由于您的新服务器安装位于新目录中,并且可能旧目录不再存在,因此您需要将目录从默认值更改为与您希望使用的位置相匹配。

根据您如何恢复数据库,实现此目的的方式会有所不同。如果您使用SSMS,请查看选项卡和列表,直到找到文件列表及其关联的磁盘位置 - 然后您可以在恢复之前编辑这些位置。

用户回答回答于

听起来就像备份是在路径与您不匹配的机器上进行的。尝试使用T-SQL而不是UI执行备份。还要确保你指定的路径确实存在,并且这里没有这些mdf / ldf文件的副本。

RESTORE DATABASE MYDB_ABC FROM DISK = 'C:\path\file.bak'
WITH MOVE 'mydb' TO 'c:\valid_data_path\MYDB_ABC.mdf',
MOVE 'mydb_log' TO 'c:\valid_log_path\MYDB_ABC.ldf';

扫码关注云+社区

领取腾讯云代金券