Partager via


Switch-SqlAvailabilityGroup

Démarre un basculement d’un groupe de disponibilité vers un réplica secondaire.

Syntaxe

Switch-SqlAvailabilityGroup
      [-AllowDataLoss]
      [-Force]
      [[-Path] <String[]>]
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [-ProgressAction <ActionPreference>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Switch-SqlAvailabilityGroup
      [-AllowDataLoss]
      [-Force]
      [-InputObject] <AvailabilityGroup[]>
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [-ProgressAction <ActionPreference>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

L’applet de commande Switch-SqlAvailabilityGroup démarre un basculement d’un groupe de disponibilité vers un réplica secondaire spécifié. Exécutez cette applet de commande sur le réplica secondaire cible. Après le basculement, le réplica secondaire devient le réplica principal.

Exemples

Exemple 1 : Basculer un groupe de disponibilité

PS C:\> Switch-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MainAG"

Cette commande effectue un basculement manuel du groupe de disponibilité MainAG vers l’instance de serveur nommée SecondaryServer\InstanceName. Cette commande n’autorise pas la perte de données. Exécutez cette commande sur l’instance de serveur qui héberge le réplica secondaire vers lequel basculer.

Exemple 2 : Forcer le basculement d’un groupe de disponibilité

PS C:\> Switch-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -AllowDataLoss

Cette commande effectue un basculement manuel du groupe de disponibilité MainAG vers l’instance de serveur nommée SecondaryServer\InstanceName. La commande spécifie le paramètre AllowDataLoss. Par conséquent, le basculement a le risque de perte de données et la commande vous invite à confirmer. Spécifiez le paramètre Forcer pour ignorer la confirmation.

Exemple 3 : Créer un script pour basculer un groupe de disponibilité

PS C:\> Switch-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -Script

Cette commande crée un script Transact-SQL qui effectue un basculement manuel du groupe de disponibilité MainAG vers l’instance de serveur nommée SecondaryServer\InstanceName. Le script n’autorise pas la perte de données. La commande n’entraîne pas le basculement.

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 DB et SQL Azure Managed Instance à l’aide d’un Service Principal ou d’un Managed Identity.

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

Ce paramètre est nouveau dans v22 du module.

Type:PSObject
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AllowDataLoss

Indique que cette applet de commande démarre un basculement forcé vers le réplica secondaire cible. La perte de données est possible. Sauf si vous spécifiez le paramètre Force ou Script, l’applet de commande vous invite à confirmer.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Confirm

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

Type:SwitchParameter
Alias:cf
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Encrypt

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

Cette valeur est mappée à la propriété EncryptSqlConnectionEncryptOption 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.

Type:String
Valeurs acceptées:Mandatory, Optional, Strict
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Force

Force l’exécution de la commande sans demander la confirmation de l’utilisateur. Cette applet de commande vous invite à confirmer uniquement si vous spécifiez le paramètre AllowDataLoss .

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-HostNameInCertificate

Nom d’hôte à utiliser pour valider le certificat TLS/SSL SQL Server. 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.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Spécifie le groupe de disponibilité que cette applet de commande bascule.

Type:AvailabilityGroup[]
Position:1
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Path

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

Type:String[]
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ProgressAction

Détermine comment PowerShell répond aux mises à jour de progression générées par un script, une applet de commande ou un fournisseur, telles que les barres de progression générées par l’applet de commande Write-Progress. L’applet de commande Write-Progress crée des barres de progression qui affichent l’état d’une commande.

Type:ActionPreference
Alias:proga
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-WhatIf

Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Alias:wi
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]

Vous pouvez transmettre un groupe de disponibilité à cette applet de commande.