我从一台我无法在线访问的服务器上备份了磁盘上的数据库。尝试使用以下命令恢复本地计算机上的数据库:
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 仍然无济于事。非常感谢任何帮助
答案 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;