使用备用数据库将备份从 SQL 2008 恢复到 2008R2

使用备用数据库将备份从 SQL 2008 恢复到 2008R2

我们希望将生产数据库复制到另一个实例,以便在运行报告时,它不会减慢应用程序的速度,以至于几乎无法使用。我使用 SQL Server 复制取得了有限的成功,但由于应用程序不时会摆弄数据模型,这种方法并不合适。

当我们与供应商交谈时(供应商告诉我们可以复制),他透露他们的其他客户使用日志传送,这是我目前的方向。我唯一的问题是服务器运行 SQL 2008,而目标服务器运行 2008R2。当我尝试恢复备用备份时,它失败了,但如果我使用另一个相同版本的实例,该过程运行顺利。

有没有办法使用不同版本的 SQL Server 来实现这一点,还是我只能使用当前的安排?

谢谢

答案1

从技术上讲,您可以编写一个更新脚本,将新数据从生产系统复制到测试系统,但这不仅会很复杂,而且还会遇到一些难以解决的问题:

  • 复制期间两个数据库的性能都会受到影响。
  • 新行很容易检测,但删除/更新的行则不然。如果应用程序尚未实现某种数据版本控制,您将必须自己实现它或每次都复制所有表的内容。
  • 如果将更新机制包装在一个巨大的事务中(在双方),则很难在目标数据库中保持全局一致的状态。我让你猜猜这样做的后果是什么:P

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

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

相关内容