Add-SqlAvailabilityDatabase
Ajoute des bases de données principales à un groupe de disponibilité ou joint des bases de données secondaires à un groupe de disponibilité.
Syntaxe
Add-SqlAvailabilityDatabase
-Database <String[]>
[[-Path] <String[]>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Add-SqlAvailabilityDatabase
-Database <String[]>
[-InputObject] <AvailabilityGroup[]>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet de commande Add-SqlAvailabilityDatabase ajoute des bases de données principales à un groupe de disponibilité ou joint des bases de données secondaires à un groupe de disponibilité. Le paramètre InputObject ou Path spécifie le groupe de disponibilité. Une base de données ne peut appartenir qu’à un seul groupe de disponibilité.
Pour ajouter des bases de données à un groupe de disponibilité, exécutez cette applet de commande sur l’instance de serveur qui héberge le réplica principal. Spécifiez une ou plusieurs bases de données utilisateur locales.
Pour joindre une base de données secondaire au groupe de disponibilité, préparez manuellement la base de données secondaire sur l’instance de serveur qui héberge le réplica secondaire. Exécutez ensuite cette applet de commande sur l’instance de serveur qui héberge le réplica secondaire.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Exemples
Exemple 1 : Ajouter une base de données à un groupe de disponibilité
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"
Cette commande ajoute la base de données « Database16 » au groupe de disponibilité « MainAG ». Exécutez cette commande sur l’instance de serveur principal du groupe de disponibilité. Cette commande ne prépare pas les bases de données secondaires pour la synchronisation des données.
Exemple 2 : Joindre une base de données à un groupe de disponibilité
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"
Cette commande joint une base de données secondaire nommée « Database16 » au groupe de disponibilité « MainAG » sur l’une des instances de serveur qui héberge un réplica secondaire.
Exemple 3 : Ajouter une base de données et joindre une base de données secondaire à un groupe de disponibilité
PS C:\> $DatabaseBackupFile = "\\share\backups\Database16.bak"
PS C:\> $LogBackupFile = "\\share\backups\Database16.trn"
PS C:\> $AGPrimaryPath = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> $MyAGSecondaryPath = "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "PrimaryServer\InstanceName"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "PrimaryServer\InstanceName" -BackupAction Log
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "SecondaryServer\InstanceName" -NoRecovery
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "SecondaryServer\InstanceName" -RestoreAction Log -NoRecovery
PS C:\> Add-SqlAvailabilityDatabase -Path $AGPrimaryPath -Database 'Database16'
PS C:\> Add-SqlAvailabilityDatabase -Path $AGSecondaryPath -Database "Database16"
Cet exemple prépare une base de données secondaire à partir d’une base de données sur l’instance de serveur qui héberge le réplica principal d’un groupe de disponibilité. Il ajoute la base de données à un groupe de disponibilité en tant que base de données primaire. Enfin, il joint la base de données secondaire au groupe de disponibilité.
La sixième commande sauvegarde le fichier journal de « Database16 » sur le serveur principal à l’emplacement dans $LogBackupFile.
Exemple 4 : Créer un script pour ajouter une base de données à un groupe de disponibilité
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16" -Script
Cette commande crée un script Transact-SQL qui ajoute la base de données « Database16 » au groupe de disponibilité « MainAG ».
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 |
-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 |
-Database
Spécifie un tableau de bases de données utilisateur. Cette applet de commande ajoute ou joint les bases de données spécifiées par ce paramètre au groupe de disponibilité. Les bases de données que vous spécifiez doivent résider sur l’instance locale de SQL Server.
Type: | String[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
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é Encrypt
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.
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 |
-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é, en tant qu’objet AvailabilityGroup, auquel cette applet de commande ajoute ou joint des bases de données.
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 d’un groupe de disponibilité auquel cette applet de commande ajoute ou joint des bases de données. 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
System.String[], Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]
Sorties
System.Object