Utiliser PowerShell pour mettre à jour le schéma de synchronisation dans un groupe de synchronisation existant

S’applique à :Azure SQL Database

Cet exemple Azure PowerShell met à jour le schéma de synchronisation dans un groupe de synchronisation SQL Data Sync existant. Lorsque vous synchronisez plusieurs tables, ce script vous permet de mettre à jour efficacement le schéma de synchronisation. Cet exemple illustre l’utilisation du script UpdateSyncSchema, qui est disponible sur GitHub en tant que UpdateSyncSchema.ps1.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Notes

Cet article utilise le module Azure Az PowerShell, qui est le module PowerShell recommandé pour interagir avec Azure. Pour démarrer avec le module Az PowerShell, consulter Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Utiliser Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.

Pour démarrer Azure Cloud Shell :

Option Exemple/Lien
Sélectionnez Essayer dans le coin supérieur droit d’un bloc de code. La sélection de Essayer ne copie pas automatiquement le code dans Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. Screenshot that shows how to launch Cloud Shell in a new window.
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Pour exécuter le code de cet article dans Azure Cloud Shell :

  1. Démarrez Cloud Shell.

  2. Sélectionnez le bouton Copier dans un bloc de code pour copier le code.

  3. Collez le code dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux, ou en sélectionnant Cmd+Maj+V sur macOS.

  4. Sélectionnez Entrée pour exécuter le code.

Si vous choisissez d’installer et d’utiliser PowerShell localement, ce tutoriel nécessite Az PowerShell 1.4.0 ou ultérieur. Si vous devez effectuer une mise à niveau, consultez Installer le module Azure PowerShell. Si vous exécutez PowerShell en local, vous devez également lancer Connect-AzAccount pour créer une connexion avec Azure.

Pour obtenir une vue d’ensemble de SQL Data Sync, consultez Synchroniser des données entre plusieurs bases de données locales et cloud avec Azure SQL Data Sync.

Important

Pour le moment, SQL Data Sync ne prend pas en charge Azure SQL Managed Instance.

Exemples

Ajouter toutes les tables au schéma de synchronisation

L’exemple suivant actualise le schéma de base de données et ajoute toutes les tables valides de la base de données Hub dans le schéma de synchronisation.

UpdateSyncSchema.ps1 -SubscriptionId <subscriptionId> -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> `
    -SyncGroupName <syncGroupName> -RefreshDatabaseSchema $true -AddAllTables $true

Ajouter et supprimer des tables et des colonnes

L’exemple suivant ajoute [dbo].[Table1] et [dbo].[Table2].[Column1] au schéma de synchronisation et supprime [dbo].[Table3].

UpdateSyncSchema.ps1 -SubscriptionId <subscriptionId> -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> `
    -SyncGroupName <syncGroupName> -TablesAndColumnsToAdd "[dbo].[Table1],[dbo].[Table2].[Column1]" -TablesAndColumnsToRemove "[dbo].[Table3]"

Paramètres de script

Le script UpdateSyncSchema contient les paramètres suivants :

Paramètre Notes
$subscriptionId Abonnement dans lequel le groupe de synchronisation est créé.
$resourceGroupName Groupe de ressources dans lequel le groupe de synchronisation est créé.
$serverName Nom de serveur de la base de données Hub.
$databaseName Nom de la base de données Hub.
$syncGroupName Nom du groupe de synchronisation.
$memberName Spécifiez le nom du membre si vous voulez charger le schéma de base de données du membre de synchronisation au lieu de la base de données Hub. Si vous voulez charger le schéma de base de données à partir du Hub, laissez ce paramètre vide.
$timeoutInSeconds Délai d’attente pendant l’actualisation du schéma de base de données par le script. La valeur par défaut est de 900 secondes.
$refreshDatabaseSchema Spécifiez si le script doit actualiser le schéma de base de données. Si votre schéma de base de données a changé par rapport à la configuration précédente (par exemple si vous avez ajouté une nouvelle table ou une nouvelle colonne), vous devez actualiser le schéma avant de le reconfigurer. La valeur par défaut est false.
$addAllTables Si cette valeur est true, toutes les tables et colonnes valides sont ajoutées au schéma de synchronisation. Les valeurs de $TablesAndColumnsToAdd et $TablesAndColumnsToRemove sont ignorées.
$tablesAndColumnsToAdd Spécifiez les tables ou les colonnes à ajouter au schéma de synchronisation. Chaque nom de table ou de colonne doit être entièrement délimité avec le nom du schéma. Par exemple : [dbo].[Table1], [dbo].[Table2].[Column1]. Vous pouvez spécifier plusieurs noms de tables ou de colonnes en les séparant par des virgules (,).
$tablesAndColumnsToRemove Spécifiez les tables ou les colonnes à supprimer du schéma de synchronisation. Chaque nom de table ou de colonne doit être entièrement délimité avec le nom du schéma. Par exemple : [dbo].[Table1], [dbo].[Table2].[Column1]. Vous pouvez spécifier plusieurs noms de tables ou de colonnes en les séparant par des virgules (,).

Explication du script

Le script UpdateSyncSchema utilise les commandes suivantes. Chaque commande du tableau renvoie à une documentation spécifique.

Commande Notes
Get-AzSqlSyncGroup Retourne des informations sur un groupe de synchronisation.
Update-AzSqlSyncGroup Met à jour un groupe de synchronisation.
Get-AzSqlSyncMember Retourne des informations sur un membre de synchronisation.
Get-AzSqlSyncSchema Retourne des informations sur un schéma de synchronisation.
Update-AzSqlSyncSchema Met à jour un schéma de synchronisation.

Étapes suivantes

Pour plus d’informations sur Azure PowerShell, consultez la documentation d’Azure PowerShell.

Vous trouverez des exemples supplémentaires de scripts SQL Database PowerShell sur la page Scripts PowerShell Azure SQL Database.

Pour plus d’informations sur SQL Data Sync, consultez :

Pour plus d’informations sur SQL Database, consultez :