你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 PowerShell 更新现有同步组中的同步架构
适用于:Azure SQL 数据库
此 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。 | ![]() |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | ![]() |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 | ![]() |
若要在 Azure Cloud Shell 中运行本文中的代码,请执行以下操作:
启动 Cloud Shell。
选择代码块上的复制按钮以复制代码。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码粘贴到 Cloud Shell 会话中。
选择 Enter 运行此代码。
如果选择在本地安装并使用 PowerShell,则本教程需要 Az PowerShell 1.4.0 或更高版本。 如果需要升级,请参阅安装 Azure PowerShell 模块。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount
来创建与 Azure 的连接。
有关 SQL 数据同步的概述,请参阅使用 Azure SQL 数据同步跨多个云和本地数据库同步数据。
重要
目前,SQL 数据同步不支持 Azure SQL 托管实例。
示例
将所有表添加到同步架构
以下示例可刷新数据库架构,并可将中心数据库中的所有有效表添加到同步架构。
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 Monitor 日志监视 SQL 数据同步
- 故障排除 - 排查 Azure 中的 SQL 数据同步问题
- 更新同步架构
- 使用 Transact-SQL - 在 Azure 中的 SQL 数据同步中自动复制架构更改
有关 SQL 数据库的详细信息,请参阅: