在SQL Server 2014 Express上还原SQL Server 2008 R2 * .bak数据库

时间:2015-11-27 10:54:50

标签: sql-server sql-server-2008-r2 database-restore sql-server-2014-express

我最近将SQL Server 2008 R2(10.50.1600.1)更改为SQL Server 2014 Express(12.0.4100.1 - 带有Service Pack 1)。现在我想恢复我在SQL Server 2008 R2上创建的*.bak个文件。

首先,我无法在*.bak目录(Backup)中看到我的C:\Program Files\Microsoft SQL Server\MSSQL12.RALTECH\MSSQL\Backup个文件。我在那里复制了所有备份文件。

enter image description here

当我尝试按下这样的推送键入备份文件位置(我的一个备份文件称为RMP)时,我可以看到Management Studio识别该文件:

enter image description here

enter image description here

文件(备份)大小为2201 KB,数据库文件为2245632(Management Studio中的大小列 - 我不知道它是MB或KB的单位...)但是它不是SQL Server Express版本中可接受的大小。所以这不是问题所在。

当我点击确定恢复时,我收到此错误:

  

TITLE:Microsoft SQL Server Management Studio

     

恢复数据库' RMP'失败。 (Microsoft.SqlServer.Management.RelationalEngineTasks)

     

其他信息:

     

System.Data.SqlClient.SqlError:操作系统返回错误' 5(访问被拒绝。)'在尝试RestoreContainer :: ValidateTargetForCreation' on' C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.RALTECHSQL \ MSSQL \ DATA \ RMP.mdf'。 (Microsoft.SqlServer.SmoExtended)

我能用这个做什么?如何从SQL Server 2008 R2 *.bak文件恢复SQL Server 2014 Express上的数据库?对我来说奇怪的是我的备份文件(*.bak)有挂锁图标。这可能是个问题吗?

由于

1 个答案:

答案 0 :(得分:3)

您的问题不是备份文件夹的权限,而是您尝试让SQL服务器创建新数据库文件的文件夹。

当您从旧实例备份它时,SQL Server将默认尝试将数据库文件放回原来的文件夹中(在本例中为C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.RALTECHSQL \ MSSQL \ DATA)

您不希望发生这种情况,因为您的新2014服务器没有权限在此文件夹中创建文件(加上它们可能已存在,除非您从旧实例中删除了数据库),您需要做什么是为文件选择一个新位置,因此在单击还原之前,单击还原对话框的文件部分,然后根据显示的文件夹选择文件的新位置,它应该类似于C:\ Program Files \ Microsoft SQL Server \ MSSQL12.RALTECH \ MSSQL \ DATA \

您的2014实例将具有在此处创建文件的权限,并且还原应该有效。