RayofCommand Asked: 2013-11-14 01:25:42 +0800 CST2013-11-14 01:25:42 +0800 CST 2013-11-14 01:25:42 +0800 CST 可以备份 SQL Server 2012 数据库并在 2008 年恢复吗? 772 我想备份 SQL 2012 并在 2008 上恢复,这可能吗? 我有这个选项,我无法在 DB 上更改。谢谢 sql-server 2 个回答 Voted Best Answer TomTom 2013-11-14T01:40:38+08:002013-11-14T01:40:38+08:00 不,不可能。兼容性级别谈论 SQL 的行为方式——而不是数据库内部格式。 我建议你开始标准化你的服务器。该要求指出了一些极具争议的决定——要么运行过时的储备机器,要么在没有计划的情况下升级生产机器。 Milica Medic Kiralj 2013-11-17T17:24:25+08:002013-11-17T17:24:25+08:00 SQL Server 不允许降级到旧版本 您可以在 2012 实例中使用任务 -> 导出向导,创建一个空数据库并在 2008 实例中使用导入向导,但这可能是一个理想的解决方案,因为导出/导入向导不会恢复所有对象(它会复制表但不是索引,键等) 有关更多可能的选项和解释,您可以参考这篇文章: 为什么我不能将数据库还原到旧版本的 SQL Server? 文章中建议的选项是: - 将旧版本的 SQL Server 升级到与新 SQL Server 相同的级别。 - 从较新的数据库中编写对象脚本,然后使用 bcp 进程从较新的数据库中提取数据并将其导入旧数据库。 - 使用 SQL Server 导入和导出向导构建一个 SSIS 包来移动数据(它只会移动数据)。 - 构建自定义 SSIS 包来进行数据移动。 - 使用复制将数据从较新的数据库移动到较旧的数据库。 - 使用其他形式的脚本(例如 PowerShell)来保持数据库同步。 另一种选择是使用第三方工具,ApexSQL Diff和ApexSQL Data Diff 您可以在本文中阅读该过程的详细说明:将SQL Server 数据库备份恢复到旧版本的 SQL Server 其他第三方工具也可能有所帮助 希望这可以帮助 免责声明:我作为支持工程师在 ApexSQL 工作
不,不可能。兼容性级别谈论 SQL 的行为方式——而不是数据库内部格式。
我建议你开始标准化你的服务器。该要求指出了一些极具争议的决定——要么运行过时的储备机器,要么在没有计划的情况下升级生产机器。
SQL Server 不允许降级到旧版本
您可以在 2012 实例中使用任务 -> 导出向导,创建一个空数据库并在 2008 实例中使用导入向导,但这可能是一个理想的解决方案,因为导出/导入向导不会恢复所有对象(它会复制表但不是索引,键等)
有关更多可能的选项和解释,您可以参考这篇文章: 为什么我不能将数据库还原到旧版本的 SQL Server?
文章中建议的选项是:
- 将旧版本的 SQL Server 升级到与新 SQL Server 相同的级别。
- 从较新的数据库中编写对象脚本,然后使用 bcp 进程从较新的数据库中提取数据并将其导入旧数据库。
- 使用 SQL Server 导入和导出向导构建一个 SSIS 包来移动数据(它只会移动数据)。
- 构建自定义 SSIS 包来进行数据移动。
- 使用复制将数据从较新的数据库移动到较旧的数据库。
- 使用其他形式的脚本(例如 PowerShell)来保持数据库同步。
另一种选择是使用第三方工具,ApexSQL Diff和ApexSQL Data Diff
您可以在本文中阅读该过程的详细说明:将SQL Server 数据库备份恢复到旧版本的 SQL Server
其他第三方工具也可能有所帮助
希望这可以帮助
免责声明:我作为支持工程师在 ApexSQL 工作