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 MainAG
120
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 MainAG
SecondaryOnly
geä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 MainAG
OnServerDown
.
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.net
zurü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_COMMIT
herabgestuft 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