AlwaysOn AG, DTC avec basculement

14

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: entrez la description de l'image ici

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:

entrez la description de l'image ici

Cette capture d'écran montre que je peux configurer DTC sur l'un des nœuds FCI (selon celui qui est actif): entrez la description de l'image ici

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:

entrez la description de l'image ici

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

Elijah W. Gagne
la source

Réponses:

15

Élie. Il y a deux questions distinctes ici:

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

Comme le dit Microsoft en grosses lettres, non. Je comprends parfaitement que vous voulez essayer de toute façon, mais gardez à l'esprit que vous mettez maintenant quelque chose en production que Microsoft ne prendra tout simplement pas en charge, ET que vous utilisez ensemble deux fonctionnalités de niche distinctes (AG et DTC). Si quelque chose se passe mal, vous allez être dans un monde de souffrance. Ce n'est tout simplement pas quelque chose que j'aurais même pensé à essayer en production.

Gardez à l'esprit que si vos responsables découvrent que vous avez déployé quelque chose que Microsoft dit spécifiquement en grosses lettres, "VOUS NE POUVEZ PAS FAIRE CECI", et que vous avez une sorte de panne où vous devez appeler Microsoft pour obtenir de l'aide, vous allez avoir une laideur expliquant à faire.

2. Comment DTC doit-il être configuré dans un cluster multi-nœuds et multi-sous-réseaux?

Lisez la publication d'Allan Hirt sur la configuration de DTC avec plusieurs instances de SQL Server dans un cluster, et assurez-vous de lire également tous les liens dans la publication.

Brent Ozar
la source
Grande info dans le post d'Allan Hirt. Votre avertissement m'a convaincu que je n'ai pas de chance et que je ne peux pas le faire
Elijah W. Gagne