从备份中恢复从SQL 2008到2008R2的备份

我们希望将我们的生产数据库复制到另一个实例,以便在运行报表时,不会使应用程序的运行速度降到几乎不可用的程度。 我在SQL Server复制方面取得了有限的成功,但是随着应用程序不时地处理数据模型,这种方法是不合适的。

当我们与供应商(谁告诉我们是的,它可以被复制)交谈时,他透露他们的其他客户使用日志传送,这是我目前的方向。 我唯一的问题是服务器运行SQL 2008,而目标服务器运行2008R2。 当我尝试在备用状态下恢复备份时,它的表面会变得平坦,但是如果我使用的是同一版本的另一个实例,则此过程完美无瑕。

有没有办法做到这一点与不同的SQL Server版本,还是我卡在当前的安排?

谢谢

从技术上讲,你可以编写一个更新脚本,将生产中的新数据复制到testing系统,但这不仅会变得复杂,而且还会遇到一些远远不能解决的问题:

  • 在复制过程中,两个数据库的性能都会受到影响。
  • 新行很容易检测,但删除/更新的行不是。 如果应用程序尚未实现某种数据版本化,则必须自己实现,或者每次复制所有表的内容。
  • 在目标数据库中维护一个全局一致的状态是很困难的,同时在一个巨型事务(两边)中封装更新机制。 我让你猜猜结果会是什么:P

或者,您也可以修改源应用程序,以便它将同时写入这两个数据库(我在类似情况下使用该解决scheme)。

坦率地说,我看不到任何(合理的)解决scheme比确保两个数据库使用相同版本的SQL服务器更简单。