可以在 SQL Server 2012 上恢复 SQL Server 2014 的备份吗?

Posted

技术标签:

【中文标题】可以在 SQL Server 2012 上恢复 SQL Server 2014 的备份吗?【英文标题】:Possible to restore a backup of SQL Server 2014 on SQL Server 2012? 【发布时间】:2014-09-22 10:40:12 【问题描述】:

我知道您不能(至少不容易)在 SQL Server 2008 上恢复 SQL Server 2012 备份。但是它如何从 SQL Server 2014 到 SQL Server 2012 工作?

在数据库级别,可以将兼容模式调整为任何其他 SQL Server 版本。

这有什么帮助或工作?它只会禁止 2014 年的功能吗?

老实说,我已经尝试恢复备份,但是 2012 无法识别数据文件,所以我无法单击 ok Button 启动恢复过程。

我错过了一些重要的选择吗?

【问题讨论】:

How to restore SQL Server 2014 backup in SQL Server 2008的可能重复 我当然看到了 2014 到 2008 年的问题,但我认为这是不同的 【参考方案1】:

不能这样做 - 您不能将数据库从 较新版本的 SQL Server 附加/分离或备份/恢复到 较旧版本 - 内部文件结构差异太大,无法支持向后兼容性。在 SQL Server 2014 中仍然如此 - 您无法在另一个 2014 机器(或更新)以外的任何设备上恢复 2014 备份。

您可以通过以下方式解决此问题

在所有机器上使用相同版本的 SQL Server - 然后您可以轻松地在实例之间备份/恢复数据库

否则,您可以在 SQL Server Management Studio (Tasks > Generate Scripts) 或使用第三方工具

或者您可以使用 Red-Gate 的 SQL Compare 和 SQL Data Compare 等第三方工具在源和目标之间进行“差异化”,根据这些差异生成更新脚本,然后在目标平台;这适用于不同的 SQL Server 版本。

兼容模式设置仅控制您可以使用哪些 T-SQL 功能 - 这有助于防止意外使用其他服务器中不可用的新功能。但它确实不会更改 .mdf 文件的内部文件格式 - 这是 NOT 解决该特定问题的解决方案 - 没有从旧实例上的新版本 SQL Server。

【讨论】:

是否可以安全地假设 2016 年与 2014 年相同?我的意思是 2016 备份不兼容 2014 服务器上的恢复,而 2016 服务器可以从 2014 服务器恢复备份。【参考方案2】:

当然可以...在源选项中使用导出向导使用 SQL SERVER NATIVE CLIENT 11,稍后您的源服务器 ex.192.168.100.65\SQLEXPRESS 下一步选择您的新目标服务器 ex.192.168.100.65\SQL2014

请确保使用正确的实例并相互连接

只需注意存储过程必须重新编译

【讨论】:

技术上不是“恢复备份”,但它确实实现了将数据从服务器[新]移动到服务器[旧]的目标。 开发环境的好“解决方法”。我想将数据库从 2016 年迁移到 2014 年,并且不想升级其他实例或花费太多时间迁移数据。这个技巧很完美。 要找到向导,请单击 SSMS 中的数据库,选择任务,然后选择导出数据。 稍微扩展一下...当我刚刚使用导出数据时,我丢失了所有索引、约束等。我很幸运地为 2014 年数据库中的所有对象生成了脚本,然后在 2012 服务器上运行这些。然后我禁用了所有约束,并运行导出数据以将所有数据复制到新的 db shell。请记住从导出数据向导中的选项启用身份插入。还记得在之后启用约束。 -- 禁用约束 EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL" GO --- 启用约束 EXEC sp_MSforeachtable @command1="ALTER TABLE ? ENABLE TRIGGER ALL" GO EXEC sp_MSforeachtable @command1= “改变表?检查所有约束”去

以上是关于可以在 SQL Server 2012 上恢复 SQL Server 2014 的备份吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们如何分配权限来设置 SQL Server Reporting Services

在 SQL Server 2005 中恢复数据库

在 SQL Server 2012 上还原 SQL Server 2000 备份

sql server 恢复备份错误

SQL Server 2012 简单恢复模式 - 崩溃后的恢复选项

SQL server 2012 安装时等待数据库引擎恢复句柄失败