【问题标题】:SQL Server 2014 database restore failsSQL Server 2014 数据库还原失败
【发布时间】:2023-04-11 09:04:02
【问题描述】:

我有用于生产的 SQL Server 2014 集群版本,而用于开发我使用 SQL Server 2014 2014 Express 版本。

我在从 .bak 恢复数据库备份时遇到问题。

每次我尝试恢复时都会收到以下错误

标题:Microsoft SQL Server Management Studio

服务器“WEBDESIGNINA\SQLEXPRESS2014”的恢复失败。 (Microsoft.SqlServer.SmoExtended)

附加信息:

执行 Transact-SQL 语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)

操作系统在“C:\Program Files\Microsoft SQL Server\MSSQL12”上尝试“RestoreContainer::ValidateTargetForCreation”时返回错误“32(该进程无法访问该文件,因为它正被另一个进程使用。)” .SQLEXPRESS2014\MSSQL\DATA\Database_Name.mdf'。

文件“Database_Name”无法恢复到“C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\DATA\Database_Name.mdf”。使用 WITH MOVE 确定文件的有效位置。

操作系统在“C:\Program Files\Microsoft SQL Server\MSSQL12”上尝试“RestoreContainer::ValidateTargetForCreation”时返回错误“32(该进程无法访问该文件,因为它正被另一个进程使用。)” .SQLEXPRESS2014\MSSQL\DATA\Database_Name.ldf'。

文件“Database_Name_log”无法恢复到“C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\DATA\Database_Name.ldf”。使用 WITH MOVE 确定文件的有效位置。

在规划 RESTORE 语句时发现了问题。以前的消息提供了详细信息。
RESTORE DATABASE 异常终止。 (Microsoft SQL Server,错误:3634)

解决此问题的唯一方法是删除数据库然后恢复到新数据库。

我怎样才能不出错地覆盖这个数据库

【问题讨论】:

  • 如果您打开了 SQL Server Management Studio,请确保关闭连接到该数据库的所有选项卡。另外:您是使用 GUI 还是 T-SQL 语句进行恢复?
  • 所有选项卡都已关闭我什至停止了 ms 服务器以确保正在使用资源,此错误不断出现。唯一的出路是删除数据库并从 .bak 文件重新创建它
  • 向我们展示您的恢复命令。我确定您没有使用 WITH MOVE,并且您的还原尝试覆盖现有数据库
  • 如果您的数据库已经在您的 Express 服务器上,请使用 WITH REPLACE。如果要恢复到不存在的 NEW db,请使用 WITH MOVE。你现在在做什么,你试图覆盖已经存在,在线的数据库,而你没有指定要替换它
  • @marc_s 当存在与 db 的现有连接时,您会收到另一个错误:无法获得独占访问权限,因为数据库正在使用中。他所做的而不是他不使用替换/移动

标签: sql-server database database-restore


【解决方案1】:

也发生在我身上。以前从未见过。我使数据库脱机,重命名了 mdf/ldf,然后开始恢复,它现在可以工作了。不确定这是否是个好主意。但不知何故,我不得不恢复这个数据库并继续前进。

【讨论】:

    【解决方案2】:

    我在使用 SQL 2014 Express 的 VPS 上遇到了这个问题。没有足够的安全权限从默认备份目录进行还原:C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup(虽然备份工作正常)

    错误是: C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup 无法访问服务器上的指定路径或文件。验证您是否具有必要的安全权限并且该路径或文件存在。

    其实你可以按照以下步骤更改权限:使用Windows Authentication登录SSMS 导航到安全->登录 双击或右键单击并选择您感兴趣的用户的属性。 在“选择页面”框中,选择“服务器角色” 确保选择了“sysadmin”角色 按确定保存更改并关闭对话框 退出 SSMS 重新打开 SSMS 并以您想要的用户身份登录,您现在应该有足够的权限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多