AlwaysOn AG, DTC mit Failover

14

Problem: Wie kann ich Distributed Transaction Coordinator (DTC) auf allen Servern in einer AlwaysOn Availability Group (AG) ausführen? Ich muss keine Transaktionen über Failover- / Switchover-Ereignisse verwalten.

Setup: Ich habe einen Windows-Failovercluster (WSFC) mit drei Windows 2008 R2-Servern, auf denen SQL 2012 ausgeführt wird. Zwei Server befinden sich in einem Rechenzentrum und sind Teil eines AlwaysOn-Failoverclusters (FCI), während sich der dritte Server in befindet ein zweites Rechenzentrum. Die WSFC ist ein Cluster mit mehreren Subnetzen. Hier ist eine Skizze des Aufbaus: Bildbeschreibung hier eingeben

Ich konnte DTC so installieren und konfigurieren, dass es zwischen den beiden FCI-Knoten funktioniert, da sie sich im selben Subnetz befinden und Speicher gemeinsam nutzen. Ich habe ein paar AGs konfiguriert und sie haben einwandfrei funktioniert. Dieser Screenshot zeigt den auf der FCI installierten DTC:

Bildbeschreibung hier eingeben

Dieser Screenshot zeigt, dass ich DTC auf einem der FCI-Knoten konfigurieren kann (je nachdem, welcher aktiv ist): Bildbeschreibung hier eingeben

Ich möchte eine Anwendung, die DTC verwendet, auf diesen Cluster migrieren und eine AG verwenden. Ich habe gelesen, dass DTC mit AGs ( Referenz ) nicht unterstützt wird . Ich habe keine Möglichkeit gefunden, DTC auf dem dritten Knoten im zweiten Rechenzentrum zu konfigurieren. Wenn ich versuche, DTC auf dem dritten Knoten zu konfigurieren, scheint es nicht verfügbar zu sein, wie in diesem Screenshot gezeigt:

Bildbeschreibung hier eingeben

In Brent Ozars PDF mit der kostenlosen Setup-Checkliste für Verfügbarkeitsgruppen listet er Folgendes auf:

Cluster-Installation ...

29. Wenn eine FCI beteiligt ist, konfigurieren Sie den DTC gemäß Ihren Planungsabschnittsentscheidungen.

In den Kommentaren zu SQL Server 2012 AlwaysOn-Verfügbarkeitsgruppen sagt Rock Brent: "... ändert sich nichts, wenn AGs im Spiel sind. Denken Sie jedoch daran, dass Datenbanken in einer Verfügbarkeitsgruppe keine Transaktionskonsistenz unterstützen, wenn ein Failover auf ein anderes Replikat durchgeführt wird. .. "

Dies scheint, dass DTC in Verfügbarkeitsgruppen verwendet werden kann, solange Sie verstehen, dass Transaktionen bei einer AG-Umschaltung nicht beibehalten werden. Ich würde es nicht benötigen, um Transaktionen von den FCI-Knoten zu verwalten. Ich benötige nur DTC, damit die Anwendung im Katastrophenfall (bei dem ich mein primäres Rechenzentrum verloren habe) darauf zugreifen kann.

Wie konfiguriere ich DTC auf meinem dritten Knoten? Oder habe ich einfach Pech, wenn es darum geht, AGs und eine Anwendung zu verwenden, die DTC benötigt?

UPDATE: Die Lösung, für die ich mich entschieden habe, ist die Verwendung von Log Shipping. Im Falle eines Failovers benötige ich jedoch weiterhin DTC, um auf Node3 verfügbar zu sein. Ich habe festgestellt, dass es verfügbar wird, indem die gruppierte MSDTC-MSSQLSERVERCLU-Instanz von DTC deinstalliert wird, die von Knoten1 und Knoten2 gemeinsam genutzt wird. Nach dem Entfernen kann ich eine LocalDTC-Instanz auf Node3 einrichten und konfigurieren. Danach kann ich die gruppierte MSDTC-MSSQLSERVERCLU-Instanz erneut installieren. Die Installationsreihenfolge in dieser Reihenfolge scheint zu funktionieren. Ich bin jetzt schon eine Weile so gelaufen und habe keine negativen Auswirkungen festgestellt. Anscheinend funktioniert dies auch für die Ausführung einer AlwaysOn-Verfügbarkeitsgruppe. Ich verstehe, dass verteilte Transaktionen in einem AG-Failover nicht erhalten bleiben würden. Ich brauche nur neue, um nach dem Failover zu funktionieren. Aber ich habe

Elijah W. Gagne
quelle

Antworten:

15

Elijah. Hier gibt es zwei getrennte Fragen:

1. Wird DTC mit AlwaysOn-Verfügbarkeitsgruppen unterstützt?

Wie Microsoft in großen Buchstaben sagt, nein.Ich verstehe vollkommen, dass Sie es trotzdem versuchen möchten, aber denken Sie daran, dass Sie jetzt etwas in Produktion bringen, das Microsoft einfach nicht unterstützt, UND Sie verwenden zwei separate Nischenfunktionen (AGs und DTC) zusammen. Wenn irgendetwas schief geht, wirst du in einer Welt voller Verletzungen sein. Das ist einfach nichts, woran ich jemals denken würde, wenn ich es in der Produktion versuchen würde.

Denken Sie daran, dass Sie, wenn Ihre Manager feststellen, dass Sie Microsoft speziell in großen Buchstaben implementiert haben, "SIE KÖNNEN DAS NICHT TUN", und bei jeder Art von Störung Microsoft anrufen müssen, um Support zu erhalten habe ein paar hässliche Erklärungen zu machen.

2. Wie sollte der DTC in einem Cluster mit mehreren Knoten und mehreren Subnetzen konfiguriert werden?

Lesen Sie den Beitrag von Allan Hirt zum Konfigurieren von DTC mit mehreren Instanzen von SQL Server in einem Cluster und stellen Sie sicher, dass Sie auch alle Links im Beitrag lesen.

Brent Ozar
quelle
Tolle Infos in Allan Hirts Beitrag. Ihre Warnung hat mich überzeugt, dass ich Pech habe und das nicht kann
Elijah W. Gagne