Erstellen einer Always On-Verfügbarkeitsgruppe mit PowerShell
Gilt für: SQL Server
In diesem Thema wird beschrieben, wie PowerShell-Cmdlets zum Erstellen und Konfigurieren einer Always On-Verfügbarkeitsgruppe mithilfe von PowerShell in SQL Serververwendet werden. Eine Verfügbarkeitsgruppe definiert einen Satz von Benutzerdatenbanken, für die als eine einzelne Einheit ein Failover ausgeführt wird, sowie einen Satz von Failoverpartnern, die als Verfügbarkeitsreplikatebezeichnet werden und das Failover unterstützen.
Hinweis
Eine Einführung in Verfügbarkeitsgruppen finden Sie unter Übersicht über Always On-Verfügbarkeitsgruppen (SQL Server).
Hinweis
Als Alternative zur Verwendung von PowerShell-Cmdlets können Sie den Assistenten zum Erstellen einer Verfügbarkeitsgruppe oder Transact-SQLverwenden. Weitere Informationen finden Sie unter Verwenden des Dialogfelds „Neue Verfügbarkeitsgruppe“ (SQL Server Management Studio) oder Erstellen einer Verfügbarkeitsgruppe (Transact-SQL)verwendet werden.
Vorbereitungen
Voraussetzungen, Einschränkungen und Empfehlungen
- Überprüfen Sie vor dem Erstellen einer Verfügbarkeitsgruppe, ob sich die Hostinstanzen von SQL Server jeweils auf verschiedenen WSFC-Knoten (Windows Server-Failoverclustering) eines einzelnen WSFC-Failoverclusters befinden. Stellen Sie auch sicher, dass die Serverinstanzen die anderen Serverinstanzvoraussetzungen erfüllen, dass alle anderen Always On-Verfügbarkeitsgruppen-Anforderungen erfüllt sind und dass Sie die Empfehlungen berücksichtigen. Um weitere Informationen zu erhalten, empfehlen wir Ihnen dringend die Lektüre von Voraussetzungen, Einschränkungen und Empfehlungen für Always On-Verfügbarkeitsgruppen (SQL Server).
Berechtigungen
Erfordert die Mitgliedschaft in der festen Serverrolle sysadmin und die CREATE AVAILABILITY GROUP-Serverberechtigung, ALTER ANY AVAILABILITY GROUP-Berechtigung oder CONTROL SERVER-Berechtigung.
Verwenden von PowerShell zum Erstellen und Konfigurieren einer Verfügbarkeitsgruppe
In der folgenden Tabelle sind die grundlegenden Tasks für die Konfiguration einer Verfügbarkeitsgruppe aufgeführt, und es sind die Tasks angegeben, die von PowerShell-Cmdlets unterstützt werden. Die Always On-Verfügbarkeitsgruppen -Tasks müssen in der Reihenfolge ausgeführt werden, in der sie in der Tabelle dargestellt sind.
Aufgabe | PowerShell-Cmdlets (falls verfügbar) oder Transact-SQL-Anweisung | Wo die Aufgabe auszuführen ist |
---|---|---|
Erstellen eines Datenbankspiegelungs-Endpunkts (einmal pro SQL Server -Instanz) | New-SqlHadrEndPoint | Führen Sie diesen Task auf jeder Serverinstanz aus, auf der der Datenbankspiegelungs-Endpunkt fehlt. Verwenden Sie Set-SqlHadrEndpoint, um einen vorhandenen Datenbankspiegelungs-Endpunkt zu ändern. |
Erstellen der Verfügbarkeitsgruppe | Verwenden Sie zuerst das Cmdlet New-SqlAvailabilityReplica mit dem -AsTemplate -Parameter, um ein In-Memory-Verfügbarkeitsreplikatobjekt für jedes der beiden Verfügbarkeitsreplikate zu erstellen, die Sie in die Verfügbarkeitsgruppe einschließen möchten. Erstellen Sie dann die Verfügbarkeitsgruppe, indem Sie das Cmdlet New-SqlAvailabilityGroup ausführen und auf Ihre Verfügbarkeitsreplikatobjekte verweisen. |
Führen Sie diesen Task auf der Serverinstanz aus, auf der das anfängliche primäre Replikat gehostet werden soll. |
Verknüpfen eines sekundären Replikats mit einer Verfügbarkeitsgruppe | Join-SqlAvailabilityGroup | Führen Sie diesen Task auf jeder Serverinstanz aus, auf der ein sekundäres Replikat gehostet wird. |
Vorbereiten der sekundären Datenbank | Backup-SqlDatabase und Restore-SqlDatabase | Erstellen Sie Sicherungen auf der Serverinstanz, auf der das primäre Replikat gehostet wird. Stellen Sie mit dem Wiederherstellungsparameter NoRecovery Sicherungen auf jeder Serverinstanz wieder her, auf der ein sekundäres Replikat gehostet wird. Wenn sich die Dateipfade zwischen den Computern unterscheiden, die das primäre Replikat und das sekundäre Zielreplikat hosten, verwenden Sie ebenfalls den Wiederherstellungsparameter RelocateFile . |
Starten der Datensynchronisierung durch Hinzufügen der einzelnen sekundären Datenbanken zur Verfügbarkeitsgruppe | Add-SqlAvailabilityDatabase | Führen Sie diesen Task auf jeder Serverinstanz aus, auf der ein sekundäres Replikat gehostet wird. |
Hinweis
Ändern Sie das Verzeichnis (cd) in die angegebene Serverinstanz bzw. die angegebenen Serverinstanzen, um die angegebenen Aufgaben auszuführen.
PowerShell
Richten Sie den SQL Server PowerShell-Anbieter ein, und verwenden Sie ihn.
Hinweis
Um die Syntax und ein Beispiel für ein bestimmtes Cmdlet anzuzeigen, verwenden Sie das Get-Help -Cmdlet in der SQL Server PowerShell-Umgebung. Weitere Informationen finden Sie unter Get Help SQL Server PowerShell.
Wechseln Sie mitcdin das Verzeichnis der Serverinstanz, die das primäre Replikat hosten soll.
Erstellen Sie für das primäre Replikat ein Verfügbarkeitsreplikatobjekt im Arbeitsspeicher.
Erstellen Sie für jedes der sekundären Replikate ein Verfügbarkeitsreplikatobjekt im Arbeitsspeicher.
Erstellen Sie die Verfügbarkeitsgruppe.
Hinweis
Die maximale Länge eines Verfügbarkeitsgruppennamens beträgt 128 Zeichen.
Verknüpfen Sie das neue sekundäre Replikat mit der Verfügbarkeitsgruppe. Weitere Informationen finden Sie unter Verknüpfen eines sekundären Replikats mit einer Verfügbarkeitsgruppe (SQL Server).
Erstellen Sie für jede Datenbank in der Verfügbarkeitsgruppe eine sekundäre Datenbank, indem Sie letzte Sicherungen der primären Datenbank mit RESTORE WITH NORECOVERY wiederherstellen.
Verknüpfen Sie jede neue sekundäre Datenbank mit der Verfügbarkeitsgruppe. Weitere Informationen finden Sie unter Verknüpfen eines sekundären Replikats mit einer Verfügbarkeitsgruppe (SQL Server).
(Optional) Verwenden Sie den Windows-Befehl dir, um den Inhalt der neuen Verfügbarkeitsgruppe zu überprüfen.
Hinweis
Wenn die SQL Server -Dienstkonten der Serverinstanzen unter unterschiedlichen Domänenbenutzerkonten ausgeführt werden, erstellen Sie auf jeder Serverinstanz eine Anmeldung für die andere Serverinstanz, und gewähren Sie dieser Anmeldung eine CONNECT-Berechtigung zum Zugreifen auf den lokalen Datenbankspiegelungs-Endpunkt.
Beispiel
Im folgenden PowerShell-Beispiel wird eine einfache Verfügbarkeitsgruppe mit dem Namen <myAvailabilityGroup>
erstellt und konfiguriert, die über zwei Verfügbarkeitsreplikate und eine Verfügbarkeitsdatenbank verfügt. Beispiel:
Sichert
<myDatabase>
und das dazugehörige Transaktionsprotokoll.Stellt
<myDatabase>
und das dazugehörige Transaktionsprotokoll mithilfe der -NoRecovery -Option wieder her.Erstellt eine speicherinterne Darstellung des primären Replikats, die von der lokalen Instanz von SQL Server (mit dem Namen
PrimaryComputer\Instance
) gehostet wird.Erstellt eine speicherinterne Darstellung des sekundären Replikats, die von einer Instanz von SQL Server (mit dem Namen
SecondaryComputer\Instance
) gehostet wird.Erstellt eine Verfügbarkeitsgruppe mit dem Namen
<myAvailabilityGroup>
.Verknüpft das sekundäre Replikat mit der Verfügbarkeitsgruppe.
Verknüpft die sekundäre Datenbank mit der Verfügbarkeitsgruppe.
# 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>"
Related Tasks
So konfigurieren Sie eine Serverinstanz für Always On-Verfügbarkeitsgruppen
So konfigurieren Sie Verfügbarkeitsgruppen- und Replikateigenschaften
Ändern des Verfügbarkeitsmodus eines Verfügbarkeitsreplikats (SQL Server)
Ändern des Failovermodus eines Verfügbarkeitsreplikats (SQL Server)
Erstellen oder Konfigurieren eines Verfügbarkeitsgruppenlisteners (SQL Server)
Angeben der Endpunkt-URL beim Hinzufügen oder Ändern eines Verfügbarkeitsreplikats (SQL Server)
Konfigurieren der Sicherung auf Verfügbarkeitsreplikaten (SQL Server)
Konfigurieren des schreibgeschützten Zugriffs auf ein Verfügbarkeitsreplikat (SQL Server)
Konfigurieren des schreibgeschützten Routings für eine Verfügbarkeitsgruppe (SQL Server)
Ändern des Sitzungstimeouts für ein Verfügbarkeitsreplikat (SQL Server)
So schließen Sie die Konfiguration von Verfügbarkeitsgruppen ab
Verknüpfen eines sekundären Replikats mit einer Verfügbarkeitsgruppe (SQL Server)
Manuelles Vorbereiten einer sekundären Datenbank auf eine Verfügbarkeitsgruppe (SQL Server)
Verknüpfen einer sekundären Datenbank mit einer Verfügbarkeitsgruppe (SQL Server)
Erstellen oder Konfigurieren eines Verfügbarkeitsgruppenlisteners (SQL Server)
Alternative Möglichkeiten zum Erstellen einer Verfügbarkeitsgruppe
Verwenden des Assistenten zum Hinzufügen von Datenbanken zu Verfügbarkeitsgruppen (SQL Server)
Verwenden des Dialogfelds Neue Verfügbarkeitsgruppe (SQL Server Management Studio)
Problembehandlung für die Always On-Verfügbarkeitsgruppenkonfiguration
Verwandte Inhalte
Blogs:
Whitepaper:
Microsoft SQL Server Always On-Lösungshandbuch zu hoher Verfügbarkeit und Notfallwiederherstellung
Weitere Informationen
Der Datenbankspiegelungs-Endpunkt (SQL Server)
Übersicht über Always On-Verfügbarkeitsgruppen (SQL Server)