Поделиться через


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

Применимо к: База данных SQL Azure

Внимание

Синхронизация данных SQL будет прекращено 30 сентября 2027 года. Рассмотрите возможность миграции в альтернативные решения для репликации и синхронизации данных.

Этот пример скрипта 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 автоматически. Снимок экрана: пример открытия Azure Cloud Shell с помощью кнопки
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Снимок экрана: запуск Cloud Shell в новом окне.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Снимок экрана: кнопка

Чтобы выполнить код из этой статьи в 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 или 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.

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

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

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