Problem: Jak mogę uruchomić Koordynatora transakcji rozproszonych (DTC) na wszystkich serwerach w grupie AlwaysOn Availability Group (AG)? NIE muszę utrzymywać transakcji związanych z przełączaniem awaryjnym / przełączaniem.
Instalacja: Mam Windows Failover Cluster (WSFC) z trzema serwerami Windows 2008 R2, na których wszystkie działają z SQL 2012. Dwa serwery znajdują się w jednym centrum danych i są częścią klastra Failover AlwaysOn (FCI), podczas gdy trzeci serwer jest w drugie centrum danych. WSFC to klaster obejmujący wiele podsieci. Oto szkic konfiguracji:
Udało mi się zainstalować i skonfigurować DTC do pracy między dwoma węzłami FCI, ponieważ są one w tej samej podsieci i współużytkują pamięć. Skonfigurowałem kilka AG i działały dobrze. Ten zrzut ekranu pokazuje kod DTC zainstalowany w FCI:
Ten zrzut ekranu pokazuje, że mogę skonfigurować DTC na jednym z węzłów FCI (w zależności od tego, który jest aktywny):
Chciałbym przeprowadzić migrację aplikacji korzystającej z DTC do tego klastra i użyć AG. Czytałem, że DTC nie jest obsługiwany przez AG ( odniesienie ). Nie udało mi się znaleźć sposobu na skonfigurowanie DTC na trzecim węźle w drugim centrum danych. Kiedy próbuję skonfigurować DTC na trzecim węźle, wydaje się on niedostępny, jak pokazano na tym zrzucie ekranu:
W darmowej liście kontrolnej konfiguracji PDF Brenta Ozara dla grup dostępności wymienia:
Instalacja klastra ...
29. Jeśli w grę wchodzi FCI, skonfiguruj DTC zgodnie z decyzjami sekcji planowania.
W komentarzach do SQL Server 2012 AlwaysOn Availability Groups Rock Brent mówi, że „... nic się nie zmienia, gdy AG są w grze. Pamiętaj tylko, że bazy danych w grupie dostępności nie obsługują spójności transakcyjnej, gdy nie udało się połączyć z inną repliką. .. ”
Wydaje się, że DTC może być stosowany w grupach dostępności, o ile rozumiesz, że transakcje nie będą utrzymywane przy przejściu na AG. Nie potrzebowałbym go do obsługi transakcji z węzłów FCI. Potrzebowałbym tylko DTC dostępnego dla aplikacji do użycia w przypadku katastrofalnej katastrofy (gdy straciłem swoje główne centrum danych).
Jak skonfigurować DTC na moim trzecim węźle? Czy może po prostu nie mam szczęścia, jeśli chodzi o używanie AG i aplikacji, która potrzebuje DTC?
AKTUALIZACJA: Rozwiązaniem, na którym się zdecydowałem, jest użycie Log Log. Jednak w przypadku przełączenia awaryjnego nadal potrzebuję DTC, aby był dostępny w Node3. Odkryłem, że staje się on dostępny przez odinstalowanie klastrowanej instancji MSDTC-MSSQLSERVERCLU DTC, która jest współdzielona między Node1 i Node2. Po usunięciu mogę skonfigurować i skonfigurować instancję LocalDTC w Node3. Następnie mogę ponownie zainstalować klastrowaną instancję MSDTC-MSSQLSERVERCLU. Wydaje się, że wykonanie sekwencji instalacyjnej w tej kolejności działa. Tak biegnę już od jakiegoś czasu i nie odkryłem żadnych złych efektów. Wygląda na to, że działałoby to również w przypadku prowadzenia grupy AlwaysOn Availability Group. Rozumiem, że transakcje rozproszone nie zostałyby zachowane w trybie przełączania awaryjnego AG, potrzebowałbym tylko nowych do pracy po przełączeniu awaryjnym. Ale ja nie mam