Set-SqlAvailabilityGroup

Legt Einstellungen für eine Verfügbarkeitsgruppe fest.

Syntax

Set-SqlAvailabilityGroup
   [-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
   [-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
   [-HealthCheckTimeout <Int32>]
   [-DatabaseHealthTrigger <Boolean>]
   [-RequiredSynchronizedSecondariesToCommit <Int32>]
   [[-Path] <String>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-SqlAvailabilityGroup
   [-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
   [-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
   [-HealthCheckTimeout <Int32>]
   [-DatabaseHealthTrigger <Boolean>]
   [-RequiredSynchronizedSecondariesToCommit <Int32>]
   [-InputObject] <AvailabilityGroup>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Beschreibung

Das Cmdlet Set-SqlAvailabilityGroup ändert Einstellungen für eine vorhandene Verfügbarkeitsgruppe in Always On Verfügbarkeitsgruppen. Sie können die Einstellung für die automatisierte Sicherung, die Fehlerbedingungsebene und das Timeout der Integritätsprüfung ändern. Sie müssen dieses Cmdlet auf dem Server instance ausführen, der das primäre Replikat hostet.

Beispiele

Beispiel 1: Ändern des Timeoutzeitraums für die Integritätsprüfung

PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MAinAG" -HealthCheckTimeout 120000

Mit diesem Befehl wird die Timeouteigenschaft der Integritätsprüfung für die Verfügbarkeitsgruppe in MainAG120 Sekunden oder zwei Minuten geändert. Wenn das automatische Failover aktiviert ist, wird nach dieser Zeitspanne Always On Verfügbarkeitsgruppen ein automatisches Failover initiiert.

Beispiel 2: Ändern der Einstellung für automatisierte Sicherungen

PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -AutomatedBackupPreference SecondaryOnly

Mit diesem Befehl wird die Einstellung für die automatisierte Sicherung für die Verfügbarkeitsgruppe mit dem Namen MainAGSecondaryOnlygeändert. Automatisierte Sicherungen von Datenbanken in dieser Verfügbarkeitsgruppe erfolgen nicht auf dem primären Replikat. Stattdessen werden automatisierte Sicherungen auf dem sekundären Replikat durchgeführt, das die höchste Sicherungspriorität hat.

Beispiel 3: Ändern der Fehlerbedingungsebene

PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -FailureConditionLevel OnServerDown

Mit diesem Befehl wird die Fehlerbedingungsstufe für die Verfügbarkeitsgruppe geändert MainAGOnServerDown. Wenn der Server instance, der das primäre Replikat hostet, offline geht und das automatische Failover aktiviert ist, startet Always On Verfügbarkeitsgruppen ein automatisches Failover.

Beispiel 4: Ändern der Anzahl der "SYNCHRONOUS_COMMIT"-Sekundärdateien, die für Transaktionen zum Commit für die primäre Transaktion verfügbar sein müssen

# Get server and AG
PS C:\> CD 'SQLSERVER:\SQL\some-hostname\Default'
PS SQLSERVER:\SQL\some-hostname\Default> $server = Get-Item $PWD
PS SQLSERVER:\SQL\some-hostname\Default> $ag = $server.AvailabilityGroups[0]
# Alter AG with RequiredCopiesToCommit = 4
PS SQLSERVER:\SQL\some-hostname\Default> $ag | Set-SqlAvailabilityGroup -RequiredSynchronizedSecondariesToCommit 4

Note: an exception will be thrown if the -RequiredSynchronizedSecondariesToCommit parameter is used when
the target server version is SQL Server 2016 or lower.

Parameter

-AccessToken

Das Zugriffstoken, das zur Authentifizierung bei SQL Server verwendet wird, als Alternative zur Benutzer-/Kennwort- oder Windows-Authentifizierung.

Dies kann z. B. verwendet werden, um eine Verbindung mit SQL Azure DB und SQL Azure Managed Instance mithilfe Service Principal von herzustellen Managed Identity.

Der zu verwendende Parameter kann entweder eine Zeichenfolge sein, die das Token darstellt, oder ein PSAccessToken Objekt, das durch ausführen Get-AzAccessToken -ResourceUrl https://database.windows.netzurückgegeben wird.

Dieser Parameter ist neu in v22 des Moduls.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AutomatedBackupPreference

Gibt die Einstellung für die automatisierte Sicherung für die Verfügbarkeitsgruppe an. Zulässige Werte für diesen Parameter:

  • Primär. Gibt an, dass die Sicherungen immer auf dem primären Replikat erfolgen. Diese Option unterstützt die Verwendung von Features, die nicht verfügbar sind, wenn die Sicherung auf einem sekundären Replikat ausgeführt wird, z. B. differenzielle Sicherungen.
  • SecondaryOnly: Gibt an, dass Sicherungen nie für primäre Replikate ausgeführt werden. Wenn das primäre Replikat das einzige Replikat online ist, erfolgt die Sicherung nicht.
  • Sekundären. Gibt an, dass Sicherungen auf sekundären Replikaten erfolgen, es sei denn, das primäre Replikat ist das einzige Replikat online. In diesem Fall erfolgt die Sicherung auf dem primären Replikat.
  • Keine. Gibt an, dass der primäre oder sekundäre status bei der Entscheidung, welches Replikat Sicherungen ausführt, nicht berücksichtigt wird. Stattdessen bestimmen Sicherungspriorität und Online-status, welches Replikat Sicherungen ausführt.
Type:AvailabilityGroupAutomatedBackupPreference
Accepted values:Primary, SecondaryOnly, Secondary, None, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseHealthTrigger

Gibt an, ob ein automatisches Failover der Verfügbarkeitsgruppe ausgelöst werden soll, wenn bei einem Benutzerdatenbankreplikat innerhalb einer Verfügbarkeitsgruppe eine Datenbankfehlerbedingung auftritt.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

Der Verschlüsselungstyp, der beim Herstellen einer Verbindung mit SQL Server verwendet werden soll.

Dieser Wert wird der Encrypt Eigenschaft SqlConnectionEncryptOption des SqlConnection-Objekts des Microsoft.Data.SqlClient-Treibers zugeordnet.

In v22 des Moduls ist Optional der Standardwert (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "Obligatorisch", wodurch möglicherweise eine Breaking Change für vorhandene Skripts entsteht.

Dieser Parameter ist neu in v22 des Moduls.

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FailureConditionLevel

Gibt das automatische Failoververhalten der Verfügbarkeitsgruppe an. Zulässige Werte für diesen Parameter:

  • OnServerDown. Failover oder Neustart, wenn der SQL Server Dienst beendet wird.
  • OnServerUnresponsive. Failover oder Neustart, wenn eine Bedingung mit einem niedrigeren Wert erfüllt ist, und wenn der SQL Server-Dienst mit dem Cluster verbunden ist und der HealthCheckTimeout-Schwellenwert überschritten wird, oder wenn das Verfügbarkeitsreplikat, das sich derzeit in der primären Rolle befindet, einen fehlerbehafteten Zustand aufweist.
  • OnCriticalServerError. Failover oder Neustart, wenn eine Bedingung mit einem niedrigeren Wert erfüllt ist, und wenn ein interner kritischer Serverfehler auftritt, der zu einer fehlenden Arbeitsspeicherbedingung, einer schwerwiegenden Schreibzugriffsverletzung oder zu viel Dumping gehört.
  • OnModerateServerError. Failover oder Neustart, wenn eine Bedingung mit einem niedrigeren Wert erfüllt ist, und wenn ein moderater Serverfehler auftritt, der persistente Nicht-Speicherbedingung enthält.
  • OnAnyQualifiedFailureConditions. Failover oder Neustart, wenn eine Bedingung mit einem niedrigeren Wert erfüllt ist, sowie wenn eine qualifizierende Fehlerbedingung auftritt, die die Erschöpfung des Engine-Workerthreads und den erkannten unlösbaren Deadlock umfasst.
Type:AvailabilityGroupFailureConditionLevel
Accepted values:OnServerDown, OnServerUnresponsive, OnCriticalServerErrors, OnModerateServerErrors, OnAnyQualifiedFailureCondition, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HealthCheckTimeout

Gibt die Zeitspanne in Millisekunden an, nach der Always On Verfügbarkeitsgruppen einen nicht reagierenden Server als fehlerhaft deklariert.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

Der Hostname, der beim Überprüfen des TLS/SSL-Zertifikats von SQL Server verwendet werden soll. Sie müssen diesen Parameter übergeben, wenn Ihr SQL Server instance für Verschlüsselung erzwingen aktiviert ist und Sie eine Verbindung mit einer instance mithilfe von hostname/shortname herstellen möchten. Wenn dieser Parameter nicht angegeben wird, ist das Übergeben des vollqualifizierten Domänennamens (Fully Qualified Domain Name, FQDN) an -ServerInstance erforderlich, um eine Verbindung mit einem für Die Verschlüsselung erzwingen aktivierten SQL Server instance herzustellen.

Dieser Parameter ist neu in v22 des Moduls.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Gibt die Verfügbarkeitsgruppe als AvailabilityGroup-Objekt an, das dieses Cmdlet ändert.

Type:AvailabilityGroup
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

Gibt den Pfad der Verfügbarkeitsdatenbank an, die das Cmdlet ändert. Wenn Sie diesen Parameter nicht angeben, verwendet dieses Cmdlet den aktuellen Arbeitsstandort.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequiredSynchronizedSecondariesToCommit

Die Anzahl der synchronen Commit-Sekundärdateien, die verfügbar sein müssen, um für den primären Commit zu commiten.

Wenn ein sekundäres SYNCHRONOUS_COMMIT Element für einige Zeit von der primären Getrennt ist, wird es vom primären so herabgestuft, dass ASYNCHRONOUS_COMMIT Commits nicht blockiert werden. Wenn das primäre Element dann nicht mehr verfügbar ist und der Benutzer ein Failover zu einer dieser Sekundärdateien durchführen möchte, kann es zu Datenverlusten führen. Durch Festlegen von RequiredSynchronizedSecondariesToCommit auf eine Bestimmte Zahl kann der Benutzer den Datenverlust verhindern, da der primäre Commit blockiert, wenn zu viele Sekundärdateien in ASYNCHRONOUS_COMMITherabgestuft werden.

Der Standardwert dieser Einstellung ist 0. Dies bedeutet, dass der primäre Commit nie blockiert. Dies ist identisch mit dem Verhalten vor SQL Server 2017.

Type:Int32
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

Gibt an, dass dieses Cmdlet ein Transact-SQL-Skript zurückgibt, das die Aufgabe ausführt, die dieses Cmdlet ausführt.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

Gibt an, ob der Kanal verschlüsselt wird, während das Durchlaufen der Zertifikatkette zur Überprüfung der Vertrauensstellung umgangen wird.

In v22 des Moduls ist $true der Standardwert (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "$false", wodurch möglicherweise eine Breaking Change für vorhandene Skripts entsteht.

Dieser Parameter ist neu in v22 des Moduls.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

Microsoft.SqlServer.Management.Smo.AvailabilityGroup