Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
In dit onderwerp wordt beschreven hoe u PowerShell-cmdlets gebruikt om een AlwaysOn-beschikbaarheidsgroep te maken en configureren met behulp van PowerShell in SQL Server. Een beschikbaarheidsgroep definieert een set gebruikersdatabases die een failover uitvoeren als één eenheid en een set failoverpartners, ook wel beschikbaarheidsreplica's genoemd, die failover ondersteunen.
Opmerking
Zie Overzicht van AlwaysOn-beschikbaarheidsgroepen (SQL Server) voor een inleiding tot beschikbaarheidsgroepen.
Opmerking
Als alternatief voor het gebruik van PowerShell-cmdlets kunt u de wizard Beschikbaarheidsgroep maken of Transact-SQL gebruiken. Zie Het dialoogvenster Nieuwe beschikbaarheidsgroep (SQL Server Management Studio) gebruiken ofEen beschikbaarheidsgroep (Transact-SQL) maken voor meer informatie.
Voordat u begint
Vereisten, beperkingen en aanbevelingen
- Controleer voordat u een beschikbaarheidsgroep maakt of de hostinstanties van SQL Server zich op een ander WSFC-knooppunt (Windows Server Failover Clustering) van één WSFC-failovercluster bevinden. Controleer ook of uw serverexemplaren voldoen aan de andere vereisten voor serverexemplaren en of aan alle andere vereisten voor AlwaysOn-beschikbaarheidsgroepen wordt voldaan en dat u op de hoogte bent van de aanbevelingen. Voor meer informatie raden we u ten zeerste aan vereisten, beperkingen en aanbevelingen voor AlwaysOn-beschikbaarheidsgroepen (SQL Server) te lezen.
Permissions
Vereist lidmaatschap van de vaste serverrol sysadmin en de servermachtiging 'CREATE AVAILABILITY GROUP', 'ALTER ANY AVAILABILITY GROUP', of 'CONTROL SERVER'.
PowerShell gebruiken om een beschikbaarheidsgroep te maken en configureren
De volgende tabel bevat de basistaken die betrokken zijn bij het configureren van een beschikbaarheidsgroep en geeft aan welke taken worden ondersteund door PowerShell-cmdlets. De taken van Always On-beschikbaarheidsgroepen moeten worden uitgevoerd in de volgorde waarin ze in de tabel worden weergegeven.
| Opdracht | PowerShell-cmdlets (indien beschikbaar) of Transact-SQL-instructie | Waar taken moeten worden uitgevoerd |
|---|---|---|
| Eindpunt voor databasespiegeling maken (eenmaal per SQL Server-exemplaar) | New-SqlHadrEndPoint | Voer uit op elke serverinstantie die geen eindpunt voor databasespiegeling heeft. Als u een bestaand eindpunt voor databasespiegeling wilt wijzigen, gebruikt u Set-SqlHadrEndpoint. |
| Beschikbaarheidsgroep maken | Gebruik eerst de cmdlet New-SqlAvailabilityReplica met de parameter -AsTemplate om een in-memory availability-replica-object te maken voor elk van de twee beschikbaarheidsreplica's die u wilt opnemen in de beschikbaarheidsgroep. Maak vervolgens de beschikbaarheidsgroep met de cmdlet New-SqlAvailabilityGroup aan en verwijs naar uw beschikbaarheidsreplicaobjecten. |
Voer uit op de serverinstantie die de eerste primaire replica host. |
| Secundaire replica toevoegen aan beschikbaarheidsgroep | Join-SqlAvailabilityGroup | Voer uit op elke serverexemplaar die een host is van een secundaire replica. |
| De secundaire database voorbereiden | Backup-SqlDatabase en Restore-SqlDatabase | Maak een backup op het serverexemplaar dat de primaire replica host. Herstel back-ups op elke serverexemplaar dat een secundaire replica host, met behulp van de herstelparameter NoRecovery. Als de bestandspaden verschillen tussen de computers waarop de primaire replica en de secundaire doelreplica worden gehost, gebruikt u ook de parameter RelocateFile-herstel . |
| Gegevenssynchronisatie starten door elke secundaire database toe te voegen aan een beschikbaarheidsgroep | Add-SqlBeschikbaarheidsDatabase | Voer uit op elke serverexemplaar waarop een secundaire replica wordt gehost. |
Opmerking
Als u de opgegeven taken wilt uitvoeren, navigeert u naar de map (cd) op de aangegeven serverinstantie of instanties.
PowerShell gebruiken
De SQL Server PowerShell-provider instellen en gebruiken.
Opmerking
Als u de syntaxis en een voorbeeld van een bepaalde cmdlet wilt weergeven, gebruikt u de Cmdlet Get-Help in de SQL Server PowerShell-omgeving. Zie Help voor SQL Server PowerShell voor meer informatie.
Verander de directory (cd) naar het serverexemplaar dat de primaire kopie zal hosten.
Maak een in-memory beschikbaarheidsreplica-object voor de primaire replica.
Maak een in-memory beschikbaarheidsreplica-object voor elk van de secundaire replica's.
Maak de beschikbaarheidsgroep.
Opmerking
De maximale lengte voor de naam van een beschikbaarheidsgroep is 128 tekens.
Voeg de nieuwe secundaire replica toe aan de beschikbaarheidsgroep. Zie Een secundaire replica toevoegen aan een beschikbaarheidsgroep (SQL Server).
Maak voor elke database in de beschikbaarheidsgroep een secundaire database door recente back-ups van de primaire database te herstellen met BEHULP van RESTORE WITH NORECOVERY.
Voeg elke nieuwe secundaire database toe aan de beschikbaarheidsgroep. Zie Een secundaire replica toevoegen aan een beschikbaarheidsgroep (SQL Server).
(optioneel) Gebruik de Opdracht Windows Dir om de inhoud van de nieuwe beschikbaarheidsgroep te controleren.
Opmerking
Als de SQL Server-serviceaccounts van de serverinstanties worden uitgevoerd onder verschillende domeingebruiker accounts, maakt u op elke serverinstantie een login voor de andere serverinstantie en geeft u deze login CONNECT-rechten op het lokale databasespiegelingseindpunt.
Example
In het volgende PowerShell-voorbeeld wordt een eenvoudige beschikbaarheidsgroep <myAvailabilityGroup> gemaakt en geconfigureerd met twee beschikbaarheidsreplica's en één beschikbaarheidsdatabase. Het voorbeeld:
Maakt een back-up van
<myDatabase>en het bijbehorende transactielogboek.Herstelt
<myDatabase>en het transactielogboek met behulp van de optie -NoRecovery .Hiermee maakt u een in-memory weergave van de primaire replica, die wordt gehost door het lokale exemplaar van SQL Server (benoemd
PrimaryComputer\Instance).Hiermee maakt u een in-memory weergave van de secundaire replica, die wordt gehost door een exemplaar van SQL Server (benoemd
SecondaryComputer\Instance).Hiermee maakt u een beschikbaarheidsgroep met de naam
<myAvailabilityGroup>.Voegt de secundaire replica toe aan de beschikbaarheidsgroep.
Voegt de secundaire database toe aan de beschikbaarheidsgroep.
# 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>"
Gerelateerde taken
Een serverexemplaar configureren voor AlwaysOn-beschikbaarheidsgroepen
Eigenschappen van beschikbaarheidsgroep en replica configureren
De beschikbaarheidsmodus van een beschikbaarheidsreplica (SQL Server) wijzigen
De failovermodus van een beschikbaarheidsreplica (SQL Server) wijzigen
Een listener voor beschikbaarheidsgroepen maken of configureren (SQL Server)
Geef de eindpunt-URL op bij het toevoegen of wijzigen van een beschikbaarheidsreplica (SQL Server)
Back-up configureren op beschikbaarheidsreplica's (SQL Server)
Read-Only-toegangsrechten configureren op een beschikbaarheidsreplica (SQL Server)
Read-Only routing configureren voor een beschikbaarheidsgroep (SQL Server)
De Session-Timeout periode voor een beschikbaarheidsreplica (SQL Server) wijzigen
Configuratie van beschikbaarheidsgroepen voltooien
Een secundaire replica toevoegen aan een beschikbaarheidsgroep (SQL Server)
Handmatig een secundaire database voorbereiden voor een beschikbaarheidsgroep (SQL Server)
Een secundaire database toevoegen aan een beschikbaarheidsgroep (SQL Server)
Een listener voor beschikbaarheidsgroepen maken of configureren (SQL Server)
Alternatieve manieren om een beschikbaarheidsgroep te maken
Gebruik de wizard Beschikbaarheidsgroep (SQL Server Management Studio)
Het dialoogvenster Nieuwe beschikbaarheidsgroep gebruiken (SQL Server Management Studio)
Problemen met de configuratie van AlwaysOn-beschikbaarheidsgroepen oplossen
problemen met configuratie van AlwaysOn-beschikbaarheidsgroepen (SQL Server) oplossen
Problemen met een mislukte Add-File-bewerking oplossen (AlwaysOn-beschikbaarheidsgroepen)
Verwante inhoud
Blogs:
AlwaysOn - HADRON Learning Series: Werkgroepgebruik voor databases met HADRON ingeschakeld
AlwaysOn configureren met SQL Server PowerShell
SQL Server AlwaysOn Team Blogs: de officiële SQL Server Always On Team Blog
Whitepapers:
Microsoft SQL Server AlwaysOn-oplossingengids voor hoge beschikbaarheid en herstel na noodgevallen
Zie ook
Het eindpunt voor databasespiegeling (SQL Server)
overzicht van AlwaysOn-beschikbaarheidsgroepen (SQL Server)