Erstellen einer Verfügbarkeitsgruppe (SQL Server PowerShell)

In diesem Thema wird beschrieben, wie PowerShell-Cmdlets zum Erstellen und Konfigurieren einer AlwaysOn-Verfügbarkeitsgruppe mithilfe von PowerShell in SQL Server 2012 verwendet 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ügbarkeitsreplikate bezeichnet werden und das Failover unterstützen.

HinweisHinweis

Eine Einführung in Verfügbarkeitsgruppen finden Sie unter Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server).

  • Vorbereitungen:  

    Voraussetzungen, Einschränkungen und Empfehlungen

    Sicherheit

    Zusammenfassung von Tasks und entsprechenden PowerShell-Cmdlets

    So richten Sie den SQL Server PowerShell-Anbieter ein und verwenden ihn

  • So erstellen und konfigurieren Sie eine Verfügbarkeitsgruppe unter Verwendung von:  Verwenden von PowerShell zum Erstellen und Konfigurieren einer Verfügbarkeitsgruppe

  • **Beispiele: ** Verwenden von PowerShell zum Erstellen einer Verfügbarkeitsgruppe

  • Verwandte Aufgaben

  • Verwandte Inhalte

HinweisHinweis

Als Alternative zur Verwendung von PowerShell-Cmdlets können Sie den Assistenten zum Erstellen einer Verfügbarkeitsgruppe oder Transact-SQL verwenden. Weitere Informationen finden Sie unter Verwenden des Dialogfelds Neue Verfügbarkeitsgruppe (SQL Server Management Studio) oder Erstellen einer Verfügbarkeitsgruppe (Transact-SQL).

Vorbereitungen

Es wird dringend empfohlen, dass Sie diesen Abschnitt lesen, bevor Sie versuchen, Ihre erste Verfügbarkeitsgruppe zu erstellen.

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 AlwaysOn-Verfügbarkeitsgruppen-Anforderungen erfüllt sind und dass Sie die Empfehlungen berücksichtigen. Es empfiehlt sich, Voraussetzungen, Einschränkungen und Empfehlungen für AlwaysOn-Verfügbarkeitsgruppen (SQL Server) zu lesen, um weitere Informationen zu erhalten.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Sicherheit

Berechtigungen

Erfordert die Mitgliedschaft in der festen sysadmin-Serverrolle und die CREATE AVAILABILITY GROUP-Serverberechtigung, ALTER ANY AVAILABILITY GROUP-Berechtigung oder CONTROL SERVER-Berechtigung.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Zusammenfassung von Tasks und entsprechenden PowerShell-Cmdlets

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 AlwaysOn-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 der Task 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.

HinweisHinweis

Verwenden Sie Set-SqlHadrEndpoint, um einen vorhandenen Datenbankspiegelungs-Endpunkt zu ändern.

Erstellen der Verfügbarkeitsgruppe

Verwenden Sie zuerst das New-SqlAvailabilityReplica-Cmdlet mit dem -AsTemplate-Parameter, um ein Verfügbarkeitsreplikatobjekt im Arbeitsspeicher 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 mithilfe des New-SqlAvailabilityGroup-Cmdlets, und verweisen Sie auf die Verfügbarkeitsreplikatobjekte.

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 Verknüpfen der einzelnen sekundären Datenbanken mit der Verfügbarkeitsgruppe

Add-SqlAvailabilityDatabase

Führen Sie diesen Task auf jeder Serverinstanz aus, auf der ein sekundäres Replikat gehostet wird.

* Zur Ausführung eines bestimmten Tasks wechseln Sie in das Verzeichnis (cd) der angegebenen Serverinstanz(en).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

So richten Sie den SQL Server PowerShell-Anbieter ein und verwenden ihn

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwenden von PowerShell zum Erstellen und Konfigurieren einer Verfügbarkeitsgruppe

HinweisHinweis

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 Aufrufen der SQL Server PowerShell-Hilfe.

  1. Wechseln Sie in das Verzeichnis (cd) der Serverinstanz, die das primäre Replikat hosten soll.

  2. Erstellen Sie für das primäre Replikat ein Verfügbarkeitsreplikatobjekt im Arbeitsspeicher.

  3. Erstellen Sie für jedes der sekundären Replikate ein Verfügbarkeitsreplikatobjekt im Arbeitsspeicher.

  4. Erstellen Sie die Verfügbarkeitsgruppe.

    HinweisHinweis

    Die maximale Länge eines Verfügbarkeitsgruppennamens beträgt 128 Zeichen.

  5. 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).

  6. 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.

  7. Verknüpfen Sie alle neuen sekundären Datenbanken mit der Verfügbarkeitsgruppe. Weitere Informationen finden Sie unter Verknüpfen eines sekundären Replikats mit einer Verfügbarkeitsgruppe (SQL Server).

  8. Verwenden Sie optional den dir-Befehl von Windows, um den Inhalt der neuen Verfügbarkeitsgruppe zu überprüfen.

HinweisHinweis

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 CONNECT-Berechtigung für den lokalen Datenbankspiegelungs-Endpunkt.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Beispiel: Verwenden von PowerShell zum Erstellen einer Verfügbarkeitsgruppe

Im folgenden PowerShell-Beispiel wird eine einfache Verfügbarkeitsgruppe mit dem Namen MyAG erstellt und konfiguriert, die über zwei Verfügbarkeitsreplikate und eine Verfügbarkeitsdatenbank verfügt. Beispiel:

  1. Sichert MyDatabase und das dazugehörige Transaktionsprotokoll.

  2. Stellt MyDatabase und das dazugehörige Transaktionsprotokoll mithilfe der Option -NoRecovery wieder her.

  3. Erstellt eine speicherinterne Darstellung des primären Replikats, die von der lokalen Instanz von SQL Server (mit dem Namen PrimaryComputer\Instance) gehostet wird.

  4. Erstellt eine speicherinterne Darstellung des sekundären Replikats, die von einer Instanz von SQL Server (mit dem Namen SecondaryComputer\Instance) gehostet wird.

  5. Erstellt eine Verfügbarkeitsgruppe mit dem Namen MyAG.

  6. Verknüpft das sekundäre Replikat mit der Verfügbarkeitsgruppe.

  7. 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 11 `
    -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 11 `
    -AsTemplate

# Create the availability group
New-SqlAvailabilityGroup `
    -Name "MyAG" `
    -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 "MyAG"

# Join the secondary database to the availability group.
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\MyAG" -Database "MyDatabase"

Verwandte Aufgaben

So konfigurieren Sie eine Serverinstanz für AlwaysOn-Verfügbarkeitsgruppen

So konfigurieren Sie Verfügbarkeitsgruppen- und Replikateigenschaften

So schließen Sie die Konfiguration von Verfügbarkeitsgruppen ab

Alternative Möglichkeiten zum Erstellen einer Verfügbarkeitsgruppe

Problembehandlung für die AlwaysOn-Verfügbarkeitsgruppenkonfiguration

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwandte Inhalte

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Siehe auch

Konzepte

Der Datenbankspiegelungs-Endpunkt (SQL Server)

Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server)