无法还原SQL Server 2008R2数据库

时间:2017-03-25 16:02:52

标签: sql-server sql-server-2008

我从一台我无法在线访问的服务器上备份了磁盘上的数据库。尝试使用以下命令恢复本地计算机上的数据库:

RESTORE DATABASE MYDB FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.WXVMSSQL\MSSQL\Backup\mydb' WITH REPLACE, RECOVERY

我收到以下错误:

  

消息5133,级别16,状态1,行1文件的目录查找   " d:\ MSSQL2008 \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ mydb.mdf"失败了   操作系统错误3(无法检索此错误的文本。   原因:15105)。 Msg 3156,Level 16,State 3,Line 1 File   ' LOGICAL_DEV_Data'无法恢复   ' d:\ MSSQL2008 \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ mydb.mdf&#39 ;.使用WITH   移动以识别文件的有效位置。 Msg 5133,Level 16,   状态1,第1行文件的目录查找   " d:\ MSSQL2008 \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ mydb.ldf"失败了   操作系统错误3(无法检索此错误的文本。   原因:15105)。 Msg 3156,Level 16,State 3,Line 1 File   ' LOGICAL_DEV_Log'无法恢复   ' d:\ MSSQL2008 \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ mydb.ldf&#39 ;.使用WITH   移动以识别文件的有效位置。消息3119,级别16,   状态1,第1行问题在规划期间被确定   RESTORE语句。以前的消息提供详情。消息3013,级别   16,状态1,第1行RESTORE DATABASE异常终止。

它似乎在看D:驱动器,它是服务器驱动器I 复制了备份。我尝试了上面的相同命令

WITH MOVE 'C:\.....mdf' and MOVE 'C:\.....ldf'

我得到以下内容:

  

消息3183,级别16,状态2,行1 RESTORE在页面上检测到错误   数据库中的(64000:1024)" mydb"从备份集中读取。消息3013,   级别16,状态1,行1 RESTORE DATABASE异常终止。

它还处于恢复状态...... MS服务器管理工​​作室,我也试过 CONTINUE_AFTER_ERROR 仍然无济于事。非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

在服务器上,该数据库位于驱动器D:;文件路径是备份的一部分。 (目的是最常见的情况可能是在备份的同一台服务器上恢复数据库。)

这解释了'WITH MOVE'子句,你被要求添加。

  • 您是否检查过所提供的路径是否在您的系统上有效?

  • 您是否运行与备份系统相同或更高版本的MS SQL Server?你可以找到

    选择@@ version;

答案 1 :(得分:0)

您需要检查在mssql中使用的驱动器:xp_fixeddrives

您必须查看文件列表

->仅还原文件列表 FROM DISK ='D:\ logshipping \ DEMO.bak'WITH FILE = 1

您可以使用移动选项进行恢复。 -> 恢复数据库演示_ 从磁盘='D:\ logshipping \ DEMO.bak' 与 移动'Demo'到'D:\ MSSQL_DATA \ DEMO \ DEMO_Winmedicare.mdf', 将'Demo_log'移动到'E:\ MSSQL_LOG \ DEMO_Winmedicare \ DEMO_log.ldf',norecovery;