Problème: comment exécuter le coordinateur de transactions distribuées (DTC) sur tous les serveurs d'un groupe de disponibilité AlwaysOn (AG)? Je n'ai PAS besoin de maintenir les transactions sur les événements de basculement / basculement.
Configuration: j'ai un cluster de basculement Windows (WSFC) avec trois serveurs Windows 2008 R2 où ils exécutent tous SQL 2012. Deux serveurs se trouvent dans un centre de données et font partie d'un cluster de basculement AlwaysOn (FCI), tandis que le troisième serveur est en un deuxième centre de données. Le WSFC est un cluster multi-sous-réseau. Voici un croquis de la configuration:
J'ai pu installer et configurer DTC pour qu'il fonctionne entre les deux nœuds FCI car ils se trouvent sur le même sous-réseau et partagent le stockage. J'ai configuré quelques AG et ils fonctionnent bien. Cette capture d'écran montre DTC installé sur le FCI:
Cette capture d'écran montre que je peux configurer DTC sur l'un des nœuds FCI (selon celui qui est actif):
Je voudrais migrer une application qui utilise DTC sur ce cluster et utiliser un AG. J'ai lu que DTC n'est pas pris en charge avec les AG ( référence ). Je n'ai pas pu trouver un moyen de configurer DTC sur le troisième nœud du deuxième centre de données. Lorsque j'essaie de configurer DTC sur le troisième nœud, il semble être indisponible, comme indiqué dans cette capture d'écran:
Dans la liste de contrôle de configuration gratuite de Brent Ozar PDF pour les groupes de disponibilité, il énumère:
Installation du cluster ...
29. Si un FCI est impliqué, configurez le DTC selon vos décisions de section de planification.
Dans les commentaires sur les groupes de disponibilité AlwaysOn de SQL Server 2012, Rock Brent dit que "... rien ne change lorsque les AG sont en jeu. N'oubliez pas que les bases de données d'un groupe de disponibilité ne prennent pas en charge la cohérence transactionnelle lorsqu'elles sont basculées ensemble vers une autre réplique. .. "
Cela donne l'impression que DTC peut être utilisé dans les groupes de disponibilité tant que vous comprenez que les transactions ne seront pas gérées dans un basculement AG. Je n'en aurais pas besoin pour gérer les transactions des nœuds FCI. J'aurais juste besoin de DTC disponible pour l'application à utiliser en cas de catastrophe catastrophique (où j'ai perdu mon centre de données principal).
Comment configurer DTC sur mon troisième nœud? Ou, est-ce que je n'ai pas de chance quand il s'agit d'utiliser des AG et une application qui a besoin de DTC?
MISE À JOUR: La solution sur laquelle je me suis installé consiste à utiliser Log Shipping. Cependant, en cas de basculement, j'ai toujours besoin que DTC soit disponible sur Node3. J'ai découvert qu'il devient disponible en désinstallant l'instance MSDTC-MSSQLSERVERCLU en cluster de DTC qui est partagée entre Node1 et Node2. Une fois supprimé, je peux installer et configurer une instance LocalDTC sur Node3. Ensuite, je peux réinstaller l'instance MSDTC-MSSQLSERVERCLU en cluster. Faire la séquence d'installation dans cet ordre semble fonctionner. Je cours comme ça depuis un petit moment maintenant et je n'ai découvert aucun effet néfaste. Il semble que cela fonctionnerait également pour exécuter un groupe de disponibilité AlwaysOn. Je comprends que les transactions distribuées ne seraient pas conservées dans un basculement AG, j'aurais juste besoin de nouvelles pour fonctionner après le basculement. Mais je n'ai pas