你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 PowerShell 更新现有同步组中的同步架构

适用于: Azure SQL 数据库

重要

SQL Data Sync 将于 2027 年 9 月 30 日停用。 请考虑迁移到备用数据复制/同步解决方案

此 Azure PowerShell 示例更新现有“SQL 数据同步”同步组中的同步架构。 同步多个表时,此脚本可帮助你有效地更新同步架构。 此示例演示如何使用 UpdateSyncSchema 脚本,该脚本在 GitHub 上以 UpdateSyncSchema.ps1 的形式提供。

如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

注意

本文使用 Azure Az PowerShell 模块,这是与 Azure 交互时推荐使用的 PowerShell 模块。 若要开始使用 Az PowerShell 模块,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

使用 Azure Cloud Shell

Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。

若要启动 Azure Cloud Shell,请执行以下操作:

选项 示例/链接
选择代码块右上角的“试用”。 选择“试用”不会自动将代码复制到 Cloud Shell。 显示 Azure Cloud Shell 的“试用”示例的屏幕截图。
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 显示如何在新窗口中启动 Cloud Shell 的屏幕截图。
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 显示 Azure 门户中的 Cloud Shell 按钮的屏幕截图

若要在 Azure Cloud Shell 中运行本文中的代码,请执行以下操作:

  1. 启动 Cloud Shell。

  2. 选择代码块上的复制按钮以复制代码。

  3. 在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码粘贴到 Cloud Shell 会话中。

  4. 选择 Enter 运行此代码。

如果选择在本地安装并使用 PowerShell,则本教程需要 Az PowerShell 1.4.0 或更高版本。 如果需要升级,请参阅安装 Azure PowerShell 模块。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount 来创建与 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 数据库的详细信息,请参阅: