还原差异备份时出现问题

我试图恢复差异备份,但我有一个以下错误:

(Microsoft.Sqlserver.smoextended)其他信息:system.data.sqlclient.sqlerror:文件“astroved_data”无法通过此操作进行移动(microsoft.sqlserver.smo)

astroved_data是一个.mdf文件。

谁能帮我?

我不能在SSMS 2008中发生这个错误,您已经指定了您使用的SSMS 2008,但是我可以在SSMS 2005中find它。
替代文字

原因是,在OPTIONS页面下进行差异还原时,无法为数据文件指定新的位置。

如果在选项页面中还原完整备份时select新位置,则在执行差异还原时,必须将其更改为同一个物理位置 。 否则,SSMS放入原始位置,并尝试将其恢复到那里。

这个问题看起来像SSMS 2008中的固定版本(使用RTM进行检查),在执行差异还原时,似乎忽略放置在path的选项页上的任何值,即使该位置无效。

你还有什么其他的select? 这可能是触发错误的另一种方式? 尝试放置在完全恢复中使用的数据/日志文件的相同位置,并查看是否修复了该文件。

如果你厌倦了SSMS的摆布,那么学会在T-SQL中进行恢复:

-- use this command to get the logical names for the restore -- so you can specify a new location using MOVE RESTORE FILELISTONLY FROM DISK='c:\av_full.bak' -- restore the full backup, don't recover yet RESTORE DATABASE adventureworks1 FROM DISK= 'c:\av_full.bak' WITH MOVE 'AdventureWorks_Data' to 'C:\AdventureWorks_Data.mdf', MOVE 'AdventureWorks_Log' to 'C:\AdventureWorks_Log.ldf' , NORECOVERY -- restore the differential RESTORE DATABASE adventureworks1 FROM DISK= 'c:\av_diff.bak' 

我有好几次这个问题。 最简单的解决方法是,如果您更熟悉SSMS,则按照原来的方式准备恢复,然后单击“恢复”对话框中的“脚本”button。

这将吐出类似的东西:

 RESTORE DATABASE [UAT] FROM DISK = N'd:\Database_backup\mydifferentialbackup.bak' WITH FILE = 1, MOVE N'mydb_Data' TO N'R:\MSSQL10_50.REPORTING\MSSQL\Data\mydb.mdf', MOVE N'mydb_FullText' TO N'R:\MSSQL10_50.REPORTING\MSSQL\Data\mydb.ndf', MOVE N'mydb_Log' TO N'R:\MSSQL10_50.REPORTING\MSSQL\Data\mydb.ldf', NOUNLOAD, STATS = 10 GO 

然后简单地删除MOVE子句:

 RESTORE DATABASE [UAT] FROM DISK = N'd:\Database_backup\mydifferentialbackup.bak' WITH FILE = 1, NOUNLOAD, STATS = 10 GO 

和宾果 – 这应该工作。