SQL Server AlwaysOn Availability Groups is een technologie die in eerste instantie door Microsoft is uitgebracht met SQL Server 2012.
Het belangrijkste concept, is dat je je data op meer dan één locatie tegelijk beschikbaar hebt. Daartoe heb je groepen databases die primaire replica’s en secundaire replica’s hebben. Deze replica’s worden op verschillende servers gehost en kunnen op twee manieren worden gesynchroniseerd:
- Asynchronous-Commit Availability Mode
- Synchronous-Commit Availability Mode
Availability Groups Asynchronous-Commit Mode
Bij asynchronous-commit mode wordt de secundaire replica nooit volledig gesynchroniseerd met de primaire replica. De reden hiervoor is dat door de asynchrone commit aard, elke secundaire database op elk punt achter kan lopen. Dit betekent dat als je de asynchrone-commit modus gebruikt en een geforceerde failover uitvoert (dit is de enige vorm van failover die je kunt uitvoeren), het zeer goed mogelijk is om data verlies te hebben.
Availability Groups Synchronous-Commit Mode
Met de synchrone commit modus, na te zijn toegevoegd aan een beschikbaarheidsgroep, haalt een secundaire database de corresponderende database in en komt in de “gesynchroniseerde” staat. Voorwaarde hiervoor is natuurlijk dat de gegevenssynchronisatie (en dus de gegevensverplaatsing) doorgaat en om geen enkele reden wordt gestopt (d.w.z. netwerkproblemen, schijfruimteproblemen, enz.). Als de datasynchronisatie doorgaat en de synchroon-commit modus wordt gebruikt, dan is elke transactie die in een bepaalde primaire database wordt vastgelegd, ook in de secundaire database vastgelegd.
Voorbeeld van een SQL Server Always On Availability Groups Architectuur
Het onderstaande diagram illustreert een setup van een 2-node replica met SQL Server Always On Availability Groups.
Laten we eens verder praten over de concepten die in het bovenstaande architectuurdiagram worden geïllustreerd.
Discussie en aanbevelingen
Eén ding is heel belangrijk om op te merken, en dat is dat, gebaseerd op de Availability Groups-architectuur, elke replica zijn eigen dedicated opslag heeft, dit is tenslotte de manier om uw gegevens op meerdere locaties beschikbaar te hebben. Dit is gebaseerd op het principe van redundantie.
Ik heb een geo-cluster met 2 nodes op 2 verschillende sites, Site A en Site B. Op elke site, heb ik een replica van mijn SQL Server Availability Groups. In het bovenstaande voorbeeld heb ik op Site A mijn primaire replica’s, en op Site B mijn secundaire replica’s. Zoals eerder besproken, kunnen mijn replica’s worden gesynchroniseerd met synchrone of asynchrone commit.
Een ander belangrijk ding om op te merken, is dat als je echt hoge beschikbaarheid wilt bereiken, je een derde site nodig hebt om als een File Share Witness te dienen. Daarom heb ik in mijn bovenstaande diagram een derde site opgenomen, namelijk Site C, die een file share biedt om als File Share Witness voor het geo-cluster te worden gebruikt.
Hoe verbind ik mijn applicatie met een database in een SQL Server Availability Group?
Als je nieuw bent met SQL Server Availability Groups vraag je je misschien af: “Hoe kan mijn applicatie verbinding maken met de database?”. Nou, maak u geen zorgen want dit is heel eenvoudig. Elke Availability Group heeft zijn eigen listener (een paar virtuele netwerknamen en virtuele IP’s) die u moet instellen tijdens het aanmaken van een Availability Group. In de connection string configuratie voor je applicatie moet je die listener naam/IP en zijn poortnummer invoeren om je applicatie in staat te stellen de database(s) in de specifieke beschikbaarheidsgroep te “zien”. Daarna is de onderliggende hoge beschikbaarheids architectuur transparant voor uw applicatie.
Een belangrijke opmerking hier, u wordt geadviseerd om alleen Availability Groups voor uw oplossing te gebruiken als uw oplossing/applicatie deze hoge beschikbaarheids architectuur ondersteunt.
Wat gebeurt er tijdens een failover?
Een failover in een SQL Server Availability Groups architectuur is anders (en sneller) dan een failover in een traditionele SQL Server Failover Cluster Instance (FCI). Het grote verschil is dat wanneer er een failover plaatsvindt voor een SQL Server Availability Group, het enige dat van eigenaar verandert, de listener is. Dat betekent dat na de failover, de listener van de specifieke beschikbaarheidsgroep zal wijzen naar de andere replica, omdat die replica zojuist de nieuwe primaire replica is geworden en de andere (die tot dat moment de primaire was) de secundaire replica is geworden. Dit alles veronderstelt natuurlijk dat beide replica’s gesynchroniseerd zijn.
Conclusie
Zoals u kunt zien uit bovenstaande discussie en voorbeeld, maken al deze zaken SQL Server Always On tot een zeer krachtige high-availability oplossing die zeker overwogen moet worden bij het ontwerpen van actief-actieve datacenters.
Tot slot, merk op dat het bovenstaande een vereenvoudigd voorbeeld was, om u te helpen de basis van SQL Server Availability Groups te begrijpen en hoe zij bijdragen aan het hebben van hoog beschikbare SQL Server instances.
Met het SQL Server Always On Availability Groups aanbod, kunt u geavanceerde hoog beschikbare database oplossingen bouwen met meer dan 2 sites en zo een echt hoog beschikbare infrastructuur hebben.
In volgende artikelen zullen we meer onderwerpen bespreken over SQL Server Always On Availability Groups, dus blijf op de hoogte!
Versterk uw SQL Server Administratie Vaardigheden – Schrijf u in voor onze Online Cursus!
Als u echt geavanceerde SQL Server beheertechnieken wilt leren, dan moet u onze on-demand online cursus “Essential SQL Server Administration Tips” volgen (speciale beperkte tijdskorting inbegrepen in de link).
Via de cursus leert u essentiële hands-on SQL Server Beheer tips over SQL Server onderhoud, beveiliging, performance, integratie, foutafhandeling en meer. Veel live demonstraties en downloadbare bronnen inbegrepen!
Inschrijf nu met korting!
Belangrijke online cursussen:
- Boost SQL Server Database Performance met In-Memory OLTP
- Essential SQL Server Administration Tips
- SQL Server Fundamentals – SQL Database for Beginners
- Essential SQL Server Development Tips for SQL Developers
- The Philosophy and Fundamentals of Computer Programming
- .NET Programmeren voor Beginners – Windows Forms met C#
- Inleiding tot Data Science en SQL Server Machine Learning
- Inleiding tot Azure SQL Database voor Beginners
- SQL Server 2019: What’s New – New and Enhanced Features
- Entity Framework: Aan de slag – Complete Beginners Gids
- Hoe gegevens te importeren en exporteren in SQL Server Databases
- Leer hoe SQL Server te installeren en te gebruiken in 30 minuten
- Een gids over hoe een succesvolle Blog te starten en te gelde te maken
Gerelateerde SQL Server Administratie Artikelen:
- Essential SQL Sever Administration Tips
- How to Patch a Standalone SQL Server Instance
- The SQL Server Browser Service and UDP Port 1434
- The Maximum Number of Concurrent Connections Setting in SQL Server
- Top 10 SQL Server DBA Dagelijkse Taken Lijst
- Er is geen SQL Server Failover Cluster beschikbaar om aan deel te nemen
- Een SQL Server Database Backup versleutelen
- …meer
Beoordeel dit artikel: (2 stemmen, gemiddelde: 5.00 van 5)