我们的应用程序写入分布式事务中的多个Sql Server数据库。 操作人员说,这会弄乱他们的灾难恢复计划,因为虽然活动表上的事务可能同时提交,但是在单独的数据库上运行的日志发生的时间略有不同。 所以在灾难恢复的情况下,会有一些部分事务。
有没有一种在DR中维护独立但同步的数据库的方法? 还是我们必须重新devise相对独立的数据库(或单个数据库)?
我不确定您的操作灾难恢复计划是什么,但是您可以恢复到确保所有数据库处于一致状态的特定事务。 要做到这一点,你将使用标记交易 。
这种方法的一个限制是,你只能恢复到一个标记的交易,而不是一个特定的时间点。 我不确定这是否会扰乱你的策略。
从上面的文章,基本的方法是:
请注意,在交易标记交易的两阶段提交期间,其他交易将被阻止,这可能会影响性能。
使用标记事务是IMO在您的案例数据库中维护逻辑应用程序完整性的最佳方法,在单独的物理边界上。
另一种select是使用SQL镜像( http://technet.microsoft.com/en-gb/library/cc917680.aspx )。 简而言之,这是一种确保在标记为完成之前在两个数据库(一个在主站点,一个在DR站点)上完成交易的方法。 有明显的性能影响,您将需要确定这是否是您的应用程序的问题。