Använda Azure-snabbstartsmallar för att konfigurera en tillgänglighetsgrupp för SQL Server på en virtuell Azure-dator

Gäller för:SQL Server på en virtuell Azure-dator

Dricks

Det finns många metoder för att distribuera en tillgänglighetsgrupp. Förenkla distributionen och eliminera behovet av en Azure Load Balancer eller ett distribuerat nätverksnamn (DNN) för din AlwaysOn-tillgänglighetsgrupp genom att skapa dina virtuella SQL Server-datorer i flera undernät i samma virtuella Azure-nätverk. Om du redan har skapat tillgänglighetsgruppen i ett enda undernät kan du migrera den till en miljö med flera undernät.

Den här artikeln beskriver hur du använder Azure-snabbstartsmallarna för att delvis automatisera distributionen av en AlwaysOn-tillgänglighetsgruppkonfiguration för virtuella SQL Server-datorer i ett enda undernät i Azure. Två Azure-snabbstartsmallar används i den här processen:

Mall Beskrivning
sql-vm-ag-setup Skapar Windows-redundansklustret och ansluter de virtuella SQL Server-datorerna till det.
sql-vm-aglistener-setup Skapar tillgänglighetsgruppens lyssnare och konfigurerar den interna lastbalanseraren. Den här mallen kan bara användas om Windows-redundansklustret skapades med mallen 101-sql-vm-ag-setup .

Andra delar av konfigurationen av tillgänglighetsgruppen måste göras manuellt, till exempel att skapa tillgänglighetsgruppen och skapa den interna lastbalanseraren. Den här artikeln innehåller sekvensen med automatiserade och manuella steg.

Även om den här artikeln använder Azure-snabbstartsmallarna för att konfigurera tillgänglighetsgruppens miljö, är det också möjligt att göra det med hjälp av Azure-portalen, PowerShell eller Azure CLI eller manuellt också.

Kommentar

Nu är det möjligt att lyfta och flytta din tillgänglighetsgruppslösning till SQL Server på virtuella Azure-datorer med Hjälp av Azure Migrate. Mer information finns i Migrera tillgänglighetsgrupp .

Förutsättningar

Om du vill automatisera installationen av en AlwaysOn-tillgänglighetsgrupp med hjälp av snabbstartsmallar måste du ha följande förutsättningar:

Behörigheter

Följande behörigheter krävs för att konfigurera AlwaysOn-tillgänglighetsgruppen med hjälp av Azure-snabbstartsmallar:

  • Ett befintligt domänanvändarkonto som har behörigheten Skapa datorobjekt i domänen. Till exempel har ett domänadministratörskonto vanligtvis tillräcklig behörighet (till exempel: account@domain.com). Det här kontot bör också ingå i den lokala administratörsgruppen på varje virtuell dator för att skapa klustret.
  • Domänanvändarkontot som styr SQL Server.

Skapa kluster

När dina virtuella SQL Server-datorer har registrerats med SQL IaaS Agent-tillägget kan du ansluta dina virtuella SQL Server-datorer till SqlVirtualMachineGroups. Den här resursen definierar metadata för Windows-redundansklustret. Metadata innehåller version, utgåva, fullständigt kvalificerat domännamn, Active Directory-konton för att hantera både klustret och SQL Server och lagringskontot som molnvittne.

Genom att lägga till virtuella SQL Server-datorer i resursgruppen SqlVirtualMachineGroups startas Windows-klustertjänsten för redundanskluster för att skapa klustret och sedan kopplas de virtuella SQL Server-datorerna till klustret. Det här steget automatiseras med snabbstartsmallen 101-sql-vm-ag-setup . Du kan implementera det med hjälp av följande steg:

  1. Gå till snabbstartsmallen sql-vm-ag-setup . Välj sedan Distribuera till Azure för att öppna snabbstartsmallen i Azure-portalen.

  2. Fyll i de obligatoriska fälten för att konfigurera metadata för Windows-redundansklustret. Du kan lämna de valfria fälten tomma.

    I följande tabell visas de nödvändiga värdena för mallen:

    Fält Värde
    Abonnemang Prenumerationen där dina virtuella SQL Server-datorer finns.
    Resursgrupp Resursgruppen där dina virtuella SQL Server-datorer finns.
    Namn på redundanskluster Det namn som du vill ha för ditt nya Windows-redundanskluster.
    Lista över befintliga virtuella datorer De virtuella SQL Server-datorer som du vill delta i tillgänglighetsgruppen och som ingår i det nya klustret. Avgränsa dessa värden med ett kommatecken och ett blanksteg (till exempel SQLVM1 , SQLVM2).
    SQL Server-version SQL Server-versionen av dina virtuella SQL Server-datorer. Välj den i listrutan. För närvarande stöds endast SQL Server 2016- och SQL Server 2017-avbildningar.
    Befintligt fullständigt domännamn Det befintliga FQDN för domänen där dina virtuella SQL Server-datorer finns.
    Befintligt domänkonto Ett befintligt domänanvändarkonto som har behörigheten Skapa datorobjekt i domänen när CNO skapas under malldistributionen. Till exempel har ett domänadministratörskonto vanligtvis tillräcklig behörighet (till exempel: account@domain.com). Det här kontot bör också ingå i den lokala administratörsgruppen på varje virtuell dator för att skapa klustret.
    Lösenord för domänkonto Lösenordet för det tidigare nämnda domänanvändarkontot.
    Befintligt Sql Service-konto Domänanvändarkontot som styr SQL Server-tjänsten under distributionen av tillgänglighetsgruppen (till exempel: account@domain.com).
    Sql-tjänstlösenord Lösenordet som används av domänanvändarkontot som styr SQL Server.
    Namn på molnvittne Ett nytt Azure Storage-konto som ska skapas och användas för molnvittnet. Du kan ändra det här namnet.
    _artifacts plats Det här fältet anges som standard och bör inte ändras.
    _artifacts plats-SaS-token Det här fältet lämnas avsiktligt tomt.
  3. Om du godkänner villkoren väljer du kryssrutan Jag godkänner de villkor som anges ovan . Välj sedan Köp för att slutföra distributionen av snabbstartsmallen.

  4. Om du vill övervaka distributionen väljer du antingen distributionen från klockikonen Meddelanden i den övre navigeringsbanderollen eller går till Resursgrupp i Azure-portalen. Välj Distributioner under Inställningar och välj distributionen Microsoft.Template.

Kommentar

Autentiseringsuppgifter som anges under malldistributionen lagras endast under distributionens längd. När distributionen är klar tas dessa lösenord bort. Du uppmanas att ange dem igen om du lägger till fler virtuella SQL Server-datorer i klustret.

Konfigurera kvorum

Även om diskvittnet är det mest motståndskraftiga kvorumalternativet kräver det en delad Azure-disk som medför vissa begränsningar för tillgänglighetsgruppen. Därför är molnvittnet den rekommenderade kvorumlösningen för kluster som är värdar för tillgänglighetsgrupper för SQL Server på virtuella Azure-datorer.

Om du har ett jämnt antal röster i klustret konfigurerar du den kvorumlösning som bäst passar dina affärsbehov. Mer information finns i Kvorum med virtuella SQL Server-datorer.

Verifiera kluster

För att ett redundanskluster ska kunna stödjas av Microsoft måste det godkännas av klusterverifieringen. Anslut till den virtuella datorn med den metod du föredrar, till exempel RDP (Remote Desktop Protocol) och verifiera att klustret klarar valideringen innan du fortsätter vidare. Om det inte går lämnar klustret i ett tillstånd som inte stöds.

Du kan verifiera klustret med hjälp av Klusterhanteraren för växling vid fel (FCM) eller följande PowerShell-kommando:

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

Skapa tillgänglighetsgrupp

Skapa tillgänglighetsgruppen manuellt som vanligt med hjälp av SQL Server Management Studio, PowerShell eller Transact-SQL.

Viktigt!

Skapa inte en lyssnare just nu eftersom snabbstartsmallen 101-sql-vm-aglistener-setup gör det automatiskt i steg 4.

Skapa en lastbalanserare

Kommentar

Distributioner av tillgänglighetsgrupper till flera undernät kräver ingen lastbalanserare. I en miljö med ett undernät kan kunder som använder SQL Server 2019 CU8 och senare i Windows 2016 och senare ersätta den traditionella VNN-lyssnaren (VNN) och Azure Load Balancer med en DNN-lyssnare (distribuerat nätverksnamn). Om du vill använda ett DNN hoppar du över de självstudier som konfigurerar Azure Load Balancer för din tillgänglighetsgrupp.

Lyssnaren för AlwaysOn-tillgänglighetsgruppen kräver en intern instans av Azure Load Balancer. Den interna lastbalanseraren tillhandahåller en "flytande" IP-adress för tillgänglighetsgruppens lyssnare som möjliggör snabbare redundans och återanslutning. Om de virtuella SQL Server-datorerna i en tillgänglighetsgrupp ingår i samma tillgänglighetsuppsättning kan du använda en Basic-lastbalanserare. Annars måste du använda en Standard-lastbalanserare.

Viktigt!

Den interna lastbalanseraren ska finnas i samma virtuella nätverk som SQL Server VM-instanserna.

Du behöver bara skapa den interna lastbalanseraren. I steg 4 hanterar snabbstartsmallen 101-sql-vm-aglistener-setup resten av konfigurationen (till exempel serverdelspoolen, hälsoavsökningen och belastningsutjämningsregler).

  1. Öppna resursgruppen som innehåller de virtuella SQL Server-datorerna i Azure-portalen.

  2. I resursgruppen väljer du Lägg till.

  3. Sök efter lastbalanserare. I sökresultaten väljer du Load Balancer, som publiceras av Microsoft.

  4. På bladet Load Balancer väljer du Skapa.

  5. I dialogrutan Skapa lastbalanserare konfigurerar du lastbalanseraren på följande sätt:

    Inställning Värde
    Namn Ange ett textnamn som representerar lastbalanseraren. Ange till exempel sqlLB.
    Typ Internt: De flesta implementeringar använder en intern lastbalanserare som gör att program i samma virtuella nätverk kan ansluta till tillgänglighetsgruppen.
    Extern: Tillåter att program ansluter till tillgänglighetsgruppen via en offentlig Internetanslutning.
    Virtuellt nätverk Välj det virtuella nätverk som SQL Server-instanserna finns i.
    Undernät Välj det undernät som SQL Server-instanserna finns i.
    IP-adresstilldelning Statisk
    Privat IP-adress Ange en tillgänglig IP-adress från undernätet.
    Abonnemang Om du har flera prenumerationer kan det här fältet visas. Välj den prenumeration som du vill associera med den här resursen. Det är normalt samma prenumeration som alla resurser för tillgänglighetsgruppen.
    Resursgrupp Välj den resursgrupp som SQL Server-instanserna finns i.
    Plats Välj den Azure-plats som SQL Server-instanserna finns på.
  6. Välj Skapa.

Viktigt!

Den offentliga IP-resursen för varje virtuell SQL Server-dator ska ha en standard-SKU som ska vara kompatibel med standardlastbalanseraren. Om du vill fastställa SKU:n för den virtuella datorns offentliga IP-resurs går du till Resursgrupp, väljer den offentliga IP-adressresursen för den virtuella SQL Server-datorn och letar upp värdet under SKU i fönstret Översikt .

Skapa lyssnare

Skapa lyssnaren för tillgänglighetsgruppen och konfigurera den interna lastbalanseraren automatiskt med hjälp av snabbstartsmallen 101-sql-vm-aglistener-setup . Mallen etablerar resursen Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/AvailabilityGroupListener. Snabbstartsmallen 101-sql-vm-aglistener-setup via SQL IaaS Agent-tillägget utför följande åtgärder:

  • Skapar en ny IP-resurs för klientdelen (baserat på IP-adressvärdet som angavs under distributionen) för lyssnaren.
  • Konfigurerar nätverksinställningarna för klustret och den interna lastbalanseraren.
  • Konfigurerar serverdelspoolen för den interna lastbalanseraren, hälsoavsökningen och belastningsutjämningsreglerna.
  • Skapar tillgänglighetsgruppens lyssnare med den angivna IP-adressen och namnet.

Kommentar

Du kan bara använda 101-sql-vm-aglistener-setup om Windows-redundansklustret skapades med mallen 101-sql-vm-ag-setup .

Gör följande för att konfigurera den interna lastbalanseraren och skapa lyssnaren för tillgänglighetsgruppen:

  1. Gå till snabbstartsmallen sql-vm-aglistener-setup och välj Distribuera till Azure för att starta snabbstartsmallen i Azure-portalen.

  2. Fyll i de obligatoriska fälten för att konfigurera den interna lastbalanseraren och skapa tillgänglighetsgruppens lyssnare. Du kan lämna de valfria fälten tomma.

    I följande tabell visas de nödvändiga värdena för mallen:

    Fält Värde
    Resursgrupp Resursgruppen där dina virtuella SQL Server-datorer och tillgänglighetsgrupp finns.
    Befintligt redundansklusternamn Namnet på klustret som dina virtuella SQL Server-datorer är anslutna till.
    Befintlig SQL-tillgänglighetsgrupp Namnet på tillgänglighetsgruppen som dina virtuella SQL Server-datorer ingår i.
    Lista över befintliga virtuella datorer Namnen på de virtuella SQL Server-datorer som ingår i den tidigare nämnda tillgänglighetsgruppen. Avgränsa namnen med ett kommatecken och ett blanksteg (till exempel SQLVM1 , SQLVM2).
    Lyssnaren DET DNS-namn som du vill tilldela lyssnaren. Som standard anger den här mallen namnet "aglistener", men du kan ändra det. Namnet får inte överstiga 15 tecken.
    Lyssnarport Den port som du vill att lyssnaren ska använda. Den här porten bör vanligtvis vara standardvärdet 1433. Det här är det portnummer som mallen anger. Men om standardporten har ändrats bör lyssnarporten använda det värdet i stället.
    Lyssnarens IP-adress DEN IP-adress som du vill att lyssnaren ska använda. Den här adressen skapas under malldistributionen, så ange en som inte redan används.
    Befintligt undernät Namnet på det interna undernätet för dina virtuella SQL Server-datorer (till exempel standard). Du kan fastställa det här värdet genom att gå till Resursgrupp, välja ditt virtuella nätverk, välja Undernät i fönstret Inställningar och kopiera värdet under Namn.
    Befintlig intern lastbalanserare Namnet på den interna lastbalanserare som du skapade i steg 3.
    Avsökningsport Den avsökningsport som du vill att den interna lastbalanseraren ska använda. Mallen använder 59999 som standard, men du kan ändra det här värdet.
  3. Om du godkänner villkoren väljer du kryssrutan Jag godkänner de villkor som anges ovan . Välj Köp för att slutföra distributionen av snabbstartsmallen.

  4. Om du vill övervaka distributionen väljer du antingen distributionen från klockikonen Meddelanden i den övre navigeringsbanderollen eller går till Resursgrupp i Azure-portalen. Välj Distributioner under Inställningar och välj distributionen Microsoft.Template.

Kommentar

Om distributionen misslyckas halvvägs måste du manuellt ta bort den nyligen skapade lyssnaren med hjälp av PowerShell innan du distribuerar om snabbstartsmallen 101-sql-vm-aglistener-setup .

Ta bort lyssnare

Om du senare behöver ta bort tillgänglighetsgruppens lyssnare som mallen har konfigurerat måste du gå igenom SQL IaaS Agent-tillägget. Eftersom lyssnaren är registrerad via SQL IaaS Agent-tillägget är det inte tillräckligt att bara ta bort det via SQL Server Management Studio.

Den bästa metoden är att ta bort den via SQL IaaS Agent-tillägget med hjälp av följande kodfragment i PowerShell. Detta tar bort lyssnarmetadata för tillgänglighetsgruppen från SQL IaaS Agent-tillägget. Den tar också bort lyssnaren fysiskt från tillgänglighetsgruppen.

# 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

Vanliga fel

I det här avsnittet beskrivs några kända problem och deras möjliga lösning.

Tillgänglighetsgrupplyssnare för tillgänglighetsgruppen "<AG-Name>" finns redan Den valda tillgänglighetsgruppen som används i Azure-snabbstartsmallen för tillgänglighetsgruppens lyssnare innehåller redan en lyssnare. Antingen finns den fysiskt i tillgänglighetsgruppen eller så finns dess metadata kvar i SQL IaaS Agent-tillägget. Ta bort lyssnaren med hjälp av PowerShell innan du distribuerar om snabbstartsmallen 101-sql-vm-aglistener-setup .

Anslutningen fungerar endast från den primära repliken Det här beteendet beror troligen på en misslyckad malldistribution med 101-sql-vm-aglistener-setup som har lämnat konfigurationen av den interna lastbalanseraren i ett inkonsekvent tillstånd. Kontrollera att serverdelspoolen visar en lista över tillgänglighetsuppsättningen och att det finns regler för hälsoavsökningen och för reglerna för belastningsutjämning. Om något saknas är konfigurationen av den interna lastbalanseraren ett inkonsekvent tillstånd.

Lös problemet genom att ta bort lyssnaren med hjälp av PowerShell, ta bort den interna lastbalanseraren via Azure-portalen och börja om i steg 3.

BadRequest – Endast listan över virtuella SQL-datorer kan uppdateras Det här felet kan inträffa när du distribuerar mallen 101-sql-vm-aglistener-setup om lyssnaren togs bort via SQL Server Management Studio (SSMS), men inte togs bort från SQL IaaS Agent-tillägget. Om du tar bort lyssnaren via SSMS tas inte lyssnarens metadata bort från SQL IaaS Agent-tillägget. Lyssnaren måste tas bort från resursprovidern via PowerShell.

Domänkontot finns inte Det här felet kan ha två orsaker. Antingen finns inte det angivna domänkontot eller så saknas UPN-data (User Principal Name). Mallen 101-sql-vm-ag-setup förväntar sig ett domänkonto i UPN-formuläret (dvs. user@domain.com), men vissa domänkonton kanske saknar det. Detta inträffar vanligtvis när en lokal användare har migrerats till det första domänadministratörskontot när servern befordrades till en domänkontrollant eller när en användare skapades via PowerShell.

Kontrollera att kontot finns. Om det gör det kanske du stöter på den andra situationen. Lös problemet genom att göra följande:

  1. Öppna fönstret Active Directory-användare och datorer på domänkontrollanten från alternativet Verktyg i Serverhanteraren.

  2. Gå till kontot genom att välja Användare i det vänstra fönstret.

  3. Högerklicka på kontot och välj Egenskaper.

  4. Välj fliken Konto . Om rutan Användarinloggningsnamn är tom är det här orsaken till felet.

    Blank user account indicates missing UPN

  5. Fyll i rutan Användarinloggningsnamn för att matcha användarens namn och välj rätt domän i listrutan.

  6. Välj Använd för att spara ändringarna och stäng dialogrutan genom att välja OK.

När du har gjort de här ändringarna kan du försöka distribuera Azure-snabbstartsmallen igen.

Nästa steg

Du kan läsa mer här: