数据库恢复因移动而失败

Dot*_*row 18 sql sql-server sql-server-2008

我正在尝试恢复数据库备份但收到错误:

服务器'ASIF-VAIO'的恢复失败.(Microsoft.SqlServer.SmoExtended)

附加信息:

System.Data.SqlClient.SqlError:文件'C:\ Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\uwa.mdf'由'Aston_Fresh_log'(2)和'Aston_Fresh'(1)声明.WITH MOVE子句可用于重定位一个或多个文件.(Microsoft.SqlServer.Smo)

mar*_*c_s 28

恢复时,您需要确保

  • 选择一个尚不存在的新数据库名称(除非您要覆盖该预先存在的数据库)

在此输入图像描述

  • 勾选Overwrite选项Options卡页面中的选项并为和文件定义有效和新文件名,这样就不会意外覆盖系统上的其他数据库:.mdf.ldf

在此输入图像描述

  • 我想出了我的错误:我在数据和对象文件中使用相同的文件名.所以其他人遇到同样的问题,请确保您的文件名是有效的,新的,并且对于您必须恢复的不同文件(如数据,对象或日志)不相同. (12认同)

The*_*nel 5

这篇文章有一些很好的答案,但我不相信我的解决方案在这里涵盖,或者我不理解答案/评论.

但是,当我遇到此错误时,我正在使用2个索引(主要和索引)恢复数据库.问题是,当恢复它时,它创建了两个.ndf文件,每个索引一个,但命名它们是相同的.

基本上我有两个"恢复为"文件恢复到"D:\ MSSQLDATA\DatabaseName.ndf.

为了解决这个问题,我不得不更改其中一个文件名,例如我改变了

 Index      |    D:\MSSQLDATA\DatabaseName.ndf
 Primary    |    D:\MSSQLDATA\DatabaseName1.ndf
Run Code Online (Sandbox Code Playgroud)

有唯一的文件名为我修复了这个.