1
AlwaysOn AG,具有故障转移功能的DTC
问题:如何在AlwaysOn可用性组(AG)中的所有服务器上运行分布式事务处理协调器(DTC)?我不需要通过故障转移/切换事件来维护事务。 设置:我有一个Windows故障转移群集(WSFC),其中包含三台都运行SQL 2012的Windows 2008 R2服务器。两台服务器位于一个数据中心,是AlwaysOn故障转移群集(FCI)的一部分,而第三台服务器在第二个数据中心。WSFC是一个多子网群集。这是设置的草图: 我已经能够安装和配置DTC,使其在两个FCI节点之间工作,因为它们位于同一子网中并共享存储。我已经配置了几个AG,它们运行良好。此屏幕快照显示了在FCI上安装的DTC: 此屏幕快照显示,我可以在一个FCI节点(无论哪个处于活动状态)上配置DTC: 我想将使用DTC的应用程序迁移到该群集上并使用AG。我读过AG不支持DTC(参考)。我还没有找到在第二个数据中心的第三个节点上配置DTC的方法。当我尝试在第三个节点上配置DTC时,它似乎不可用,如以下屏幕截图所示: 在Brent Ozar的可用性组的免费安装清单PDF中,他列出了: 群集安装... 29.如果涉及FCI,请根据您的“计划”部分的决定配置DTC。 在对SQL Server 2012 AlwaysOn可用性组的评论中,Rock Brent说:“ ...当AG发挥作用时,没有任何变化。请记住,可用性组中的数据库在一起故障转移到另一个副本时不支持事务一致性。 ..” 这使DTC似乎可以在可用性组中使用,只要您了解到事务不会在AG切换中维护。我不需要它来维护来自FCI节点的事务。在灾难性灾难(我丢失了主数据中心)的情况下,我只需要DTC可供应用程序使用即可。 如何在第三个节点上配置DTC?还是在使用AG和需要DTC的应用程序时我不走运? 更新:我确定的解决方案是使用日志传送。但是,在故障转移的情况下,我仍然需要DTC在Node3上可用。我发现通过卸载在Node1和Node2之间共享的DTC的群集MSDTC-MSSQLSERVERCLU实例,它变得可用。删除后,我可以在Node3上设置和配置LocalDTC实例。之后,我可以重新安装群集的MSDTC-MSSQLSERVERCLU实例。按此顺序执行安装顺序似乎可行。我已经像这样跑了一段时间了,而且还没有发现任何不良影响。似乎这对于运行AlwaysOn可用性组也将起作用。我了解到分布式事务不会在AG故障转移中保留,我只需要新事务即可在故障转移后工作。但是我还没有