【发布时间】:2015-11-27 10:54:49
【问题描述】:
我最近将我的 SQL Server 2008 R2 (10.50.1600.1) 更改为 SQL Server 2014 Express (12.0.4100.1 - 带有 Service Pack 1)。现在我想恢复我在 SQL Server 2008 R2 上创建的 *.bak 文件。
首先我在Backup 目录(C:\Program Files\Microsoft SQL Server\MSSQL12.RALTECH\MSSQL\Backup) 中看不到我的*.bak 文件。我在那里复制了我所有的备份文件。
当我尝试在这样的推送中键入备份文件位置时(我的一个备份文件称为 RMP),我可以看到 Management Studio 识别该文件:
文件(备份)大小为 2201 KB,数据库文件为 2245632(Management Studio 中的“大小”列 - 我不知道它的单位是 MB 还是 KB ...)但是它没有大于 SQL 中可接受的大小服务器速成版。所以这不是问题。
当我点击确定恢复时,我收到此错误:
标题:Microsoft SQL Server Management Studio
数据库“RMP”的恢复失败。 (Microsoft.SqlServer.Management.RelationalEngineTasks)
附加信息:
System.Data.SqlClient.SqlError:操作系统在“C:\Program Files\Microsoft SQL Server\MSSQL10_50.RALTECHSQL\MSSQL”上尝试“RestoreContainer::ValidateTargetForCreation”时返回错误“5(拒绝访问。)” \DATA\RMP.mdf'。 (Microsoft.SqlServer.SmoExtended)
我能用这个做什么?如何从 SQL Server 2008 R2 *.bak 文件恢复 SQL Server 2014 Express 上的数据库?对我来说奇怪的是我的备份文件 (*.bak) 有挂锁图标。那会是个问题吗?
谢谢
【问题讨论】:
-
我系统中的所有帐户都对该文件以及整个目录具有“完全控制”权限。我还能用这个做什么?
-
检查bak文件的权限。它们通常面向运行创建备份的数据库服务器的 Windows 用户,而不是在 SSMS 中启动备份的用户帐户。我记得在类似的情况下,我刚刚授予了备份目录上所有人的完全访问权限,但这远非最佳实践。
-
我认为我做得很好 - 我添加了 2 个对该文件具有完全权限的帐户(SamSs 和 MSSQL$RALTECH - RALTECH 是我的实例名称)。它没有帮助。那我做错了吗?
标签: sql-server sql-server-2008-r2 database-restore sql-server-2014-express