如何自动还原SQL Server 2008 R2备份文件

时间:2013-01-24 14:22:14

标签: sql sql-server sql-server-2008 sql-server-2008-r2 downgrade

我的团队需要更新在SQL Server 2008服务器上运行的自动内容流程,以包含第三方供应商提供的SQL Server 2008 R2数据库的内容。 向第三方发送SQL Server 2008请求的请求是 NOT 一个选项。

我的常识表明没有办法从2k8 R2降级到2k8,就像我所知道的大多数软件产品一样。但是,我想知道我是否能够在脚本中做这样的事情:

  • 将SQL Server 2008 R2 .bak文件还原到我们的SQL Server 2008 R2实例
  • 将兼容性级别更新为SQL Server 2008(100)。 以下是我的计划中的错误:我没有在互联网上找到2008版本之间的任何兼容性级别差异。有什么线索吗?
  • 备份数据库。
  • 在SQL Server 2008中还原数据库

您可能想与我分享一些其他想法。

请记住,应该对此数据库转换进行手动干预,因为此操作需要合并到自动化流程中。

欢迎任何帮助/建议/评论!

3 个答案:

答案 0 :(得分:2)

不,无论兼容级别如何,都无法向后还原数据库。兼容级别会影响某些数据库引擎行为,但不会降级数据库版本。您永远无法将2008 R2实例中存在的数据库恢复到2008年。

对于解决方法,您可以:

  • 在R2上恢复数据库,然后使用导入/导出数据向导(或第三方工具)将模式/数据传输到2008实例(您应该能够在某种程度上自动执行此操作,例如Red-Gate的工具有命令行界面)
  • 将您的2008服务器升级到2008 R2或2012
  • 推回供应商

答案 1 :(得分:1)

按设计,您只能将数据库备份还原到相同或更新版本的SQL Server。使用SQL Server 2008 R2创建的备份只能使用SQL Server 2008 R2或SQL Server 2012进行还原。这与数据库的兼容级别无关。这是备份和还原过程的限制。这是自SQL Server 2000之前的限制(即我曾经使用的每个版本)。

答案 2 :(得分:0)

也许你可以编写新数据库的脚本,而不是备份和恢复你基本上只是用脚本进行数据转储。

尝试查看此How can I get a SQL dump of a SQL Server 2008 database?