Partager via


Set-SqlAvailabilityGroup

Définit les paramètres d’un groupe de disponibilité.

Syntaxe

ByPath (Par défaut)

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

ByObject

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

Description

L’applet de commande Set-SqlAvailabilityGroup modifie les paramètres d’un groupe de disponibilité existant dans les groupes de disponibilité Always On. Vous pouvez modifier la préférence de sauvegarde automatisée, le niveau de condition d’échec et le délai d’expiration du contrôle d’intégrité. Vous devez exécuter cette applet de commande sur l’instance de serveur qui héberge le réplica principal.

Exemples

Exemple 1 : Modifier la période d’expiration du contrôle d’intégrité

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

Cette commande modifie la propriété de délai d’expiration du contrôle d’intégrité sur le groupe de disponibilité nommé MainAG en 120 secondes, ou deux minutes. Si le basculement automatique est activé, après cette durée, les groupes de disponibilité Always On lancent un basculement automatique.

Exemple 2 : Modifier la préférence de sauvegarde automatisée

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

Cette commande modifie la préférence de sauvegarde automatisée sur le groupe de disponibilité nommé MainAGSecondaryOnly. Les sauvegardes automatisées des bases de données dans ce groupe de disponibilité ne se produisent pas sur le réplica principal. Au lieu de cela, les sauvegardes automatisées se produisent sur le réplica secondaire qui a la priorité de sauvegarde la plus élevée.

Exemple 3 : Modifier le niveau de condition d’échec

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

Cette commande modifie le niveau de condition d’échec du groupe de MainAGdisponibilité nommé OnServerDown . Si l’instance de serveur qui héberge le réplica principal est hors connexion et si le basculement automatique est activé, les groupes de disponibilité Always On démarrent un basculement automatique.

Exemple 4 : Modifier le nombre de secondaires « SYNCHRONOUS_COMMIT » qui doivent être disponibles pour que les transactions soient validées sur le serveur principal

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

Paramètres

-AccessToken

Jeton d’accès utilisé pour s’authentifier auprès de SQL Server, comme alternative à l’authentification utilisateur/mot de passe ou Windows.

Cela peut être utilisé, par exemple, pour se connecter à SQL Azure DBSQL Azure Managed Instance un Service Principal ou un Managed Identity.

Le paramètre à utiliser peut être une chaîne représentant le jeton ou un PSAccessToken objet tel qu’il est retourné en exécutant Get-AzAccessToken -ResourceUrl https://database.windows.net.

Ce paramètre est nouveau dans v22 du module.

Propriétés du paramètre

Type:PSObject
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-AutomatedBackupPreference

Spécifie la préférence de sauvegarde automatisée pour le groupe de disponibilité. Les valeurs acceptables pour ce paramètre sont les suivantes :

  • Primaire. Spécifie que les sauvegardes se produisent toujours sur le réplica principal. Cette option prend en charge l’utilisation de fonctionnalités non disponibles lorsque la sauvegarde s’exécute sur un réplica secondaire, comme les sauvegardes différentielles.
  • SecondaryOnly. Spécifie que les sauvegardes ne sont jamais effectuées sur les réplicas principaux. Si le réplica principal est le seul réplica en ligne, la sauvegarde ne se produit pas.
  • Secondaire. Spécifie que les sauvegardes se produisent sur des réplicas secondaires, sauf si le réplica principal est le seul réplica en ligne. Ensuite, la sauvegarde se produit sur le réplica principal.
  • Aucun. Spécifie que l’état principal ou secondaire n’est pas pris en compte lors du choix du réplica qui effectue des sauvegardes. Au lieu de cela, la priorité de sauvegarde et l’état en ligne déterminent quel réplica effectue des sauvegardes.

Propriétés du paramètre

Type:AvailabilityGroupAutomatedBackupPreference
Valeur par défaut:None
Valeurs acceptées:Primary, SecondaryOnly, Secondary, None, Unknown
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Confirm

Vous invite à confirmer avant d’exécuter l’applet de commande.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:cf

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-DatabaseHealthTrigger

Spécifie s’il faut déclencher un basculement automatique du groupe de disponibilité si un réplica de base de données utilisateur au sein d’un groupe de disponibilité rencontre une condition d’échec de base de données.

Propriétés du paramètre

Type:Boolean
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Encrypt

Type de chiffrement à utiliser lors de la connexion à SQL Server.

Cette valeur est mappée à la Encrypt propriété SqlConnectionEncryptOption sur l’objet SqlConnection du pilote Microsoft.Data.SqlClient.

Dans la version 22 du module, la valeur par défaut est Optional (pour la compatibilité avec v21). Dans la version 23+ du module, la valeur par défaut est « Obligatoire », ce qui peut créer une modification cassant pour les scripts existants.

Ce paramètre est nouveau dans v22 du module.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Valeurs acceptées:Mandatory, Optional, Strict
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-FailureConditionLevel

Spécifie le comportement de basculement automatique du groupe de disponibilité. Les valeurs acceptables pour ce paramètre sont les suivantes :

  • OnServerDown. Basculement ou redémarrage si le service SQL Server s’arrête.
  • OnServerUnresponsive. Basculement ou redémarrage si une condition de valeur inférieure est satisfaite, ainsi que lorsque le service SQL Server est connecté au cluster et que le seuil HealthCheckTimeout est dépassé ou si le réplica de disponibilité actuellement en rôle principal est dans un état d’échec.
  • OnCriticalServerError. Basculement ou redémarrage si une condition de valeur inférieure est satisfaite, plus lorsqu’une erreur de serveur critique interne se produit, qui inclut une condition de mémoire insuffisante, une violation grave d’accès en écriture ou trop de vidage.
  • OnModerateServerError. Basculement ou redémarrage si une condition de valeur inférieure est satisfaite, plus si une erreur de serveur modérée se produit, ce qui inclut une condition de mémoire insuffisante persistante.
  • OnAnyQualifiedFailureConditions. Basculement ou redémarrage si une condition de valeur inférieure est satisfaite, plus si une condition d’échec éligible se produit, ce qui inclut l’épuisement des threads de travail du moteur et un blocage irrésolvable détecté.

Propriétés du paramètre

Type:AvailabilityGroupFailureConditionLevel
Valeur par défaut:None
Valeurs acceptées:OnServerDown, OnServerUnresponsive, OnCriticalServerErrors, OnModerateServerErrors, OnAnyQualifiedFailureCondition, Unknown
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-HealthCheckTimeout

Spécifie la durée, en millisecondes, après laquelle les groupes de disponibilité Always On déclarent qu’un serveur non répond comme non sain.

Propriétés du paramètre

Type:Int32
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-HostNameInCertificate

Nom d’hôte à utiliser pour valider le certificat SQL Server TLS/SSL. Vous devez passer ce paramètre si votre instance SQL Server est activée pour Forcer le chiffrement et que vous souhaitez vous connecter à une instance à l’aide du nom d’hôte/shortname. Si ce paramètre est omis, le passage du nom de domaine complet (FQDN) à -ServerInstance est nécessaire pour se connecter à une instance SQL Server activée pour Forcer le chiffrement.

Ce paramètre est nouveau dans v22 du module.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-InputObject

Spécifie le groupe de disponibilité, en tant qu’objet AvailabilityGroup, que cette applet de commande modifie.

Propriétés du paramètre

Type:AvailabilityGroup
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByObject
Position:1
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Path

Spécifie le chemin d’accès de la base de données de disponibilité que l’applet de commande modifie. Si vous ne spécifiez pas ce paramètre, cette applet de commande utilise l’emplacement de travail actuel.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByPath
Position:1
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-RequiredSynchronizedSecondariesToCommit

Nombre de secondaires de validation synchrone qui doivent être disponibles pour être en mesure de valider sur le serveur principal.

Si une SYNCHRONOUS_COMMIT base de données secondaire est déconnectée de la base de données primaire pendant un certain temps, la principale la rétrograde pour ASYNCHRONOUS_COMMIT éviter de bloquer les validations. Si le serveur principal devient indisponible et que l’utilisateur souhaite basculer vers l’un de ces secondaires, il peut entraîner une perte de données. En définissant RequiredSynchronizedSecondariesToCommit sur un certain nombre, l’utilisateur peut empêcher la perte de données, car le serveur principal commence à bloquer les validations si un trop grand nombre de secondaires sont rétrogradés à ASYNCHRONOUS_COMMIT.

La valeur par défaut de ce paramètre est 0, ce qui signifie que le serveur principal ne bloque jamais les validations. Cela est identique au comportement avant SQL Server 2017.

Propriétés du paramètre

Type:Int32
Valeur par défaut:0
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Script

Indique que cette applet de commande retourne un script Transact-SQL qui effectue la tâche effectuée par cette applet de commande.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-TrustServerCertificate

Indique si le canal sera chiffré lors du contournement de la marche à pied de la chaîne de certificats pour valider l’approbation.

Dans la version 22 du module, la valeur par défaut est $true (pour la compatibilité avec v21). Dans v23+ du module, la valeur par défaut est « $false », ce qui peut créer une modification cassant pour les scripts existants.

Ce paramètre est nouveau dans v22 du module.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-WhatIf

Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande ne s’exécute pas.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:Wi

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

Microsoft.SqlServer.Management.Smo.AvailabilityGroup