AlwaysOn AG, DTC con failover


14

Problema: come posso eseguire Distributed Transaction Coordinator (DTC) su tutti i server in un gruppo di disponibilità AlwaysOn (AG)? NON ho bisogno di mantenere le transazioni su eventi di failover / switchover.

Installazione: ho un Windows Failover Cluster (WSFC) con tre server Windows 2008 R2 in cui sono tutti in esecuzione SQL 2012. Due server si trovano in un data center e fanno parte di un AlwaysOn Failover Cluster (FCI), mentre il terzo server è in un secondo data center. WSFC è un cluster multi-subnet. Ecco uno schizzo del setup: inserisci qui la descrizione dell'immagine

Sono stato in grado di installare e configurare DTC per funzionare tra i due nodi FCI perché si trovano sulla stessa sottorete e condividono l'archiviazione. Ho configurato un paio di AG e hanno funzionato bene. Questa schermata mostra DTC installato su FCI:

inserisci qui la descrizione dell'immagine

Questa schermata mostra che posso configurare DTC su uno dei nodi FCI (qualunque sia attivo): inserisci qui la descrizione dell'immagine

Vorrei migrare un'applicazione che utilizza DTC su questo cluster e utilizzare un AG. Ho letto che DTC non è supportato con AG ( riferimento ). Non sono stato in grado di trovare un modo per configurare DTC sul terzo nodo nel secondo centro dati. Quando provo a configurare DTC sul terzo nodo, sembra non essere disponibile, come mostrato in questo screenshot:

inserisci qui la descrizione dell'immagine

Nel PDF dell'elenco di controllo per l' installazione gratuita di Brent Ozar per i gruppi di disponibilità, elenca:

Installazione del cluster ...

29. Se è coinvolta una FCI, configurare DTC secondo le decisioni della sezione Pianificazione.

Nei commenti sui gruppi di disponibilità AlwaysOn di SQL Server 2012, Rock Brent afferma che "... non cambia nulla quando sono in gioco gli AG. Basta tenere presente che i database di un gruppo di disponibilità non supportano la coerenza transazionale quando si esegue il failover su un'altra replica. .."

Ciò sembra che DTC possa essere utilizzato nei gruppi di disponibilità purché si capisca che le transazioni non verranno gestite in una commutazione AG. Non ne avrei bisogno per mantenere le transazioni dai nodi FCI. Avrei solo bisogno di DTC disponibile per l'applicazione da utilizzare in caso di un disastro catastrofico (dove ho perso il mio data center primario).

Come configuro DTC sul mio terzo nodo? Oppure, sono solo sfortunato quando si tratta di utilizzare AG e un'applicazione che necessita di DTC?

AGGIORNAMENTO: La soluzione su cui ho optato è utilizzare Log Shipping. Tuttavia, in caso di failover, ho ancora bisogno che DTC sia disponibile su Node3. Ho scoperto che diventa disponibile disinstallando l'istanza cluster MSDTC-MSSQLSERVERCLU di DTC condivisa tra Nodo1 e Nodo2. Una volta rimosso, posso installare e configurare un'istanza LocalDTC su Node3. Successivamente, posso reinstallare l'istanza MSDTC-MSSQLSERVERCLU in cluster. Fare la sequenza di installazione in quell'ordine sembra funzionare. Ho corso così per un po 'di tempo e non ho scoperto effetti negativi. Sembra che funzionerebbe anche per l'esecuzione di un gruppo di disponibilità AlwaysOn. Comprendo che le transazioni distribuite non verrebbero conservate in un failover di AG, avrei solo bisogno di nuove per funzionare dopo il failover. Ma io non ho

Risposte:


15

Elia. Ci sono due domande separate qui:

1. DTC è supportato con i gruppi di disponibilità AlwaysOn?

Come dice Microsoft a grandi lettere, no. Capisco perfettamente che vuoi provarlo comunque, ma tieni presente che ora stai mettendo in produzione qualcosa che Microsoft semplicemente non supporterà, e stai usando insieme due funzionalità di nicchia separate (AG e DTC). Se qualcosa va storto, sarai in un mondo ferito. Questo non è qualcosa che avrei mai pensato di provare in produzione.

Tieni presente che se i tuoi manager scoprono che hai implementato qualcosa che Microsoft dice specificamente a grandi lettere, "NON PUOI FARE QUESTO", e hai qualsiasi tipo di interruzione in cui devi chiamare Microsoft per il supporto, stai per ho delle brutte spiegazioni da fare.

2. Come dovrebbe essere configurato DTC in un cluster multi-nodo, multi-sottorete?

Leggi il post di Allan Hirt sulla configurazione di DTC con più istanze di SQL Server in un cluster e assicurati di leggere anche tutti i collegamenti nel post.


Grandi informazioni nel post di Allan Hirt. Il tuo avvertimento mi ha convinto che sono sfortunato e non posso farlo
Elija W. Gagne il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.