Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Ändra katalog (cd) till den serverinstans som ska vara värd för den primära repliken.
Skapa ett minnesinternt tillgänglighetsreplikobjekt för den primära repliken.
Skapa ett minnesinternt tillgänglighetsreplikobjekt för var och en av de sekundära replikerna.
Skapa tillgänglighetsgruppen.
Anmärkning
Den maximala längden för ett namn på en tillgänglighetsgrupp är 128 tecken.
Anslut den nya sekundära repliken till tillgänglighetsgruppen, se Koppla en sekundär replik till en tillgänglighetsgrupp (SQL Server).
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.
Anslut varje ny sekundär databas till tillgänglighetsgruppen. Mer information finns i Ansluta en sekundär replik till en tillgänglighetsgrupp (SQL Server)..
(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:
Säkerhetskopierar
<myDatabase>och dess transaktionslogg.Återställer
<myDatabase>och dess transaktionslogg med alternativet -NoRecovery .Skapar en minnesintern representation av den primära repliken, som hanteras av den lokala instansen av SQL Server (med namnet
PrimaryComputer\Instance).Skapar en minnesintern representation av den sekundära repliken, som hanteras av en instans av SQL Server (med namnet
SecondaryComputer\Instance).Skapar en tillgänglighetsgrupp med namnet
<myAvailabilityGroup>.Ansluter den sekundära repliken till tillgänglighetsgruppen.
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
Aktivera och inaktivera AlwaysOn-tillgänglighetsgrupper (SQL Server)
Skapa en databasspeglingsslutpunkt för AlwaysOn-tillgänglighetsgrupper (SQL Server PowerShell)
Konfigurera egenskaper för tillgänglighetsgrupp och replik
Ändra tillgänglighetsläget för en tillgänglighetsreplik (SQL Server)
Ändra failover-läget för en tillgänglighetsreplika (SQL Server)
Skapa eller konfigurera en tillgänglighetsgrupplyssnare (SQL Server)
Ange slutpunkts-URL:en när du lägger till eller ändrar en tillgänglighetsreplik (SQL Server)
Konfigurera säkerhetskopiering av tillgänglighetsrepliker (SQL Server)
Konfigurera skrivskyddad åtkomst på en tillgänglighets replik (SQL Server)
Konfigurera Read-Only routning för en tillgänglighetsgrupp (SQL Server)
Ändra Session-Timeout period för en tillgänglighetsreplik (SQL Server)
Så här slutför du konfigurationen av tillgänglighetsgrupp
Ansluta en sekundär replik till en tillgänglighetsgrupp (SQL Server)
Förbereda en sekundär databas för en tillgänglighetsgrupp (SQL Server) manuellt
Ansluta en sekundär databas till en tillgänglighetsgrupp (SQL Server)
Skapa eller konfigurera en tillgänglighetsgrupplyssnare (SQL Server)
Alternativa sätt att skapa en tillgänglighetsgrupp
Använd guiden Tillgänglighetsgrupp (SQL Server Management Studio)
Använd dialogrutan Ny tillgänglighetsgrupp (SQL Server Management Studio)
Felsöka konfiguration av AlwaysOn-tillgänglighetsgrupper
Felsöka Konfiguration av AlwaysOn-tillgänglighetsgrupper (SQL Server)
Felsöka en misslyckad Add-File åtgärd (AlwaysOn-tillgänglighetsgrupper)
Relaterat innehåll
Bloggar:
AlwaysOn – HADRON Learning Series: Användning av arbetspooler för HADRON-aktiverade databaser
Konfigurera AlwaysOn med SQL Server PowerShell
SQL Server Always On Team-bloggar: Den officiella SQL Server Always On Team-bloggen
Whitepapers:
Microsoft SQL Server Always On Solutions Guide för hög tillgänglighet och katastrofåterställning
Se även
Databasspeglingsslutpunkten (SQL Server)
översikt över AlwaysOn-tillgänglighetsgrupper (SQL Server)