Compartir a través de

使用 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 数据同步的详细信息,请参阅:

有关 SQL 数据库的详细信息,请参阅: