web-dev-qa-db-fra.com

Toujours AG, DTC avec basculement

Problème: Comment puis-je exécuter Coordinateur de transactions distribuées (DTC) sur tous les serveurs d'un groupe de disponibilité Talwonon (AG)? Je n'ai pas besoin de conserver des transactions sur des événements de basculement/de commutation.

Configuration: J'ai un cluster de basculement Windows (WSFC) avec trois serveurs Windows 2008 R2 où ils fonctionnent tous SQL 2012. Deux serveurs sont dans un seul centre de données et font partie d'un cluster de basculement Twamon (FCI), tandis que le troisième serveur est dans un deuxième centre de données. Le WSFC est un groupe multi-sous-réseau. Voici un croquis de la configuration: enter image description here

J'ai été en mesure d'installer et de configurer DTC pour fonctionner entre les deux nœuds FCI car ils sont sur le même sous-réseau et le même stockage de partage. J'ai configuré quelques agents AGS et ils fonctionnent bien. Cette capture d'écran montre DTC installé sur la FCI:

enter image description here

Cette capture d'écran montre que je peux configurer DTC sur l'un des nœuds FCI (selon l'actif): enter image description here

J'aimerais migrer une application qui utilise DTC sur ce groupe et utilisez un AG. J'ai lu que la DTC n'est pas prise en charge avec AGS ( référence ). Je n'ai pas été en mesure de trouver un moyen de configurer DTC sur le troisième noeud 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:

enter image description here

À Brent Ozar's Liste de contrôle de configuration gratuite PDF pour les groupes de disponibilité, il répertorie:

Installation de cluster ...

29. Si une FCI est impliquée, configurez DTC selon vos décisions de la section de planification.

Dans les commentaires sur SQL Server 2012 Alwayson Dispontability Groups Rock Brent dit que "... Rien ne change lorsque AG est en jeu. Il suffit de garder à l'esprit que les bases de données dans un groupe de disponibilité ne supportent pas la cohérence transactionnelle lorsque Échec ensemble à une autre réplique ... "

Cela semble que la DTC puisse être utilisée dans des groupes de disponibilité tant que vous comprenez que les transactions ne seront pas maintenues dans une commutation AG. Je n'aurais pas besoin de la maintenance des transactions des nœuds FCI. J'aurais juste besoin de DTC disponible pour que l'application soit utilisée dans le cas d'une catastrophe catastrophique (où j'ai perdu mon centre de données primaire).

Comment configurer DTC sur mon troisième noeud? Ou, est-ce que je suis juste mal de chance lorsqu'il s'agit d'utiliser des AGS et une application qui a besoin de DTC?

Mise à jour: La solution que j'ai installée est d'utiliser l'expédition de journal. Cependant, dans le cas d'un échec, j'ai encore besoin de DTC d'être disponible sur Node3. J'ai découvert qu'il devient disponible en désinstallant l'instance clustered MSDTC-MSQLServerclu de DTC partagée entre Node1 et Node2. Une fois supprimé, je peux configurer et configurer une instance localDTC sur Node3. Ensuite, je peux réinstaller l'instance clustered MSDTC-MSQLSERVLUCLUCLU. Faire la séquence d'installation dans cet ordre semble fonctionner. Je courais comme ça depuis un peu de temps et je n'ai pas découvert d'effets néfastes. Il semble que cela fonctionnerait également pour exécuter un groupe de disponibilités Tomyon. Je comprends que les transactions distribuées ne seraient pas préservées dans un basculement AG, j'aurais juste besoin de nouveaux pour travailler après le basculement. Mais je n'y suis pas allé ...

14
Elijah W. Gagne

Elie. Il y a deux questions distinctes ici:

1. Le DTC est-il pris en charge avec toujours des groupes de disponibilité?

Comme Microsoft le dit en grandes lettres, non. Je comprends totalement que vous voulez l'essayer de toute façon, mais gardez à l'esprit que vous mettez maintenant quelque chose à la production que Microsoft ne prendra simplement pas en charge et vous Réservez deux caractéristiques de niche distinctes ensemble (AGS et DTC). Si quelque chose ne va pas mal, vous allez être dans un monde de blessures. Ce n'est tout simplement pas quelque chose que je penserais même à essayer de la production.

N'oubliez pas que si vos gestionnaires découvrent que vous avez déployé quelque chose de Microsoft précise spécifiquement en grandes lettres ", vous ne pouvez pas faire une sorte de panne où vous devez appeler Microsoft pour obtenir un soutien, vous allez avoir des explications moche à faire.

2. Comment DTC devrait-il être configuré dans un cluster multi-nœuds, multi-sous-réseau?

Lisez Allan Hirt's Post sur la configuration de la DTC avec plusieurs instances de SQL Server dans un cluster et assurez-vous de lire tous les liens dans le poteau.

15
Brent Ozar