Dela via


Skapa en AlwaysOn-tillgänglighetsgrupp med PowerShell

Gäller för:SQL Server

Det här avsnittet beskriver hur du använder PowerShell-cmdletar för att skapa och konfigurera en AlwaysOn-tillgänglighetsgrupp med hjälp av PowerShell i SQL Server. En tillgänglighetsgrupp definierar en uppsättning användardatabaser som genomgår failover som en enda enhet och en uppsättning partnerrepliker för tillgänglighet, så kallade tillgänglighetsrepliker, som stöder failover.

Anmärkning

En introduktion till tillgänglighetsgrupper finns i Översikt över AlwaysOn-tillgänglighetsgrupper (SQL Server).

Anmärkning

Som ett alternativ till att använda PowerShell-cmdletar kan du använda guiden Skapa tillgänglighetsgrupp eller Transact-SQL. Mer information finns i Använda dialogrutan Ny tillgänglighetsgrupp (SQL Server Management Studio) eller Skapa en tillgänglighetsgrupp (Transact-SQL).

Innan du börjar

Krav, begränsningar och rekommendationer

  • Innan du skapar en tillgänglighetsgrupp kontrollerar du att värdinstanserna av SQL Server finns på en annan WSFC-nod (Windows Server Failover Clustering) i ett enda WSFC-redundanskluster. Kontrollera också att dina serverinstanser uppfyller de andra kraven för serverinstanser och att alla andra Krav för AlwaysOn-tillgänglighetsgrupper är uppfyllda och att du är medveten om rekommendationerna. För mer information rekommenderar vi starkt att du läser Krav, begränsningar och rekommendationer för AlwaysOn-tillgänglighetsgrupper (SQL Server).

Permissions

Kräver medlemskap i den fasta serverrollen sysadmin och antingen SERVERBEHÖRIGHET FÖR ATT SKAPA TILLGÄNGLIGHETSGRUPP, BEHÖRIGHET FÖR ATT ÄNDRA TILLGÄNGLIGHETSGRUPP eller BEHÖRIGHET ATT KONTROLLERA SERVER.

Använda PowerShell för att skapa och konfigurera en tillgänglighetsgrupp

I följande tabell visas de grundläggande uppgifter som ingår i konfigurationen av en tillgänglighetsgrupp och anger de som stöds av PowerShell-cmdletar. Aktiviteterna i Always On-tillgänglighetsgrupper ska utföras i den ordning som de visas i tabellen.

Task PowerShell-cmdletar (om tillgängligt) eller Transact-SQL-instruktion Var du ska utföra uppgiften
Skapa databasspeglingsslutpunkt (en gång per SQL Server-instans) New-SqlHadrEndPoint Kör på varje serverinstans som saknar databasspeglingsslutpunkt.

Om du vill ändra en befintlig databasspeglingsslutpunkt använder du Set-SqlHadrEndpoint.
Skapa tillgänglighetsgrupp Använd först cmdleten New-SqlAvailabilityReplica med parametern -AsTemplate för att skapa ett minnesinternt tillgänglighetsreplikobjekt för var och en av de två tillgänglighetsrepliker som du planerar att inkludera i tillgänglighetsgruppen.

Skapa sedan tillgänglighetsgruppen med hjälp av cmdleten New-SqlAvailabilityGroup och referera till dina tillgänglighetsreplikobjekt.
Kör på den serverinstans som ska vara värd för den första primära repliken.
Ansluta sekundär replik i en tillgänglighetsgrupp Join-SqlAvailabilityGroup Kör på varje serverinstans som är värd för en sekundär replik.
Förbereda den sekundära databasen Backup-SqlDatabase och Restore-SqlDatabase Skapa säkerhetskopior på den serverinstans som är värd för den primära repliken.

Återställ säkerhetskopior på varje serverinstans som är värd för en sekundär replik med hjälp av återställningsparametern NoRecovery . Om filsökvägarna skiljer sig åt mellan datorerna som är värdar för den primära repliken och den sekundära målrepliken använder du även återställningsparametern RelocateFile .
Starta datasynkronisering genom att ansluta varje sekundär databas till tillgänglighetsgruppen Lägg till-SqlAvailabilityDatabase Kör på varje serverinstans som är värd för en sekundär replik.

Anmärkning

Om du vill utföra de angivna uppgifterna ändrar du katalogen (cd) till den angivna serverinstansen eller instanserna.

Med hjälp av PowerShell

Konfigurera och använda SQL Server PowerShell-providern.

Anmärkning

Om du vill visa syntaxen och ett exempel på en viss cmdlet använder du cmdleten Get-Help i SQL Server PowerShell-miljön. Mer information finns i Hämta hjälp för SQL Server PowerShell.

  1. Ändra katalog (cd) till den serverinstans som ska vara värd för den primära repliken.

  2. Skapa ett minnesinternt tillgänglighetsreplikobjekt för den primära repliken.

  3. Skapa ett minnesinternt tillgänglighetsreplikobjekt för var och en av de sekundära replikerna.

  4. Skapa tillgänglighetsgruppen.

    Anmärkning

    Den maximala längden för ett namn på en tillgänglighetsgrupp är 128 tecken.

  5. Anslut den nya sekundära repliken till tillgänglighetsgruppen, se Koppla en sekundär replik till en tillgänglighetsgrupp (SQL Server).

  6. För varje databas i tillgänglighetsgruppen skapar du en sekundär databas genom att återställa de senaste säkerhetskopiorna av den primära databasen med hjälp av RESTORE WITH NORECOVERY.

  7. Anslut varje ny sekundär databas till tillgänglighetsgruppen. Mer information finns i Ansluta en sekundär replik till en tillgänglighetsgrupp (SQL Server)..

  8. (valfritt) Använd Windows dir-kommandot för att verifiera innehållet i den nya tillgänglighetsgruppen.

Anmärkning

Om SQL Server-tjänstkontona för serverinstanserna körs under olika domänanvändarkonton skapar du en inloggning för den andra serverinstansen på varje serverinstans och ger den här inloggningsbehörigheten CONNECT till den lokala databasspeglingsslutpunkten.

Example

I följande PowerShell-exempel skapas och konfigureras en enkel tillgänglighetsgrupp med namnet <myAvailabilityGroup> med två tillgänglighetsrepliker och en tillgänglighetsdatabas. Exemplet:

  1. Säkerhetskopierar <myDatabase> och dess transaktionslogg.

  2. Återställer <myDatabase> och dess transaktionslogg med alternativet -NoRecovery .

  3. Skapar en minnesintern representation av den primära repliken, som hanteras av den lokala instansen av SQL Server (med namnet PrimaryComputer\Instance).

  4. Skapar en minnesintern representation av den sekundära repliken, som hanteras av en instans av SQL Server (med namnet SecondaryComputer\Instance).

  5. Skapar en tillgänglighetsgrupp med namnet <myAvailabilityGroup>.

  6. Ansluter den sekundära repliken till tillgänglighetsgruppen.

  7. Ansluter den sekundära databasen till tillgänglighetsgruppen.

# Backup my database and its log on the primary  
Backup-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.bak" `  
    -ServerInstance "PrimaryComputer\Instance"  
  
Backup-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.log" `  
    -ServerInstance "PrimaryComputer\Instance" `  
    -BackupAction Log   
  
# Restore the database and log on the secondary (using NO RECOVERY)  
Restore-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.bak" `  
    -ServerInstance "SecondaryComputer\Instance" `  
    -NoRecovery  
  
Restore-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.log" `  
    -ServerInstance "SecondaryComputer\Instance" `  
    -RestoreAction Log `  
    -NoRecovery  
  
# Create an in-memory representation of the primary replica.  
$primaryReplica = New-SqlAvailabilityReplica `  
    -Name "PrimaryComputer\Instance" `  
    -EndpointURL "TCP://PrimaryComputer.domain.com:5022" `  
    -AvailabilityMode "SynchronousCommit" `  
    -FailoverMode "Automatic" `  
    -Version 12 `  
    -AsTemplate  
  
# Create an in-memory representation of the secondary replica.  
$secondaryReplica = New-SqlAvailabilityReplica `  
    -Name "SecondaryComputer\Instance" `  
    -EndpointURL "TCP://SecondaryComputer.domain.com:5022" `  
    -AvailabilityMode "SynchronousCommit" `  
    -FailoverMode "Automatic" `  
    -Version 12 `  
    -AsTemplate  
  
# Create the availability group  
New-SqlAvailabilityGroup `  
    -Name "<myAvailabilityGroup>" `  
    -Path "SQLSERVER:\SQL\PrimaryComputer\Instance" `  
    -AvailabilityReplica @($primaryReplica,$secondaryReplica) `  
    -Database "<myDatabase>"  
  
# Join the secondary replica to the availability group.  
Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\SecondaryComputer\Instance" -Name "<myAvailabilityGroup>"  
  
# Join the secondary database to the availability group.  
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\<myAvailabilityGroup>" -Database "<myDatabase>"  

Relaterade uppgifter

Konfigurera en serverinstans för AlwaysOn-tillgänglighetsgrupper

Konfigurera egenskaper för tillgänglighetsgrupp och replik

Så här slutför du konfigurationen av tillgänglighetsgrupp

Alternativa sätt att skapa en tillgänglighetsgrupp

Felsöka konfiguration av AlwaysOn-tillgänglighetsgrupper

Relaterat innehåll

Se även

Databasspeglingsslutpunkten (SQL Server)
översikt över AlwaysOn-tillgänglighetsgrupper (SQL Server)