Erstellen einer Verfügbarkeitsgruppe (SQL Server PowerShell)

 

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

System_CAPS_ICON_note.jpg Hinweis


Eine Einführung zu Verfügbarkeitsgruppen finden Sie unter [Übersicht über Always On-Verfügbarkeitsgruppen (SQL Server)](../Topic/Overview%20of%20Always On%20Availability%20Groups%20(SQL%20Server).md).

System_CAPS_ICON_note.jpg Hinweis


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

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. Für weitere Informationen empfehlen wir Ihnen dringend, diesen Artikel zu lesen: [Voraussetzungen, Einschränkungen und Empfehlungen für Always On-Verfügbarkeitsgruppen (SQL Server)](../Topic/Prerequisites,%20Restrictions,%20and%20Recommendations%20for%20Always On%20Availability%20Groups%20(SQL%20Server).md).

Sicherheit

Berechtigungen

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

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.

TaskPowerShell-Cmdlets (falls verfügbar) oder Transact-SQL-AnweisungWo der Task auszuführen ist*
Erstellen eines Datenbankspiegelungs-Endpunkts (einmal pro SQL Server-Instanz)New-SqlHadrEndPointFühren Sie diesen Task auf jeder Serverinstanz aus, auf der der Datenbankspiegelungs-Endpunkt fehlt.

Hinweis: Verwenden Sie Set-SqlHadrEndpoint, um einen vorhandenen Datenbankspiegelungs-Endpunkt zu ändern.
Erstellen der VerfügbarkeitsgruppeVerwenden 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ügbarkeitsgruppeJoin-SqlAvailabilityGroupFühren Sie diesen Task auf jeder Serverinstanz aus, auf der ein sekundäres Replikat gehostet wird.
Vorbereiten der sekundären DatenbankBackup-SqlDatabase und Restore-SqlDatabaseErstellen 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ügbarkeitsgruppeAdd-SqlAvailabilityDatabaseFühren Sie diesen Task auf jeder Serverinstanz aus, auf der ein sekundäres Replikat gehostet wird.

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

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

System_CAPS_ICON_note.jpg 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.

  1. Wechseln Sie mit cd in das Verzeichnis 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.

    System_CAPS_ICON_note.jpg Hinweis


    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.

System_CAPS_ICON_note.jpg 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.

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 -NoRecovery-Option 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 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 "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"  

So konfigurieren Sie eine Serverinstanz für Always On-Verfügbarkeitsgruppen

  • [Aktivieren und Deaktivieren von Always On-Verfügbarkeitsgruppen (SQL Server)](../Topic/Enable%20and%20Disable%20Always On%20Availability%20Groups%20(SQL%20Server).md)

  • [Erstellen eines Datenbankspiegelungs-Endpunkts für Always On-Verfügbarkeitsgruppen (SQL Server PowerShell)](../Topic/Create%20a%20Database%20Mirroring%20Endpoint%20for%20Always On%20Availability%20Groups%20(SQL%20Server%20PowerShell).md)

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

So beheben Sie Probleme für die Always On-Verfügbarkeitsgruppenkonfiguration

  • [Problembehandlung für die Always On-Verfügbarkeitsgruppenkonfiguration (SQL Server)](../Topic/Troubleshoot%20Always On%20Availability%20Groups%20Configuration%20(SQL%20Server).md)

  • [Problembehandlung bei einem fehlgeschlagenen Vorgang zum Hinzufügen einer Datei (Always On-Verfügbarkeitsgruppen)](../Topic/Troubleshoot%20a%20Failed%20Add-File%20Operation%20(Always On%20Availability%20Groups).md)

Der Datenbankspiegelungs-Endpunkt (SQL Server)
[Übersicht über Always On-Verfügbarkeitsgruppen (SQL Server)](../Topic/Overview%20of%20Always On%20Availability%20Groups%20(SQL%20Server).md)

Community-Beiträge

HINZUFÜGEN
Anzeigen: