SQL Server biedt ons een aantal oplossingen voor hoge beschikbaarheid en noodherstel die helpen om de gegevens die de kritieke systemen bedienen zo lang mogelijk beschikbaar te maken met zo min mogelijk uitvaltijd. Deze oplossingen voor hoge beschikbaarheid en noodherstel van Microsoft SQL Server worden besproken in het artikel SQL Server-transactielogboek en oplossingen voor hoge beschikbaarheid.
In dit artikel laten we zien hoe u een site van een beschikbaarheidsgroep instelt en configureert en configureert om te voldoen aan de bedrijfsvereisten. Maar laten we beginnen met een kort overzicht van de functie Always-on Availability Group om er vertrouwd mee te raken.
Overzicht
SQL Server Always-on Availability Group, geïntroduceerd in SQL Server 2012-versie, is een oplossing voor hoge beschikbaarheid en noodherstel op bedrijfsniveau die is gebouwd op de Windows Server Failover Clustering-functie, waarin een of meerdere databases kunnen fungeren als één beschikbaarheidsgroep en mislukt als een enkele eenheid.
De Beschikbaarheidsgroep is een container voor een set databases die worden gehost in één primaire replica, de lees-schrijfkopie van de databases bevat en gesynchroniseerd met maximaal acht secundaire replica's, die een alleen-lezen kopie van deze databases bevat.
Als alternatief voor de functie voor database-mirroring kan Always-on-beschikbaarheidsgroep worden gebruikt om de belasting van het primaire exemplaar te verminderen door de secundaire replica's te configureren voor het afhandelen van de alleen-lezen werkbelasting en back-upbewerkingen. Op deze manier kan de Always-on Availability Group worden gebruikt om de beschikbaarheid van de databases te verbeteren en het gebruik van SQL Server-bronnen voor alle replica's te verbeteren.
Het synchronisatieproces tussen de replica's van de beschikbaarheidsgroep kan worden uitgevoerd in een van de twee ondersteunde beschikbaarheidsmodi:
- Synchroon-commit modus :In deze beschikbaarheidsmodus wacht de primaire replica totdat de secundaire replica's, maximaal twee synchrone secundaire replica's, bevestigen dat het logboek in hun databasetransactielogboekbestand is geschreven, voordat het wordt vastgelegd in de primaire replica. Deze beschikbaarheidsmodus verhoogt het gegevensbeschikbaarheidsniveau ten opzichte van de transactielatentieprijs.
- Asynchrone commit-modus :Deze beschikbaarheidsmodus wordt voornamelijk gebruikt om te synchroniseren met de replica's voor herstel na noodgevallen, die zijn verspreid over datacenters op afstand, waar de primaire replica niet wacht op de secundaire replica's, om te bevestigen dat het logboek wordt verhard om een transactie vast te leggen aan de primaire kant, waardoor er minder gegevens beschikbaar zijn beschikbaarheidsniveau en minder latentie van transacties.
Het failoverproces van Always-on Availability Groups, waarbij de primaire rol tussen de replica's wordt gewijzigd, kan handmatig worden uitgevoerd door de databasebeheerder of automatisch door de SQL Server zelf in geval van een storing op serverniveau, rekening houdend met het feit dat dit failover zal niet plaatsvinden in het geval van problemen op databaseniveau, zoals databasecorruptie.
Voor elke beschikbaarheidsgroep kan een servernaam worden gemaakt om de clients de mogelijkheid te bieden om rechtstreeks verbinding te maken met de primaire replica of de alleen-lezen replica's zonder de onderliggende SQL Server-instantienamen en -rollen binnen de beschikbaarheidsgroep op te roepen. Deze servernaam wordt de Availability Group Listener . genoemd .
Demoscenario
Na een korte introductie voor de Always-on Availability Group-functie, zijn we klaar om een Availability Group op te zetten en correct te configureren. In deze demo maken we een beschikbaarheidsgroep om de AdventureWorks2017-database te repliceren tussen twee SQL Server-instanties; SQL1 en SQL2, waarbij SQL Server 2017 al op deze servers is geïnstalleerd.
Voor test- en demodoeleinden worden de SQL Server Services in zowel SQL1- als SQL2-instanties uitgevoerd onder het ay\sqladmin-serviceaccount, dat de juiste machtigingen heeft voor deze SQL Server-instanties.
Aan de slag
Zoals vermeld in het overzicht van dit artikel, is de functie Always-on Availability Group gebouwd over de functie Windows Server Failover Cluster. We moeten dus een failover-clustersite maken waarover we de site van de Beschikbaarheidsgroep zullen definiëren.
Maak een failovercluster
Allereerst moeten we ervoor zorgen dat de Failover Clustering-functie is geïnstalleerd op alle replica's die zullen deelnemen aan de Beschikbaarheidsgroep-site. Dit kan worden gedaan door het Server Manager-dashboard op elke replica te openen en de optie Rollen en functies toevoegen te kiezen in het menu Beheren, en vervolgens de Failover Clustering aan te vinken en te installeren. functie van die wizards, zoals hieronder weergegeven:
Nadat u de Failover Cluster-functie hebt geïnstalleerd, opent u de Failover Cluster Manager venster in een van de replica's, met behulp van een geautoriseerd lokaal beheerdersaccount met domeinbeheerdersrechten waarmee het die clusternaam in de actieve map kan maken, en klik op de Cluster maken optie, zoals hieronder:
Vanuit de geopende Cluster-wizard maken , controleer dan de meegeleverde instructies in de Voordat u begint venster en klik op Volgende om door te gaan:
Geef op de volgende pagina de naam of het IP-adres op van de replica's die zullen deelnemen aan de beschikbaarheidsgroep en klik vervolgens op volgende om door te gaan:
Daarna moet u specificeren of u de clustervalidatietest wilt uitvoeren om te valideren dat de bronnen die beschikbaar zijn op deze servers compatibel zijn met de Failover Clustering-functie, voordat u de Failover Cluster maakt of niet. Het wordt altijd aanbevolen om de validatietest bij die stap uit te voeren voordat u probeert de Failover Cluster-site te maken.
Dit leidt u naar de Bevestig een configuratiewizard . Controleer op de eerste pagina van de validatiewizard de instructies van de wizard en klik op Volgende om verder te gaan:
Daarna moet u specificeren of u alle Failover Cluster-validaties wilt uitvoeren, wat de aanbevolen optie is, of specifieke snellere tests wilt selecteren. In deze demo gaan we voor de door Microsoft aanbevolen optie en voeren we alle validatietests uit, en klikken dan op Volgende om door te gaan:
En u kunt de validatietests bekijken die in deze validatiewizard worden uitgevoerd en bevestigen om door te gaan door op Volgende te klikken. , als volgt:
Wanneer het validatieproces is voltooid, kunt u op de knop Rapport bekijken klikken om het resultaat van de validatietest te bekijken of het naar een andere technicus te exporteren om een probleem op te lossen, of direct op Voltooien klikken om het proces voor het maken van clusters te starten, zoals hieronder:
Voorlopig hebben we gecontroleerd of onze servers compatibel zijn met de functievereisten voor Failover Clustering en kunnen we doorgaan met het maken van de Failover Clustering-site. In het Toegangspunt voor het beheren van het cluster venster, geef een unieke naam en IP-adres op voor het failovercluster en klik vervolgens op Volgende om door te gaan:
Bekijk daarna de instellingen voor het maken van clusters die u opgeeft en zorg ervoor dat u verwijdert het vinkje naast Alle in aanmerking komende opslagruimte toevoegen aan het cluster , omdat de functie Always-on-beschikbaarheidsgroep werkt met speciale opslag voor elke server en NIET gedeelde opslag. Als u akkoord gaat met de instellingen, klikt u op Volgende om verder te gaan:
Zodra de Failover Clustering-site met succes is gemaakt, zal de wizard u op de hoogte stellen met een bericht dat de Failover Clustering-site volledig is gemaakt, zoals hieronder:
U kunt controleren of de Failover Cluster-site met succes is gemaakt door de Failover Cluster Manager te openen, die u de gemaakte clustersite en alle componenten van die cluster toont, zoals hieronder wordt weergegeven:
Om de Failover Cluster-site in de beste beschikbaarheidsmodus te houden, moet u het cluster Quorum configureren dat bepaalt wanneer het Failover-cluster online moet worden gehouden of offline moet worden gezet op basis van de stemmen van knooppunten en resources. Om het clusterquorum te configureren, klikt u met de rechtermuisknop op de clusternaam, onder Failover Cluster Manager, en kiest u Configure Cluster Quorum Settings optie uit de Meer acties menu, zoals hieronder. Voor gedetailleerde informatie over de quoruminstellingen die passen bij de functie Always-on-beschikbaarheidsgroep, raadpleegt u de Quorummodi voor Windows-failovercluster in SQL Server Always-on-beschikbaarheidsgroepen:
Always-on-beschikbaarheidsgroepfunctie inschakelen
Nadat we het failovercluster hebben gemaakt, waarover de beschikbaarheidsgroep zal worden gemaakt, moeten we de functie Always-on beschikbaarheidsgroep inschakelen en deze verbinden met de failovercluster-site die zal worden gebruikt.
Om de functie Always-on Availability Group in te schakelen, opent u de SQL Server Configuration Manager -> SQL Server Services, klikt u met de rechtermuisknop op de SQL Server-service en kiest u de optie Eigenschappen. Ga vanuit het eigenschappenvenster van SQL Server Service naar Always-on Availability pagina en controleer de "Altijd beschikbare beschikbaarheidsgroepen inschakelen ", onder de automatisch gedetecteerde Failover Cluster-naam, zoals hieronder weergegeven:
Houd er rekening mee dat deze wijziging moet worden uitgevoerd op alle replica's die deelnemen aan de beschikbaarheidsgroep en van kracht wordt nadat de SQL Server-service opnieuw is opgestart, zoals hieronder:
Nieuwe Always-on-beschikbaarheidsgroep maken
Nadat de functie Always-on Availability Group is ingeschakeld, beginnen we met het maken van de nieuwe Availability Group door het Always-on High Availability-knooppunt onder de SSMS-objectverkenner uit te breiden, vervolgens met de rechtermuisknop op het knooppunt Beschikbaarheidsgroepen te klikken en de optie Nieuw te kiezen. Wizard Beschikbaarheidsgroep , zoals hieronder weergegeven:
De eerste pagina in de wizard Nieuwe beschikbaarheidsgroep is de Introductiepagina, waar u een korte beschrijving kunt vinden van de stappen die onder deze wizard worden uitgevoerd om een nieuwe Beschikbaarheidsgroep aan te maken. Bekijk de verstrekte samenvatting en klik vervolgens op Volgende om door te gaan:
In de Beschikbaarheidsgroepopties specificeren venster, moet u de naam van de Beschikbaarheidsgroep specificeren, het type cluster, gebaseerd op de SQL Server-versie en het besturingssysteem dat op de replica's wordt gebruikt, waar u kunt kiezen uit de Windows Server Failover Clustering , niet-Windows EXTERN cluster of GEEN als er geen cluster wordt gebruikt.
Op deze pagina kunt u ook de Gezondheidsdetectie op databaseniveau . inschakelen optie, die controleert wanneer een database niet langer online is, en de automatische failover van de beschikbaarheidsgroep uitvoert en de gedistribueerde transacties in beschikbaarheidsgroepen per database mogelijk maakt, zoals hieronder getoond:
Daarna moet u de database(s) selecteren die zullen deelnemen aan die Beschikbaarheidsgroep. De wizard controleert de pre-requests voor de database om te worden toegevoegd aan de Beschikbaarheidsgroep, inclusief het Full recovery-model van de database en of er een volledige back-up van die database wordt gemaakt voordat deze wordt toegevoegd. Nadat u aan de vereisten voor de op te nemen database(s) hebt voldaan, vernieuwt u de lijst met databases, controleert u de database en klikt u op Volgende om door te gaan:
Op de volgende pagina, onder de Replica's tabblad, moet u alle SQL Server-replica's toevoegen die zullen deelnemen aan deze Beschikbaarheidsgroep en een kopie hosten van de opgenomen databases. Nadat u de replica's hebt toegevoegd, kunt u maximaal drie instanties kiezen die moeten worden geconfigureerd met de beschikbaarheidsmodus voor synchrone vastlegging en de automatische failover toestaan tussen deze replica's en de rest van replica's die worden geconfigureerd met de modus Asynchrone vastlegging. U kunt ook beslissen of u elke replica wilt configureren als leesbare secundaire voor alleen-lezen verbindingen of leesbare replica's met leesintentie om de alleen-lezen-workload automatisch door de luisteraar te verwerken, zoals hieronder wordt weergegeven:
Controleer op het tabblad Eindpunten de instellingen van de verbindingseindpunten die worden gebruikt voor de communicatie tussen de replica's, waarbij u ervoor moet zorgen dat de gebruikte TCP-poort is ingeschakeld in de firewallregels van alle replica's en dat het opgegeven serviceaccount Verbindingstoestemming op het eindpunt van de replica's, zoals hieronder:
Op het tabblad Back-upvoorkeuren moet u de locatie specificeren waar de back-uptaken worden uitgevoerd in de beschikbaarheidsgroep. Hiermee kunt u een automatische back-up uitvoeren vanaf de secundaire replica als voorkeursoptie, de secundaire als een must, de primaire als een must of bij elke replica. Op basis van deze optie kunt u het onderhoudsplan maken om een back-up te maken van de databases die deelnemen aan de beschikbaarheidsgroep, zoals hieronder:
Vanuit hetzelfde venster kunt u ook de listener-instellingen van de beschikbaarheidsgroep definiëren, onder de pagina Luisteraar of doorgaan zonder de listener voor nu aan te maken en de creatie later uitvoeren. In deze demo zullen we de luisteraar configureren na het aanmaken van de beschikbaarheidsgroep, zoals hieronder getoond:
U kunt ook de pagina Alleen-lezen routering gebruiken om de alleen-lezen routeringslijst te definiëren, die wordt gebruikt om de alleen-lezen werkbelasting binnen de secundairen te regelen. Raadpleeg voor meer informatie Alleen-lezen routering configureren voor een beschikbaarheidsgroep in SQL Server 2016:
Op de volgende pagina moet u het mechanisme specificeren dat zal worden gebruikt voor het initiële gegevenssynchronisatieproces tussen de primaire en secundaire replica's, met de mogelijkheid om de synchronisatie automatisch of handmatig uit te voeren door de secundaire toe te voegen aan de beschikbaarheidsgroep en de databases te synchroniseren later handmatig.
Er zijn twee automatische synchronisatiemethoden beschikbaar in die wizard, de eerste is het specificeren van een gedeelde map om de volledige en transactielogback-ups tijdelijk te kopiëren en het herstel automatisch uit te voeren, wat we hier in deze demo zullen gebruiken, of gebruik een Direct Seeding-methode zonder back-up maken, zoals beschreven in de SQL Server 2016 Always On Availability Group met Direct Seeding:
Om de Volledige database en logback-up . te gebruiken methode, moeten we een gedeelde map maken en de SQL Server-serviceaccounts opgeven voor de lees- en schrijfrechten van de replica's voor die map, zoals hieronder weergegeven:
Daarna voert de wizard Nieuwe beschikbaarheidsgroep een validatiecontrole uit voor alle configuraties voordat verder wordt gegaan met het maken van de beschikbaarheidsgroep. Als er een fout is, kunt u deze direct herstellen, de pagina vernieuwen en op Volgende klikken om verder te gaan:
In de laatste fase geeft de wizard u een samenvatting van alle wizardconfiguraties om deze te bekijken en klikt u vervolgens op Voltooien om te beginnen met het maken van de beschikbaarheidsgroep, zoals hieronder:
Wanneer de wizard is voltooid, toont deze u het resultaat van elke stap en of er een fout is opgetreden. Anders wordt een bericht weergegeven dat de beschikbaarheidsgroep zonder problemen is aangemaakt, zoals hieronder weergegeven:
U kunt ook valideren dat de Always-on-beschikbaarheidsgroep is gemaakt en geconfigureerd met behulp van de SSMS Object Explorer, door te controleren of de deelnemende database(s) in een gesynchroniseerde staat in alle replica's zijn en dat de replica's en databases online zijn onder de Always-on Node met hoge beschikbaarheid, zoals hieronder weergegeven:
U kunt ook verbinding maken met de primaire replica, met het primaire woord naast de naam van de beschikbaarheidsgroep, en de pagina met eigenschappen van de beschikbaarheidsgroep controleren, met de mogelijkheid om dezelfde taken uit te voeren die we hebben uitgevoerd onder de wizard Nieuwe beschikbaarheidsgroep, zoals het toevoegen van nieuwe replica's , het toevoegen van een nieuwe database, het wijzigen van elke replicaconfiguratie, het wijzigen van de back-upvoorkeuren en het definiëren van een alleen-lezen routeringslijst, zoals hieronder weergegeven:
Altijd-aan-beschikbaarheidsgroep-listener maken
De laatste stap bij het configureren van de beschikbaarheidsgroep is het maken van de beschikbaarheidsgroeplistener die wordt gebruikt wanneer verbinding wordt gemaakt met de primaire en secundaire replica's zonder de replicanaam op te geven.
Om de beschikbaarheidsgroeplistener te maken, klikt u met de rechtermuisknop op het knooppunt Beschikbaarheidsgroepluisteraar onder het gemaakte knooppunt van de beschikbaarheidsgroep en kiest u Luisteraar toevoegen optie. Van de geopende Nieuwe beschikbaarheidsgroepluisteraar venster, geef de naam van die luisteraar op, de TCP-poort die zal worden gebruikt om verbinding te maken met die luisteraar en het statische IP-adres dat aan de luisteraar zal worden toegewezen en klik vervolgens op OK om het te creëren. Wanneer de listener met succes is gemaakt, wordt het venster automatisch gesloten en wordt de naam van de luisteraar weergegeven onder het knooppunt Luisteraar, zoals hieronder weergegeven:
Om verbinding te maken met de beschikbaarheidsgroep met behulp van de naam van de luisteraar, geeft u de naam of het IP-adres van de luisteraar op met het TCP-poortnummer in de verbinding met server en deze zal rechtstreeks verbinding maken met het primaire knooppunt, zoals hieronder weergegeven:
Testfailoverproces
Na het testen van de verbinding met de beschikbaarheidsgroep-listener en de replica's, moeten we een belangrijke test uitvoeren voor de failover, om ervoor te zorgen dat de primaire rol zonder problemen tussen de replica's wordt verplaatst en dat de databases bereikbaar en in de gesynchroniseerde status na de failover.
Om een handmatige failover uit te voeren, klikt u met de rechtermuisknop op de naam van de beschikbaarheidsgroep en kiest u de Failover optie, zoals hieronder:
De eerste pagina in de Failover-beschikbaarheidsgroep wizard is de introductiepagina, die een samenvatting geeft van de acties die in die wizard kunnen worden uitgevoerd. Bekijk de inleiding en klik op Volgende om door te gaan:
Selecteer op de volgende pagina welk knooppunt zal fungeren als de nieuwe primaire replica, waarbij u ervoor zorgt dat er geen gegevensverlies optreedt wanneer de failover-bewerking wordt uitgevoerd, en klik vervolgens op Volgende om door te gaan:
Daarna moet u verbinding maken met de nieuwe primaire replica die u selecteert om ervoor te zorgen dat deze replica online en bereikbaar is, zoals hieronder weergegeven:
Bekijk vervolgens uw keuzes in de Failover-wizard op de overzichtspagina en klik op Voltooien om het Failover-proces te starten:
Wanneer de failover is voltooid, bekijkt u de resultatenpagina om er zeker van te zijn dat er geen probleem is tijdens het failoverproces, zoals hieronder:
Vanuit de SSMS Object Explorer wordt de rol van de SQL1-replica direct gewijzigd in Secundair, zoals hieronder weergegeven:
In dit artikel hebben we in detail beschreven welke stappen moeten worden uitgevoerd om het maken van de beschikbaarheidsgroepsite voor te bereiden en hoe u de Always-on Availability Group-site kunt maken en configureren. In het volgende artikel zullen we zien hoe u de problemen kunt oplossen die u kunt tegenkomen met een bestaande Beschikbaarheidsgroepsite. Blijf op de hoogte.