使用 PowerShell 更新现有同步组中的同步架构
适用于:Azure SQL 数据库
重要
SQL Data Sync 将于 2027 年 9 月 30 日停用。 请考虑迁移到备用数据复制/同步解决方案。
此 Azure PowerShell 示例更新现有“SQL 数据同步”同步组中的同步架构。 同步多个表时,此脚本可帮助你有效地更新同步架构。 此示例演示如何使用 UpdateSyncSchema 脚本,该脚本在 GitHub 上以 UpdateSyncSchema.ps1 的形式提供。
如果没有 Azure 试用版订阅,请在开始前创建一个试用版订阅。
注意
本文使用 Azure Az PowerShell 模块,这是与 Azure 交互时推荐使用的 PowerShell 模块。 若要开始使用 Az PowerShell 模块,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
本教程需要 Az PowerShell 1.4.0 或更高版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 此外,还需要运行 Connect-AzAccount -Environment AzureChinaCloud
以创建与 Azure 的连接。
有关 SQL 数据同步的概述,请参阅什么是适用于 Azure 的 SQL 数据同步?
SQL 数据同步目前不支持 Azure SQL 托管实例或 Azure Synapse Analytics。
示例
将所有表添加到同步架构
以下示例可刷新数据库架构,并可将中心数据库中的所有有效表添加到同步架构。
UpdateSyncSchema.ps1 -SubscriptionId <subscriptionId> -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> `
-SyncGroupName <syncGroupName> -RefreshDatabaseSchema $true -AddAllTables $true
添加和删除表和列
以下示例将 [dbo].[Table1]
和 [dbo].[Table2].[Column1]
添加到同步架构并删除 [dbo].[Table3]
。
UpdateSyncSchema.ps1 -SubscriptionId <subscriptionId> -ResourceGroupName <resourceGroupName> -ServerName <serverName> -DatabaseName <databaseName> `
-SyncGroupName <syncGroupName> -TablesAndColumnsToAdd "[dbo].[Table1],[dbo].[Table2].[Column1]" -TablesAndColumnsToRemove "[dbo].[Table3]"
脚本参数
UpdateSyncSchema 脚本具有以下参数:
参数 | 说明 |
---|---|
$subscriptionId | 在其中创建同步组的订阅。 |
$resourceGroupName | 在其中创建同步组的资源组。 |
$serverName | 中心数据库的服务器名称。 |
$databaseName | 中心数据库名称。 |
$syncGroupName | 同步组名称。 |
$memberName | 如果要从同步成员而不是中心数据库加载数据库架构,请指定成员名称。 如果要从中心加载数据库架构,则将此参数保留为空。 |
$timeoutInSeconds | 该脚本刷新数据库架构时超时。 默认为 900 秒。 |
$refreshDatabaseSchema | 指定该脚本是否需要刷新数据库架构。 如果数据库架构已从以前的配置更改(例如,如果添加了新表或新列),则需要在重新配置之前刷新架构。 默认值为 false。 |
$addAllTables | 如果此值为 true,所有有效的表和列都将添加到同步架构。 $TablesAndColumnsToAdd 和 $TablesAndColumnsToRemove 的值将被忽略。 |
$tablesAndColumnsToAdd | 指定要添加到同步架构的表或列。 每个表名或列名必须与架构名称完全分隔。 例如:[dbo].[Table1] 、[dbo].[Table2].[Column1] 。 可以指定多个表名或列名,并将其用逗号 (,) 分隔。 |
$tablesAndColumnsToRemove | 指定要从同步架构中删除的表或列。 每个表名或列名必须与架构名称完全分隔。 例如:[dbo].[Table1] 、[dbo].[Table2].[Column1] 。 可以指定多个表名或列名,并将其用逗号 (,) 分隔。 |
脚本说明
UpdateSyncSchema 脚本使用以下命令。 表中的每条命令链接到特定于命令的文档。
命令 | 说明 |
---|---|
Get-AzSqlSyncGroup | 返回有关同步组的信息。 |
Update-AzSqlSyncGroup | 更新同步组。 |
Get-AzSqlSyncMember | 返回有关同步成员的信息。 |
Get-AzSqlSyncSchema | 返回有关同步架构的信息。 |
Update-AzSqlSyncSchema | 更新同步架构。 |
相关内容
有关 Azure PowerShell 的详细信息,请参阅 Azure PowerShell 文档。
可以在 Azure SQL 数据库 PowerShell 脚本中找到更多 SQL 数据库 PowerShell 脚本示例。
有关 SQL 数据同步的详细信息,请参阅:
- 概述 - 使用 Azure 中的 SQL 数据同步在 Azure SQL 数据库和 SQL Server 之间同步数据
- 设置数据同步
- Data Sync Agent - Azure 中 SQL 数据同步的 Data Sync Agent
- 最佳做法 - Azure 中 SQL 数据同步的最佳做法
- 故障排除 - 排查 Azure 中的 SQL 数据同步问题
- 更新同步架构
- 使用 Transact-SQL - 在 Azure 中的 SQL 数据同步中自动复制架构更改
有关 SQL 数据库的详细信息,请参阅: