Bry*_*der 5 sql-server msdtc failover high-availability database-mirroring
我有一个应用程序,我想支持SQL Server镜像.但是,该体系结构目前是在单个MSDTC事务中登记多个WCF服务和数据库连接,Microsoft声明在使用镜像时不支持MSDTC.
他们的解释并不是非常有用的:
使用数据库镜像与MS DTC事务时,可能会出现类似的情况.例如,新的主体服务器在故障转移后联系MS DTC.但是,MS DTC不了解新的主体服务器.因此,即使事务被视为在其他数据库中提交,MS DTC也会停止处于"准备提交"阶段的任何事务.
我理解问题的是最后一句话.这与DB服务器没有镜像,并且在同一时间点死亡有什么不同?有人可以向我解释一下吗?我需要能够向组织中的其他人(以及客户)解释这一点,但我不明白为什么MSDTC可以在一种情况下正确回滚/补偿,但如果其中一个参与者是镜像SQL服务器则不能(完全安全模式).
MSDTC并不知道镜像.因此,当它在分布式事务中注册资源管理器时,它将通过其名称知道RM,例如服务器A.发生故障转移后,日志将告诉新主体'去联系DTC并查看事务T的状态是什么".名为Server B的新主体进入DTC并说'我是服务器B,事务T的结果是什么?' DTC会告诉他'走开,我不认识你,你没有参加交易T'.这也是KB文章所描述的内容:
故障转移后,新的主体服务器无法连接到使用相同资源ID的先前主体服务器的MS DTC.因此,新的主体服务器无法获取事务状态
您问的是"这与DB服务器没有镜像有什么不同,只是在同一时间点死了?".不同的是,这是否会发生了,那么当数据库的恢复将在恢复同一个服务器,且该服务器可以联系DTC,并要求它回滚分布式事务在其被录取.
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |