Использование PowerShell для обновления схемы синхронизации в существующей группе синхронизации

Область применения:База данных SQL Azure

Этот пример скрипта Azure PowerShell обновляет схему синхронизации в существующей группе синхронизации компонента "Синхронизация данных SQL". Если вы синхронизируете несколько таблиц, этот скрипт поможет вам эффективно обновить схему синхронизации. В этом примере показано использование скрипта UpdateSyncSchema, который можно найти в репозитории GitHub (файл UpdateSyncSchema.ps1).

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Примечание.

В этой статье предусмотрено использование модуля Azure Az PowerShell, который является рекомендуемым модулем PowerShell для взаимодействия с Azure. Чтобы начать работу с модулем Az PowerShell, ознакомьтесь со статьей Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Использование Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Параметр Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом. При нажатии кнопки Попробовать код не копируется в Cloud Shell автоматически. Screenshot that shows an example of Try It for Azure Cloud Shell.
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Screenshot that shows how to launch Cloud Shell in a new window.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Чтобы выполнить код из этой статьи в Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. В блоке кода нажмите кнопку Копировать, чтобы скопировать код.

  3. Вставьте код в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы выполнить код.

Если требуется установить и использовать PowerShell локально, для работы с этим руководством вам понадобится AZ PowerShell 1.4.0 или последующей версии. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. Если модуль PowerShell запущен локально, необходимо также выполнить командлет Connect-AzAccount, чтобы создать подключение к Azure.

Общие сведения о синхронизации данных SQL см. в статье Синхронизация данных в нескольких облачных и локальных базах данных с помощью синхронизации данных SQL Azure.

Важно!

Синхронизация данных SQL пока не поддерживает Управляемый экземпляр SQL Azure.

Примеры

Добавление всех таблиц в схему синхронизации

Следующий пример обновляет схему базы данных и добавляет все допустимые таблицы в центральную базу данных для синхронизации схемы.

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-Help Примечания
Get-AzSqlSyncGroup Возвращает сведения о группе синхронизации.
Update-AzSqlSyncGroup Создает группу синхронизации.
Get-AzSqlSyncMember Возвращает сведения о члене синхронизации.
Get-AzSqlSyncSchema Возвращает сведения о схеме синхронизации.
Update-AzSqlSyncSchema Обновляет схему синхронизации.

Дальнейшие действия

Дополнительные сведения об Azure PowerShell см. в документации по Azure PowerShell.

Дополнительные примеры сценариев PowerShell для Базы данных SQL Azure можно найти в разделе Примеры Azure PowerShell для Базы данных SQL Azure.

Дополнительные сведения о синхронизации данных SQL см. в следующих материалах:

Дополнительные сведения о Базе данных SQL см. в разделах: