T-SQL 数据库恢复错误

Posted

技术标签:

【中文标题】T-SQL 数据库恢复错误【英文标题】:T-SQL Database Restoration Error 【发布时间】:2018-03-29 09:20:33 【问题描述】:

在 SQL2008R2 中恢复备份数据时出现以下错误

消息 3201,第 16 级,状态 2,第 1 行 无法打开备份设备“C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\Backup\123.bak”。操作系统错误2(系统找不到指定的文件。)。 消息 3013,第 16 级,状态 1,第 1 行 RESTORE DATABASE 异常终止。

我已经尝试过下面提到的从谷歌和其他网站得到的建议。

    登录用户的用户权限(赋予硬盘驱动器上sql登录用户的管理员权限) 检查数据库路径 按照 Microsoft 网站的建议更新了补丁。 在其他系统上安装 SQL2014 并尝试相同的操作,但仍然出现相同的错误。 5.检查我已备份的数据库。 从图形模式恢复这个备份文件,它恢复成功,没有任何错误。

请帮助我,我必须编写一个 C# 程序,用于在 SQL 中恢复备份数据库。

【问题讨论】:

"系统找不到指定的文件。"您实际上在 C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\Backup\ 中有一个名为 123.bak 的文件吗? C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\Backup\123.bak 此路径错误,请提供正确路径 该路径意味着您要恢复的数据库来自 SQL Server 2014。您无法从新版本恢复备份(因此您无法在 2008R2 实例上恢复 2014 数据库) .但是,这不是您的错误的原因,这可能是该文件不存在。但是,我不建议在您的 PC 上授予 SQL 服务帐户管理权限。 非常清楚 - 服务器执行还原,因此路径需要正确从服务器的角度来看。许多人认为他们可以从客户端工具(例如 SSMS 或 SQLCMD)的角度给出路径,但没有意识到只有在服务器和客户端在同一台机器上时才会这样做。 打开命令提示符并输入dir,然后粘贴备份文件的全名,包括路径。如果它存在 - 并且您可以访问它 - 您将在 dir 输出中看到它的属性。如果其中一个为 false,则会出现错误。 【参考方案1】:

尝试将备份文件 (*.bak) 移至您的备份文件夹。 我的备份位置:

C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup

然后尝试恢复数据库。 希望这可以帮助。 谢谢

【讨论】:

以上是关于T-SQL 数据库恢复错误的主要内容,如果未能解决你的问题,请参考以下文章

T-SQL查看数据库恢复(RESTORE)时间

如何调用远程 T-SQL 过程将远程 .bak 数据库文件恢复到远程 SQL Server 实例?

要恢复的 SSIS 包

以高可用性恢复 SQL Server 2012 数据库

firebird 数据库恢复 firebird数据库修复 interbase数据库恢复 firebird blob错误恢复

SQLSERVER调用OPENROWSET的方法