Availability Groups en DTC/cross-database transactions

Veel applicaties maken gebruik van verschillende databases die onderling of in code aan elkaar gekoppeld zijn. In de loop van de tijd kan een geheel aan cross-database queries en stored-procedures zijn ontstaan die prima werken in een omgeving met een enkele databaseserver of in een databasecluster (met shared storage tussen de nodes). Migratie naar een hoog-beschikbare SQL Server-omgeving is bij veel bedrijven een wens en AlwaysOn Availability Groups zijn in veel gevallen een uitstekende keuze.

Installatie en configuratie van AlwaysOn Availability Groups lijkt eenvoudig en heeft veel voordelen, maar kan tot onverwachte problemen leiden waar al veel bedrijven (te) laat achter zijn gekomen. Vandaar deze update.

Ondersteuning van Availabity Groups binnen SQL Server en zg. cross-database en/of distributed transactions

SQL Server 2014 en ouder
Geen ondersteuning en grote kans op dataverlies en corruptie zonder dat dat tijdig ontdekt of gemeld wordt.

SQL Server 2016
Cross-database transactions en MSDTC-transacties worden beperkt en onder strikte voorwaarden ondersteund. Lees het volgende MSDN-artikel om onverwachte verrassingen te voorkomen: https://msdn.microsoft.com/en-us/library/ms366279.aspx

SQL Server 2017
MSDTC-transacties worden bijna volledig ondersteund. Cross-database transactions ook, maar allebei met duidelijke beperkingen bij databasemirroring en (dus ook) availabilitygroups. Meer informatie: https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/transactions-always-on-availability-and-database-mirroring