| title | PowerShell: Update SQL Data Sync sync schema |
|---|---|
| description | Azure PowerShell example script to update the sync schema for SQL Data Sync |
| services | sql-database |
| ms.service | sql-database |
| ms.subservice | sql-data-sync |
| ms.custom | sqldbrb=1 |
| ms.devlang | PowerShell |
| ms.topic | sample |
| author | rothja |
| ms.author | jroth |
| ms.reviewer | kendralittle, mathoma |
| ms.date | 03/12/2019 |
[!INCLUDEappliesto-sqldb]
This Azure PowerShell example updates the sync schema in an existing SQL Data Sync sync group. When you're syncing multiple tables, this script helps you to update the sync schema efficiently. This example demonstrates the use of the UpdateSyncSchema script, which is available on GitHub as UpdateSyncSchema.ps1.
[!INCLUDE quickstarts-free-trial-note] [!INCLUDE updated-for-az] [!INCLUDE cloud-shell-try-it.md]
If you choose to install and use PowerShell locally, this tutorial requires Az PowerShell 1.4.0 or later. If you need to upgrade, see Install Azure PowerShell module. If you are running PowerShell locally, you also need to run Connect-AzAccount to create a connection with Azure.
For an overview of SQL Data Sync, see Sync data across multiple cloud and on-premises databases with Azure SQL Data Sync.
Important
SQL Data Sync does not support Azure SQL Managed Instance at this time.
The following example refreshes the database schema and adds all valid tables in the hub database to the sync schema.
UpdateSyncSchema.ps1 -SubscriptionId <subscriptionId> -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> `
-SyncGroupName <syncGroupName> -RefreshDatabaseSchema $true -AddAllTables $true
The following example adds [dbo].[Table1] and [dbo].[Table2].[Column1] to the sync schema and removes [dbo].[Table3].
UpdateSyncSchema.ps1 -SubscriptionId <subscriptionId> -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> `
-SyncGroupName <syncGroupName> -TablesAndColumnsToAdd "[dbo].[Table1],[dbo].[Table2].[Column1]" -TablesAndColumnsToRemove "[dbo].[Table3]"
The UpdateSyncSchema script has the following parameters:
| Parameter | Notes |
|---|---|
| $subscriptionId | The subscription where the sync group is created. |
| $resourceGroupName | The resource group where the sync group is created. |
| $serverName | The server name of the hub database. |
| $databaseName | The hub database name. |
| $syncGroupName | The sync group name. |
| $memberName | Specify the member name if you want to load the database schema from the sync member instead of from the hub database. If you want to load the database schema from the hub, leave this parameter empty. |
| $timeoutInSeconds | Timeout when the script refreshes database schema. Default is 900 seconds. |
| $refreshDatabaseSchema | Specify whether the script needs to refresh the database schema. If your database schema changed from the previous configuration (for example, if you added a new table or anew column), you need to refresh the schema before you reconfigure it. Default is false. |
| $addAllTables | If this value is true, all valid tables and columns are added to the sync schema. The values of $TablesAndColumnsToAdd and $TablesAndColumnsToRemove are ignored. |
| $tablesAndColumnsToAdd | Specify tables or columns to be added to the sync schema. Each table or column name needs to be fully delimited with the schema name. For example: [dbo].[Table1], [dbo].[Table2].[Column1]. Multiple table or column names can be specified and separated by a comma (,). |
| $tablesAndColumnsToRemove | Specify tables or columns to be removed from the sync schema. Each table or column name needs to be fully delimited with schema name. For example: [dbo].[Table1], [dbo].[Table2].[Column1]. Multiple table or column names can be specified and separated by a comma (,). |
The UpdateSyncSchema script uses the following commands. Each command in the table links to command-specific documentation.
| Command | Notes |
|---|---|
| Get-AzSqlSyncGroup | Returns information about a sync group. |
| Update-AzSqlSyncGroup | Updates a sync group. |
| Get-AzSqlSyncMember | Returns information about a sync member. |
| Get-AzSqlSyncSchema | Returns information about a sync schema. |
| Update-AzSqlSyncSchema | Updates a sync schema. |
For more information about Azure PowerShell, see Azure PowerShell documentation.
Additional SQL Database PowerShell script samples can be found in Azure SQL Database PowerShell scripts.
For more information about SQL Data Sync, see:
- Overview - Sync data between Azure SQL Database and SQL Server with SQL Data Sync in Azure
- Set up Data Sync
- Data Sync Agent - Data Sync Agent for SQL Data Sync in Azure
- Best practices - Best practices for SQL Data Sync in Azure
- Monitor - Monitor SQL Data Sync with Azure Monitor logs
- Troubleshoot - Troubleshoot issues with SQL Data Sync in Azure
- Update the sync schema
- Use Transact-SQL - Automate the replication of schema changes in SQL Data Sync in Azure
For more information about SQL Database, see: