使用 PowerShell 更新現有同步群組中的同步結構描述Use PowerShell to update the sync schema in an existing sync group

此 PowerShell 範例會更新現有「SQL 資料同步」同步群組中的同步結構描述。This 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. 此範例會示範 UpdateSyncSchema 指令碼的使用方式,這個指令碼在 GitHub 上會以 UpdateSyncSchema.ps1 提供使用。This example demonstrates the use of the UpdateSyncSchema script, which is available on GitHub as UpdateSyncSchema.ps1.

如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶If you don't have an Azure subscription, create a free account before you begin.

注意

本文已更新為使用新的 Azure PowerShell Az 模組。This article has been updated to use the new Azure PowerShell Az module. AzureRM 模組在至少 2020 年 12 月之前都還會持續收到錯誤 (Bug) 修正,因此您仍然可以持續使用。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. 若要深入了解新的 Az 模組和 AzureRM 的相容性,請參閱新的 Azure PowerShell Az 模組簡介To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. 如需 Az 模組安裝指示,請參閱安裝 Azure PowerShellFor Az module installation instructions, see Install Azure PowerShell.

使用 Azure Cloud ShellUse Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell 可讓您使用 bashPowerShell 以與 Azure 服務搭配使用。Cloud Shell lets you use either bash or PowerShell to work with Azure services. Azure Cloud Shell 已預先安裝一些命令,可讓您執行本文提到的程式碼,而不必在本機環境上安裝任何工具。You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

若要啟動 Azure Cloud Shell:To launch Azure Cloud Shell:

選項Option 範例/連結Example/Link
選取程式碼區塊右上角的 [試試看] 。Select Try It in the upper-right corner of a code block. 選取 [試用] 並不會自動將程式碼複製到 Cloud Shell 中。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell 的試試看範例
請前往 https://shell.azure.com 或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. <a href="https://shell.azure.com" title="啟動 Azure Cloud Shell
選取 Azure 入口網站右上角功能表列中的 [Cloud Shell] 按鈕。Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure 入口網站中的 [Cloud Shell] 按鈕

若要在 Azure Cloud Shell 中執行本文中的程式碼:To run the code in this article in Azure Cloud Shell:

  1. 啟動 Cloud Shell。Launch Cloud Shell.
  2. 選取程式碼區塊上的 [複製] 按鈕,複製程式碼。Select the Copy button on a code block to copy the code.
  3. 在 Windows 和 Linux 上按 Ctrl+Shift+V;或在 macOS 上按 Cmd+Shift+V,將程式碼貼到 Cloud Shell工作階段中。Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. 按下 Enter 鍵執行程式碼。Press Enter to run the code.

如果選擇在本機安裝和使用 PowerShell,此教學課程需要 AZ PowerShell 1.4.0 或更新版本。If you choose to install and use the PowerShell locally, this tutorial requires AZ PowerShell 1.4.0 or later. 如果您需要升級,請參閱安裝 Azure PowerShell 模組If you need to upgrade, see Install Azure PowerShell module. 如果您在本機執行 PowerShell,則也需要執行 Connect-AzAccount 以建立與 Azure 的連線。If you are running PowerShell locally, you also need to run Connect-AzAccount to create a connection with Azure.

如需 SQL 資料同步的概觀,請參閱使用 Azure SQL 資料同步,跨多個雲端和內部部署資料庫同步處理資料For an overview of SQL Data Sync, see Sync data across multiple cloud and on-premises databases with Azure SQL Data Sync.

重要

「Azure SQL 資料同步」目前支援「Azure SQL Database 受控執行個體」。Azure SQL Data Sync does not support Azure SQL Database Managed Instance at this time.

範例指令碼Sample script

範例 1 - 將所有的資料表新增至同步結構描述Example 1 - Add all tables to the sync schema

下列範例會重新整理資料庫結構描述,並將中樞資料庫中所有有效的資料表,新增至同步結構描述。The following example refreshes the database schema and adds all valid tables in the hub database to the sync schema.

UpdateSyncSchema.ps1 -SubscriptionId <subscription_id> -ResourceGroupName <resource_group_name> -ServerName <server_name> -DatabaseName <database_name> -SyncGroupName <sync_group_name> -RefreshDatabaseSchema $true -AddAllTables $true

範例 2 - 新增和移除資料表和資料行Example 2 - Add and remove tables and columns

下列範例會將 [dbo].[Table1][dbo].[Table2].[Column1] 新增至同步結構描述,並移除 [dbo].[Table3]The following example adds [dbo].[Table1] and [dbo].[Table2].[Column1] to the sync schema and removes [dbo].[Table3].

UpdateSyncSchema.ps1 -SubscriptionId <subscription_id> -ResourceGroupName <resource_group_name> -ServerName <server_name> -DatabaseName <database_name> -SyncGroupName <sync_group_name> -TablesAndColumnsToAdd "[dbo].[Table1],[dbo].[Table2].[Column1]" -TablesAndColumnsToRemove "[dbo].[Table3]"

指令碼參數Script parameters

UpdateSyncSchema 指令碼具有下列參數︰The UpdateSyncSchema script has the following parameters:

參數Parameter 注意Notes
$SubscriptionId$SubscriptionId 其中建立同步群組的訂閱。The subscription where the sync group is created.
$ResourceGroupName$ResourceGroupName 其中建立同步群組的資源群組。The resource group where the sync group is created.
$ServerName$ServerName 中樞資料庫的伺服器名稱。The server name of the hub database.
$DatabaseName$DatabaseName 中樞資料庫名稱。The hub database name.
$SyncGroupName$SyncGroupName 同步群組名稱。The sync group name.
$MemberName$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$TimeoutInSeconds 當指令碼重新整理資料庫結構描述時等候逾時。Timeout when the script refreshes database schema. 預設值為 900 秒。Default is 900 seconds.
$RefreshDatabaseSchema$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. 預設值為 false。Default is false.
$AddAllTables$AddAllTables 如果此值為 true,所有有效的資料表和資料行會新增到同步結構描述中。If this value is true, all valid tables and columns are added to the sync schema. $TablesAndColumnsToAdd and $TablesAndColumnsToRemove 的值會被忽略。The values of $TablesAndColumnsToAdd and $TablesAndColumnsToRemove are ignored.
$TablesAndColumnsToAdd$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. 例如:[dbo].[Table1], [dbo].[Table2].[Column1]For example: [dbo].[Table1], [dbo].[Table2].[Column1]. 可以指定多個資料表或資料行名稱,並以以逗號 (,) 分隔。Multiple table or column names can be specified and separated by commas (,).
$TablesAndColumnsToRemove$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. 例如:[dbo].[Table1], [dbo].[Table2].[Column1]For example: [dbo].[Table1], [dbo].[Table2].[Column1]. 可以指定多個資料表或資料行名稱,並以以逗號 (,) 分隔。Multiple table or column names can be specified and separated by commas (,).

指令碼說明Script explanation

UpdateSyncSchema 指令碼具有下列命令。The UpdateSyncSchema script uses the following commands. 下表中的每個命令都會連結至命令特定的文件。Each command in the table links to command-specific documentation.

命令Command 注意Notes
Get-AzSqlSyncGroupGet-AzSqlSyncGroup 傳回同步群組的相關資訊。Returns info about a sync group.
Update-AzSqlSyncGroupUpdate-AzSqlSyncGroup 更新同步群組。Updates a sync group.
Get-AzSqlSyncMemberGet-AzSqlSyncMember 傳回同步成員的相關資訊。Returns info about a sync member.
Get-AzSqlSyncSchemaGet-AzSqlSyncSchema 傳回同步結構描述的相關資訊。Returns info about a sync schema.
Update-AzSqlSyncSchemaUpdate-AzSqlSyncSchema 更新同步結構描述。Updates a sync schema.

後續步驟Next steps

如需有關 Azure PowerShell 的詳細資訊,請參閱 Azure PowerShell 文件For more information about Azure PowerShell, see Azure PowerShell documentation.

您可以在 Azure SQL Database PowerShell 指令碼中找到其他 SQL Database PowerShell 指令碼範例。Additional SQL Database PowerShell script samples can be found in Azure SQL Database PowerShell scripts.

如需 SQL 資料同步的詳細資訊,請參閱:For more info about SQL Data Sync, see:

如需 SQL Database 的詳細資訊,請參閱:For more info about SQL Database, see: