SQL Server 2012,无法从 .bak 文件还原数据库

Posted

技术标签:

【中文标题】SQL Server 2012,无法从 .bak 文件还原数据库【英文标题】:SQL Server 2012, Not able to restore the database from .bak file 【发布时间】:2014-12-11 10:44:16 【问题描述】:

我的服务器上有一个 SQL Server 数据库,我已经对其进行了备份。当我尝试将其还原到本地计算机时,它会抛出一个错误并且进程异常终止,

我在本地机器上创建了一个新的空数据库,并尝试使用以下代码将.bak 恢复到该数据库中:

RESTORE FILELISTONLY FROM DISK = 'C:\Users\user\Documents\Downloads\LiveDB.bak'

获取数据文件和日志文件的逻辑名称,我得到如下错误:

消息 3241,第 16 级,状态 13,第 1 行 设备“C:\Users\user\Documents\Downloads\LiveDB.bak”上的媒体系列格式不正确。 SQL Server 无法处理此媒体系列。 消息 3013,第 16 级,状态 1,第 1 行 RESTORE DATABASE 异常终止。

这个错误是什么原因造成的?

如果这是从备份文件中恢复数据库的错误方法,有人可以告诉我一步一步的过程来让它工作吗?

提前致谢。

【问题讨论】:

是的,这是一个sql server的备份文件,我把它压缩成从服务器传输到本地机器,传输后解压。顺便说一句,它与 SQL SERVER 的版本相同 从我的机器通过远程连接复制 不,是通过 RDP 共享 【参考方案1】:

这几乎可以肯定是由于服务器版本不同。如果您尝试将数据库从较新版本的 SQL Server 还原到较旧版本,您将收到此消息 - 这是不可能的。要检查版本,请在两台服务器上运行以下命令:

SELECT @@VERSION

比较结果并确保您要恢复到的服务器与进行备份的服务器的版本相同或更新

【讨论】:

不一定较新,可能是同一个版本。 很好的呼叫 Radu,已修复!【参考方案2】:

我的错误是我从差异备份而不是完整备份进行恢复。

【讨论】:

以上是关于SQL Server 2012,无法从 .bak 文件还原数据库的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 MySQL 迁移到 SQL Server

从备份文件bak中识别SQL Server的版本

如何在 Docker 上的 SQL Server 中从数据库备份中查看 .bak 文件

从SQL Server bak文件还原Team Foundation Server

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

如何将 bak 文件导入 SQL Server Express