AlwaysOn AG, DTC z przełączaniem awaryjnym

14

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: wprowadź opis zdjęcia tutaj

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:

wprowadź opis zdjęcia tutaj

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): wprowadź opis zdjęcia tutaj

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:

wprowadź opis zdjęcia tutaj

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

Elijah W. Gagne
źródło

Odpowiedzi:

15

Eliasz Są tutaj dwa osobne pytania:

1. Czy DTC jest obsługiwane przez grupy dostępności AlwaysOn?

Jak mówi wielkimi literami Microsoft, nie. Całkowicie rozumiem, że i tak chcesz go wypróbować, ale pamiętaj, że teraz wprowadzasz do produkcji coś, czego Microsoft po prostu nie będzie obsługiwał, i używasz dwóch osobnych niszowych funkcji razem (AG i DTC). Jeśli coś pójdzie nie tak, znajdziesz się w świecie bólu. To po prostu nie jest coś, o czym nawet pomyślałbym, żeby spróbować w produkcji.

Pamiętaj, że jeśli Twoi menedżerowie dowiedzą się, że wdrożyliście coś, co Microsoft wyraźnie pisze dużymi literami: „NIE MOŻESZ TO ROBIĆ” i masz jakiekolwiek awarie, w których musisz zadzwonić do Microsoft w celu uzyskania pomocy, zamierzasz mam trochę brzydkiego wyjaśnienia.

2. Jak należy skonfigurować DTC w klastrze z wieloma węzłami i wieloma podsieciami?

Przeczytaj post Allana Hirt'a na temat konfigurowania DTC z wieloma wystąpieniami SQL Server w klastrze i przeczytaj również wszystkie linki w poście.

Brent Ozar
źródło
Świetne informacje w poście Allana Hirt'a. Twoje ostrzeżenie przekonało mnie, że nie mam szczęścia i nie mogę tego zrobić
Elijah W. Gagne