Azure-quickstartsjablonen gebruiken om een beschikbaarheidsgroep voor SQL Server op Azure VM te configureren

Van toepassing op: SQL Server op Azure VM

Fooi

Er zijn veel methoden om een beschikbaarheidsgroep te implementeren. Vereenvoudig uw implementatie en elimineer de noodzaak van een Azure Load Balancer of gedistribueerde netwerknaam (DNN) voor uw AlwaysOn-beschikbaarheidsgroep door uw virtuele SQL Server-machines (VM's) te maken in meerdere subnetten binnen hetzelfde virtuele Azure-netwerk. Als u uw beschikbaarheidsgroep al in één subnet hebt gemaakt, kunt u deze migreren naar een omgeving met meerdere subnetten.

In dit artikel wordt beschreven hoe u de Azure-quickstartsjablonen gebruikt om de implementatie van een AlwaysOn-beschikbaarheidsgroepconfiguratie voor virtuele SQL Server-machines (VM's) gedeeltelijk te automatiseren binnen één subnet in Azure. In dit proces worden twee Azure-quickstartsjablonen gebruikt:

Sjabloon Omschrijving
sql-vm-ag-setup Hiermee maakt u het Windows-failovercluster en voegt u de SQL Server-VM's eraan toe.
sql-vm-aglistener-setup Hiermee maakt u de listener voor de beschikbaarheidsgroep en configureert u de interne load balancer. Deze sjabloon kan alleen worden gebruikt als het Windows-failovercluster is gemaakt met de installatiesjabloon 101-sql-vm-ag-setup .

Andere onderdelen van de configuratie van de beschikbaarheidsgroep moeten handmatig worden uitgevoerd, zoals het maken van de beschikbaarheidsgroep en het maken van de interne load balancer. Dit artikel bevat de reeks geautomatiseerde en handmatige stappen.

Hoewel in dit artikel de Azure-quickstartsjablonen worden gebruikt om de omgeving van de beschikbaarheidsgroep te configureren, is het ook mogelijk om dit te doen met behulp van Azure Portal, PowerShell of de Azure CLI, of handmatig .

Notitie

Het is nu mogelijk om uw oplossing voor beschikbaarheidsgroepen te verplaatsen naar SQL Server op Azure-VM's met behulp van Azure Migrate. Zie Beschikbaarheidsgroep migreren voor meer informatie.

Vereisten

Als u de installatie van een AlwaysOn-beschikbaarheidsgroep wilt automatiseren met behulp van quickstart-sjablonen, moet u de volgende vereisten hebben:

Machtigingen

De volgende machtigingen zijn nodig om de AlwaysOn-beschikbaarheidsgroep te configureren met behulp van Azure-quickstartsjablonen:

  • Een bestaand domeingebruikersaccount met de machtiging Computerobject maken in het domein. Een domeinbeheerdersaccount heeft bijvoorbeeld doorgaans voldoende machtigingen (bijvoorbeeld: account@domain.com). Dit account moet ook deel uitmaken van de lokale beheerdersgroep op elke VIRTUELE machine om het cluster te maken.
  • Het domeingebruikersaccount waarmee SQL Server wordt beheerd.

Cluster maken

Nadat uw SQL Server-VM's zijn geregistreerd bij de SQL IaaS Agent-extensie, kunt u uw SQL Server-VM's toevoegen aan SqlVirtualMachineGroups. Deze resource definieert de metagegevens van het Windows-failovercluster. Metagegevens omvatten de versie, editie, volledig gekwalificeerde domeinnaam, Active Directory-accounts voor het beheren van zowel het cluster als SQL Server en het opslagaccount als de cloudwitness.

Als u SQL Server-VM's toevoegt aan de resourcegroep SqlVirtualMachineGroups , wordt de Windows Failover Cluster-service opgestart om het cluster te maken en deze SQL Server-VM's vervolgens aan dat cluster toe te voegen. Deze stap wordt geautomatiseerd met de quickstartsjabloon 101-sql-vm-ag-setup . U kunt deze implementeren met behulp van de volgende stappen:

  1. Ga naar de quickstartsjabloon sql-vm-ag-setup. Selecteer vervolgens Implementeren in Azure om de quickstart-sjabloon in Azure Portal te openen.

  2. Vul de vereiste velden in om de metagegevens voor het Windows-failovercluster te configureren. U kunt de optionele velden leeg laten.

    In de volgende tabel ziet u de benodigde waarden voor de sjabloon:

    Veld Waarde
    Abonnement Het abonnement waarin uw SQL Server-VM's bestaan.
    Resourcegroep De resourcegroep waarin uw SQL Server-VM's zich bevinden.
    Naam van failovercluster De gewenste naam voor uw nieuwe Windows-failovercluster.
    Bestaande vm-lijst De VIRTUELE SQL Server-machines waaraan u wilt deelnemen aan de beschikbaarheidsgroep en die deel uitmaken van dit nieuwe cluster. Scheid deze waarden met een komma en een spatie (bijvoorbeeld : SQLVM1, SQLVM2).
    SQL Server-versie De SQL Server-versie van uw SQL Server-VM's. Selecteer deze in de vervolgkeuzelijst. Momenteel worden alleen installatiekopieën van SQL Server 2016 en SQL Server 2017 ondersteund.
    Bestaande Fully Qualified Domain Name De bestaande FQDN voor het domein waarin uw SQL Server-VM's zich bevinden.
    Bestaand domeinaccount Een bestaand domeingebruikersaccount met de machtiging Computerobject maken in het domein als de CNO wordt gemaakt tijdens de sjabloonimplementatie. Een domeinbeheerdersaccount heeft bijvoorbeeld doorgaans voldoende machtigingen (bijvoorbeeld: account@domain.com). Dit account moet ook deel uitmaken van de lokale beheerdersgroep op elke VIRTUELE machine om het cluster te maken.
    Wachtwoord voor domeinaccount Het wachtwoord voor het eerder genoemde domeingebruikersaccount.
    Bestaand SQL-serviceaccount Het domeingebruikersaccount waarmee de SQL Server-service wordt beheerd tijdens de implementatie van de beschikbaarheidsgroep (bijvoorbeeld: account@domain.com).
    Sql-servicewachtwoord Het wachtwoord dat wordt gebruikt door het domeingebruikersaccount waarmee SQL Server wordt beheerd.
    Naam van cloudwitness Een nieuw Azure-opslagaccount dat wordt gemaakt en gebruikt voor de cloudwitness. U kunt deze naam wijzigen.
    _artifacts locatie Dit veld is standaard ingesteld en mag niet worden gewijzigd.
    SaS-token voor _artifacts locatie Dit veld is opzettelijk leeg gelaten.
  3. Als u akkoord gaat met de voorwaarden, schakelt u het selectievakje Ik ga akkoord met de bovenstaande voorwaarden in. Selecteer Vervolgens Kopen om de implementatie van de quickstart-sjabloon te voltooien.

  4. Als u uw implementatie wilt bewaken, selecteert u de implementatie in het belpictogram Meldingen in de bovenste navigatiebanner of gaat u naar de resourcegroep in Azure Portal. Selecteer Implementaties onder Instellingen en kies de implementatie van Microsoft.Template .

Notitie

Referenties die tijdens de sjabloonimplementatie worden opgegeven, worden alleen opgeslagen voor de lengte van de implementatie. Nadat de implementatie is voltooid, worden deze wachtwoorden verwijderd. U wordt gevraagd deze opnieuw op te geven als u meer SQL Server-VM's aan het cluster toevoegt.

Quorum configureren

Hoewel de schijfwitness de meest tolerante quorumoptie is, is er een gedeelde Azure-schijf vereist die enkele beperkingen voor de beschikbaarheidsgroep oplegt. Als zodanig is de cloudwitness de aanbevolen quorumoplossing voor clusters die beschikbaarheidsgroepen hosten voor SQL Server op Azure-VM's.

Als u een even aantal stemmen in het cluster hebt, configureert u de quorumoplossing die het beste past bij uw bedrijfsbehoeften. Zie Quorum met SQL Server-VM's voor meer informatie.

Cluster valideren

Om een failovercluster te kunnen ondersteunen door Microsoft, moet het clustervalidatie doorgeven. Maak verbinding met de VIRTUELE machine met behulp van uw voorkeursmethode, zoals Remote Desktop Protocol (RDP) en controleer of uw cluster de validatie doorstaat voordat u verdergaat. Als u dit niet doet, blijft uw cluster in een niet-ondersteunde status.

U kunt het cluster valideren met failoverclusterbeheer (FCM) of met de volgende PowerShell-opdracht:

Test-Cluster –Node ("<node1>","<node2>") –Include "Inventory", "Network", "System Configuration"

Beschikbaarheidsgroep maken

Maak handmatig de beschikbaarheidsgroep zoals u dat normaal zou doen met behulp van SQL Server Management Studio, PowerShell of Transact-SQL.

Belangrijk

Maak op dit moment geen listener, omdat de quickstartsjabloon 101-sql-vm-aglistener-setup dat automatisch doet in stap 4.

Load balancer maken

Notitie

Implementaties van beschikbaarheidsgroepen naar meerdere subnetten vereisen geen load balancer. In een omgeving met één subnet kunnen klanten die SQL Server 2019 CU8 en hoger in Windows 2016 en hoger gebruiken, de traditionele VNN-listener (Virtual Network Name) en Azure Load Balancer vervangen door een DNN-listener (gedistribueerde netwerknaam). Als u een DNN wilt gebruiken, slaat u alle zelfstudiestappen over waarmee Azure Load Balancer voor uw beschikbaarheidsgroep wordt geconfigureerd.

De listener van de AlwaysOn-beschikbaarheidsgroep vereist een intern exemplaar van Azure Load Balancer. De interne load balancer biedt een 'zwevend' IP-adres voor de listener van de beschikbaarheidsgroep waarmee snellere failover en opnieuw verbinding kunnen worden gemaakt. Als de SQL Server-VM's in een beschikbaarheidsgroep deel uitmaken van dezelfde beschikbaarheidsset, kunt u een Basic-load balancer gebruiken. Anders moet u een Standard-load balancer gebruiken.

Belangrijk

De interne load balancer moet zich in hetzelfde virtuele netwerk bevinden als de SQL Server VM-exemplaren.

U hoeft alleen de interne load balancer te maken. In stap 4 verwerkt de quickstartsjabloon 101-sql-vm-aglistener-setup de rest van de configuratie (zoals de back-endpool, statustest en taakverdelingsregels).

  1. Open in Azure-portal de resourcegroep die de virtuele SQL Server-machines omvat.

  2. Selecteer Toevoegen in de resourcegroep.

  3. Zoek naar load balancer. Selecteer Load Balancer in de zoekresultaten, die door Microsoft wordt gepubliceerd.

  4. Selecteer Maken op de blade Load Balancer.

  5. Configureer de taakverdeler in het dialoogvenster Taakverdeler maken als volgt:

    Instelling Waarde
    Naam Voer een tekstnaam in die de load balancer vertegenwoordigt. Voer bijvoorbeeld sqlLB in.
    Type Intern: De meeste implementaties maken gebruik van een interne load balancer, waardoor toepassingen binnen hetzelfde virtuele netwerk verbinding kunnen maken met de beschikbaarheidsgroep.
    Extern: Hiermee kunnen toepassingen verbinding maken met de beschikbaarheidsgroep via een openbare internetverbinding.
    Virtueel netwerk Selecteer het virtuele netwerk waarin de SQL Server-exemplaren zich bevinden.
    Subnet Selecteer het subnet waarin de SQL Server-exemplaren zich bevinden.
    IP-adrestoewijzing Statisch
    Privé IP-adres Geef een beschikbaar IP-adres op uit het subnet.
    Abonnement Als u meerdere abonnementen hebt, wordt dit veld mogelijk weergegeven. Selecteer het abonnement dat u aan deze resource wilt koppelen. Het is normaal gesproken hetzelfde abonnement als alle resources voor de beschikbaarheidsgroep.
    Resourcegroep Selecteer de resourcegroep waarin de SQL Server-exemplaren zich bevinden.
    Locatie Selecteer de Azure-locatie waar de SQL Server-exemplaren zich bevinden.
  6. Selecteer Maken.

Belangrijk

De openbare IP-resource voor elke SQL Server-VM moet een standard-SKU hebben die compatibel is met de Standard-load balancer. Als u de SKU van de openbare IP-resource van uw VIRTUELE machine wilt bepalen, gaat u naar de resourcegroep, selecteert u uw openbare IP-adresresource voor de SQL Server-VM en zoekt u de waarde onder SKU in het deelvenster Overzicht.

Listener maken

Maak de listener voor de beschikbaarheidsgroep en configureer de interne load balancer automatisch met behulp van de quickstartsjabloon 101-sql-vm-aglistener-setup . Met de sjabloon wordt de resource Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/AvailabilityGroupListener ingericht. De quickstartsjabloon 101-sql-vm-aglistener-setup , via de SQL IaaS Agent-extensie, voert de volgende acties uit:

  • Hiermee maakt u een nieuwe front-end-IP-resource (op basis van de IP-adreswaarde die tijdens de implementatie is opgegeven) voor de listener.
  • Hiermee configureert u de netwerkinstellingen voor het cluster en de interne load balancer.
  • Hiermee configureert u de back-endpool voor de interne load balancer, de statustest en de taakverdelingsregels.
  • Hiermee maakt u de listener voor de beschikbaarheidsgroep met het opgegeven IP-adres en de naam.

Notitie

U kunt 101-sql-vm-aglistener-setup alleen gebruiken als het Windows-failovercluster is gemaakt met de sjabloon 101-sql-vm-ag-setup.

Ga als volgt te werk om de interne load balancer te configureren en de listener voor beschikbaarheidsgroepen te maken:

  1. Ga naar de quickstartsjabloon sql-vm-aglistener-setup en selecteer Implementeren in Azure om de quickstart-sjabloon in Azure Portal te starten.

  2. Vul de vereiste velden in om de interne load balancer te configureren en maak de listener van de beschikbaarheidsgroep. U kunt de optionele velden leeg laten.

    In de volgende tabel ziet u de benodigde waarden voor de sjabloon:

    Veld Waarde
    Resourcegroep De resourcegroep waarin uw SQL Server-VM's en beschikbaarheidsgroep bestaan.
    Naam van bestaand failovercluster De naam van het cluster waaraan uw SQL Server-VM's zijn gekoppeld.
    Bestaande SQL-beschikbaarheidsgroep De naam van de beschikbaarheidsgroep waarvan uw SQL Server-VM's deel uitmaken.
    Bestaande vm-lijst De namen van de SQL Server-VM's die deel uitmaken van de eerder genoemde beschikbaarheidsgroep. Scheid de namen met een komma en een spatie (bijvoorbeeld: SQLVM1, SQLVM2).
    Luisteraar De DNS-naam die u wilt toewijzen aan de listener. Standaard geeft deze sjabloon de naam 'aglistener' op, maar u kunt deze wijzigen. De naam mag niet langer zijn dan 15 tekens.
    Listenerpoort De poort die u wilt gebruiken voor de listener. Deze poort moet doorgaans de standaardwaarde van 1433 zijn. Dit is het poortnummer dat door de sjabloon wordt opgegeven. Maar als uw standaardpoort is gewijzigd, moet de listenerpoort die waarde gebruiken.
    Ip-adres van listener Het IP-adres dat u wilt gebruiken voor de listener. Dit adres wordt gemaakt tijdens de sjabloonimplementatie, dus geef er een op die nog niet in gebruik is.
    Bestaand subnet De naam van het interne subnet van uw SQL Server-VM's (bijvoorbeeld: standaard). U kunt deze waarde bepalen door naar Resourcegroep te gaan, uw virtuele netwerk te selecteren, Subnetten te selecteren in het deelvenster Instellingen en de waarde onder Naam te kopiëren.
    Bestaande interne load balancer De naam van de interne load balancer die u in stap 3 hebt gemaakt.
    Testpoort De testpoort die u wilt gebruiken voor de interne load balancer. De sjabloon maakt standaard gebruik van 59999, maar u kunt deze waarde wijzigen.
  3. Als u akkoord gaat met de voorwaarden, schakelt u het selectievakje Ik ga akkoord met de bovenstaande voorwaarden in. Selecteer Aanschaffen om de implementatie van de quickstart-sjabloon te voltooien.

  4. Als u uw implementatie wilt bewaken, selecteert u de implementatie in het belpictogram Meldingen in de bovenste navigatiebanner of gaat u naar de resourcegroep in Azure Portal. Selecteer Implementaties onder Instellingen en kies de implementatie van Microsoft.Template .

Notitie

Als de implementatie halverwege mislukt, moet u de zojuist gemaakte listener handmatig verwijderen met behulp van PowerShell voordat u de quickstartsjabloon 101-sql-vm-aglistener-setup opnieuw implementeert.

Listener verwijderen

Als u later de listener van de beschikbaarheidsgroep wilt verwijderen die door de sjabloon is geconfigureerd, moet u de SQL IaaS Agent-extensie doorlopen. Omdat de listener is geregistreerd via de SQL IaaS Agent-extensie, is het verwijderen ervan via SQL Server Management Studio onvoldoende.

De beste methode is om het te verwijderen via de SQL IaaS Agent-extensie met behulp van het volgende codefragment in PowerShell. Als u dit doet, worden de metagegevens van de listener van de beschikbaarheidsgroep verwijderd uit de SQL IaaS Agent-extensie. De listener wordt ook fysiek uit de beschikbaarheidsgroep verwijderd.

# Remove the availability group listener
# example: Remove-AzResource -ResourceId '/subscriptions/a1a11a11-1a1a-aa11-aa11-1aa1a11aa11a/resourceGroups/SQLAG-RG/providers/Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/Cluster/availabilitygrouplisteners/aglistener' -Force
Remove-AzResource -ResourceId '/subscriptions/<SubscriptionID>/resourceGroups/<resource-group-name>/providers/Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/<cluster-name>/availabilitygrouplisteners/<listener-name>' -Force

Algemene fouten

In deze sectie worden enkele bekende problemen en de mogelijke oplossing besproken.

Listener van beschikbaarheidsgroep voor beschikbaarheidsgroep '<AG-Name>' bestaat al De geselecteerde beschikbaarheidsgroep die wordt gebruikt in de Azure-quickstart-sjabloon voor de listener van de beschikbaarheidsgroep bevat al een listener. Deze bevindt zich fysiek binnen de beschikbaarheidsgroep of de metagegevens blijven binnen de SQL IaaS Agent-extensie. Verwijder de listener met behulp van PowerShell voordat u de quickstartsjabloon 101-sql-vm-aglistener-setup opnieuw implementeert.

De verbinding werkt alleen van de primaire replica . Dit gedrag is waarschijnlijk afkomstig van een mislukte sjabloonimplementatie 101-sql-vm-aglistener-setup die de configuratie van de interne load balancer in een inconsistente status heeft verlaten. Controleer of de back-endpool een lijst bevat van de beschikbaarheidsset en of er regels bestaan voor de statustest en voor de taakverdelingsregels. Als er iets ontbreekt, is de configuratie van de interne load balancer een inconsistente status.

Als u dit gedrag wilt oplossen, verwijdert u de listener met behulp van PowerShell, verwijdert u de interne load balancer via Azure Portal en begint u opnieuw bij stap 3.

BadRequest: alleen de lijst met virtuele SQL-machines kan worden bijgewerkt . Deze fout kan optreden wanneer u de sjabloon 101-sql-vm-aglistener-setup implementeert als de listener is verwijderd via SQL Server Management Studio (SSMS), maar niet is verwijderd uit de SQL IaaS Agent-extensie. Als u de listener via SSMS verwijdert, worden de metagegevens van de listener niet verwijderd uit de SQL IaaS Agent-extensie. De listener moet worden verwijderd uit de resourceprovider via PowerShell.

Domeinaccount bestaat niet Deze fout kan twee oorzaken hebben. Het opgegeven domeinaccount bestaat niet of de UPN-gegevens (User Principal Name). De sjabloon 101-sql-vm-ag-setup verwacht een domeinaccount in het UPN-formulier (dat wil user@domain.comgezegd), maar sommige domeinaccounts ontbreken mogelijk. Dit gebeurt meestal wanneer een lokale gebruiker is gemigreerd als het eerste domeinbeheerdersaccount wanneer de server is gepromoveerd naar een domeincontroller of wanneer een gebruiker is gemaakt via PowerShell.

Controleer of het account bestaat. Als dat het geval is, loopt u mogelijk in de tweede situatie. Ga als volgt te werk om dit op te lossen:

  1. Open op de domeincontroller het venster Active Directory: gebruikers en computers via de optie Extra in Serverbeheer.

  2. Ga naar het account door Gebruikers in het linkerdeelvenster te selecteren.

  3. Klik met de rechtermuisknop op het account en selecteer Eigenschappen.

  4. Selecteer het tabblad Account. Als het vak Aanmeldingsnaam van gebruiker leeg is, is dit de oorzaak van uw fout.

    Blank user account indicates missing UPN

  5. Vul het vak Aanmeldingsnaam van gebruiker in zodat deze overeenkomt met de naam van de gebruiker en selecteer het juiste domein in de vervolgkeuzelijst.

  6. Selecteer Toepassen om uw wijzigingen op te slaan en sluit het dialoogvenster door OK te selecteren.

Nadat u deze wijzigingen hebt aangebracht, probeert u de Azure-snelstartsjabloon nogmaals te implementeren.

Volgende stappen

Raadpleeg voor meer informatie: