使用 PowerShell 更新現有同步群組中的同步結構描述

適用於:Azure SQL Database

此 Azure PowerShell 範例會更新現有 SQL 資料同步同步群組中的同步結構描述。 當您同步多個資料表時,此指令碼可協助您有效率地更新同步結構描述。 此範例示範如何使用在 GitHub 上作為 UpdateSyncSchema.ps1 提供的 UpdateSyncSchema 指令碼。

如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶

注意

本文使用 Azure Az PowerShell 模組,這是與 Azure 互動時建議使用的 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az

使用 Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼區塊右上角的 [試試看]。 選取 [試用] 並不會自動將程式碼複製到 Cloud Shell 中。 Screenshot that shows an example of Try It for Azure Cloud Shell.
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 Screenshot that shows how to launch Cloud Shell in a new window.
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 Screenshot that shows the Cloud Shell button in the Azure portal

若要在 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 受控執行個體。

範例

新增所有資料表至同步結構描述

下列範例會重新整理資料庫結構描述,並將中樞資料庫中的所有有效資料表新增至同步結構描述。

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 指令碼會使用下列命令。 下表中的每個命令都會連結至命令特定的文件。

Command 注意
Get-AzSqlSyncGroup 傳回同步群組的相關資訊。
Update-AzSqlSyncGroup 更新同步群組。
Get-AzSqlSyncMember 傳回同步成員的相關資訊。
Get-AzSqlSyncSchema 傳回同步結構描述的相關資訊。
Update-AzSqlSyncSchema 更新同步結構描述。

下一步

如需有關 Azure PowerShell 的詳細資訊,請參閱 Azure PowerShell 文件

其他的 SQL Database PowerShell 指令碼範例可於 Azure SQL 資料庫 PowerShell 指令碼中找到。

如需有關 SQL 資料同步的詳細資訊,請參閱:

如需有關 SQL Database 的詳細資訊,請參閱: