Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server 2014 Express上恢复SQL Server 2008 R2*.bak数据库_Sql Server_Sql Server 2008 R2_Database Restore_Sql Server 2014 Express - Fatal编程技术网

Sql server 在SQL Server 2014 Express上恢复SQL Server 2008 R2*.bak数据库

Sql server 在SQL Server 2014 Express上恢复SQL Server 2008 R2*.bak数据库,sql-server,sql-server-2008-r2,database-restore,sql-server-2014-express,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文件(C:\Program files\Microsoft SQL Server\MSSQL12.RALTECH\MSSQL\Backup)。我把我所有的备份文件都复制到那里了 当我尝试按如下

我最近将我的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
文件(
C:\Program files\Microsoft SQL Server\MSSQL12.RALTECH\MSSQL\Backup
)。我把我所有的备份文件都复制到那里了

当我尝试按如下方式键入备份文件位置(我的一个备份文件名为RMP)时,我可以看到Management Studio识别该文件:

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

单击“确定”进行恢复时,出现以下错误:

标题:Microsoft SQL Server管理工作室

还原数据库“RMP”失败。(Microsoft.SqlServer.Management.RelationalEngineTasks)

其他信息:

System.Data.SqlClient.SqlError:在“C:\Program Files\Microsoft SQL Server\MSSQL10\U 50.RALTECHSQL\MSSQL\Data\RMP.mdf”上尝试“RestoreContainer::ValidateTargetForCreation”时,操作系统返回错误“5(拒绝访问)”。(Microsoft.SqlServer.SmoExtended)

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


谢谢

您的问题不是备份文件夹的权限,而是您试图让SQL server在其中创建新数据库文件的文件夹

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

您不希望发生这种情况,因为您的新2014服务器没有在该文件夹中创建文件的权限(而且这些文件可能已经存在,除非您从旧实例中删除了DBs),您需要做的是为文件选择一个新位置,所以在单击“还原”之前,单击“还原”对话框的“文件”部分,根据显示的文件夹为文件选择一个新位置,该位置应类似于C:\Program files\Microsoft SQL Server\MSSQLS12.RALTECH\MSSQL\DATA\


您的2014实例将拥有在此创建文件的权限,并且恢复应该可以正常工作。

我的系统中的所有帐户对该文件以及整个目录都具有“完全控制”权限。我还能做什么呢?检查bak文件的权限。它们通常面向运行创建备份的数据库服务器的Windows用户,而不是在SSMS中启动备份的用户帐户。我记得在类似的情况下,我刚刚授予了备份目录上所有人的完全访问权限,但这远远不是最佳做法。我认为我做得很好-我为此文件添加了两个具有完全权限的帐户(SamSs和MSSQL$RALTECH-RALTECH是我的实例名)。这没用。那我做错了吗?