Руководство по настройке Синхронизации данных SQL между базами данных в Базе данных SQL Azure и SQL Server

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

В этом руководстве показано, как настроить Синхронизацию данных SQL, создав группу синхронизации с экземплярами Базы данных SQL Azure и SQL Server. Группа синхронизации полностью настраивается и синхронизируется по заданному расписанию.

Для выполнения задач этого руководства требуется определенный опыт работы с Базой данных SQL и SQL Server.

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

Примеры команд PowerShell для настройки Синхронизации данных SQL см. в статьях об использовании PowerShell для синхронизации данных между несколькими базами данных SQL, а также между базой данных SQL и локальной базой данных SQL Server.

Важно!

Центральная конечная точка топологии концентратора — это центральная конечная точка топологии синхронизации, в которой группа синхронизации имеет несколько конечных точек базы данных. Все остальные базы данных-члены с конечными точками в группе синхронизации синхронизируются с базой данных концентратора.

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

База данных SQL Azure гипермасштабирование поддерживается только как база данных-член, а не в качестве базы данных концентратора.

Создание группы синхронизации

  1. Переход на портал Azure. Найдите и выберите базы данных SQL для поиска существующей База данных SQL Azure.

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

  3. В меню ресурсов базы данных SQL для выбранной базы данных в разделе "Управление данными" выберите "Синхронизация с другими базами данных".

  4. На странице Синхронизировать с другими базами данных выберите Новая группа синхронизации. Откроется страница создания Синхронизация данных группы.

  5. На странице "Создание Синхронизация данных группы" настройте следующие параметры:

    A screenshot from the Create Data Sync page of the Azure portal, creating a new Sync Metadata Database to use with Automatic Sync.

    Параметр Description
    Имя группы синхронизации Введите имя для новой группы синхронизации. Это имя должно отличаться от имени самой базы данных.
    База данных для метаданных синхронизации Выберите создать базу данных (рекомендуется) или использовать существующую базу данных для использования в качестве базы данных метаданных синхронизации.

    Корпорация Майкрософт рекомендует создать новую пустую базу данных для использования в качестве базы данных метаданных синхронизации. Служба синхронизации данных создает таблицы в этой базе данных и часто выполняет рабочую нагрузку. Эта база данных предоставляется в общий доступ как База данных для метаданных синхронизации всем группам синхронизации в выбранном регионе и подписке. Базу данных для метаданных синхронизации или ее имя невозможно изменить, не удалив все группы и агенты синхронизации в регионе.

    Если вы решили создать новую базу данных, выберите "Создать базу данных". Выберите "Настройка параметров базы данных". На странице База данных SQL имя и настройка нового База данных SQL Azure и нажмите кнопку "ОК".

    Если выбрать "Использовать существующую базу данных", выберите базу данных из раскрывающегося списка "База данных метаданных синхронизации".
    Автоматическая синхронизация Выберите значение Включено или Выключено.

    Если вы выбрали Включено, в разделе Частота синхронизации введите число и выберите единицы измерения: секунды, минуты, часы или дни.
    Первая синхронизация начинается по истечении указанного периода времени с момента сохранения конфигурации.
    Устранение конфликтов Выберите Выиграл концентратор или Выиграл член.

    Вариант Выиграл концентратор означает, что при возникновении конфликта данные из центральной базы данных перезаписывают данные в рядовой базе данных.

    Вариант Выиграл член означает, что при возникновении конфликта данные из рядовой базы данных перезаписывают данные в центральной базе данных.
    Имя пользователя базы данных Концентратора и пароль базы данных Концентратора Укажите имя пользователя и пароль для входа администратора сервера SQL, прошедшего проверку подлинности для базы данных Концентратора . Это имя администратора сервера и пароль для того же логического сервера SQL Azure, на который вы начали работу. Проверка подлинности Microsoft Entra (ранее — Azure Active Directory) в настоящее время не поддерживается.
    Использование Приватного канала Выберите управляемую службой частную конечную точку, чтобы установить безопасное подключение между службой синхронизации и центральной базой данных.
  6. Нажмите кнопку ОК и подождите, пока будет создана и развернута группа синхронизации.

  7. Если на странице Новая группа синхронизации выбрано использование Приватного канала, необходимо утвердить подключение к частной конечной точке. Ссылка в информационном сообщении позволяет перейти к функции "Подключения к частной конечной точке", с помощью которой можно утвердить подключение.

    A screenshot from the Azure portal Private Endpoint connections page, showing where to approve a private link.

    Примечание.

    Частные ссылки для группы синхронизации и членов синхронизации должны быть созданы, утверждены и отключены отдельно.

Добавление членов синхронизации

Откройте созданную и развернутую группу синхронизации и перейдите на страницу Базы данных, на которой нужно выбрать членов синхронизации.

Примечание.

Чтобы обновить или вставить имя пользователя и пароль в центральную базу данных, перейдите в раздел Центральная база данных на странице Выбор членов синхронизации.

Добавление базы данных в База данных SQL Azure в качестве члена в группу синхронизации

  1. В разделе Выбор членов синхронизации можно дополнительно добавить в группу синхронизации базу данных в Базе данных Azure SQL, щелкнув Добавить Базу данных Azure. Откроется страница Настройка базы данных Azure.

    A screenshot from the Azure portal of the Configure Azure Database page, where you can add a database to the sync group.

  2. На странице Configure Azure SQL Database (Настройка Базы данных SQL Azure) измените указанные ниже параметры.

    Параметр Description
    Имя участника синхронизации Укажите имя нового участника синхронизации. Это имя должно отличаться от имени самой базы данных.
    Подписка Выберите связанную подписку Azure для выставления счетов.
    Azure SQL Server Выберите существующий сервер.
    База данных SQL Azure Выберите существующую базу данных в Базе данных SQL.
    Направления синхронизации Направление синхронизации может быть концентратором к члену или члену в концентраторе или обоим. Выберите "Из концентратора", "На концентратор" или "Двунаправленная синхронизация". Дополнительные сведения см. в статье о работе.
    Имя пользователя и Пароль Введите существующие учетные данные для сервера, на котором расположена рядовая база данных. Не вводите новые учетные данные в этом разделе.
    Использование Приватного канала Выберите управляемую службой частную конечную точку, чтобы установить безопасное подключение между службой синхронизации и рядовой базой данных.
  3. Нажмите кнопку ОК и подождите, пока будет создан и развернут новый член синхронизации.

Добавление базы данных в экземпляр SQL Server в качестве члена в группу синхронизации

  1. В разделе "База данных-члены" при необходимости добавьте базу данных в экземпляр SQL Server в группу синхронизации, выбрав "Добавить локальную базу данных".

  2. Откроется страница Настройка локальной среды, где вы можете выполнить описанные ниже действия.

  3. Щелкните Выбор шлюза агента синхронизации. Откроется страница Выбор агента синхронизации.

    A screenshot from the Azure portal, in the Configure On-Premises steps. When the Choose the Sync Agent Gateway option is selected, the Select Sync Agent page is shown.

  4. На странице Choose the Sync Agent (Выбор агента синхронизации) укажите, следует ли использовать существующий агент или создать новый.

    Если вы выбрали вариант Существующие агенты, выберите агент в списке.

    Если вы выбрали вариант Создание агента, сделайте следующее:

    1. Скачайте агент синхронизации данных из предоставленной ссылки и установите его на сервере, который отличается от расположения экземпляра SQL Server. Вы также можете скачать агент непосредственно на странице SQL Azure Data Sync Agent. Рекомендации по агенту клиента синхронизации см. в рекомендациях по Синхронизация данных SQL Azure.

      Важно!

      Необходимо открыть исходящий TCP-порт 1433 в брандмауэре, чтобы позволить агенту клиента обмениваться данными с сервером.

    2. Введите имя агента.

    3. Выберите Создание и генерация ключа и скопируйте ключ агента в буфер обмена

    4. Нажмите кнопку ОК, чтобы закрыть страницу Выбор агента синхронизации.

  5. На сервере, на котором установлен агент клиента синхронизации, найдите и запустите приложение агента синхронизации клиента.

    A screenshot from the Microsoft SQL Data Sync 2.0 client agent app. The Submit Agent Key button is highlighted.

    1. В приложении агента синхронизации выберите Submit Agent Key (Отправить ключ агента). Откроется диалоговое окно Sync Metadata Database Configuration (Конфигурация базы данных для метаданных синхронизации).

    2. В диалоговом окне Sync Metadata Database Configuration (Конфигурация базы данных для метаданных синхронизации) вставьте ключ агента, скопированный на портале Azure. Также укажите существующие учетные данные для сервера, на котором находится база данных метаданных синхронизации. Нажмите кнопку ОК и дождитесь завершения настройки.

      A screenshot from the Microsoft SQL Data Sync 2.0 client agent app. Enter the agent key and server credentials.

      Примечание.

      Если вы получите сообщение об ошибке брандмауэра, создайте в Azure правило брандмауэра, которое разрешает входящий трафик от компьютера SQL Server. Такое правило можно создать вручную на портале или с помощью SQL Server Management Studio (SSMS). В SSMS подключитесь к базе данных концентратора в Azure, введя имя как <hub_database_name>.database.windows.net.

    3. Щелкните Регистрация, чтобы зарегистрировать базу данных SQL Server в агенте. Откроется диалоговое окно SQL Server Configuration (Конфигурация SQL Server).

      A screenshot from the Microsoft SQL Data Sync 2.0 client agent app. Add and configure a SQL Server database.

    4. В диалоговом окне Конфигурация SQL Server выберите, следует ли устанавливать подключение с использованием аутентификации SQL Server или аутентификации Windows. Если выбрана аутентификация SQL Server, введите существующие учетные данные. Укажите имя SQL Server и имя базы данных, которую требуется синхронизировать, и щелкните Тестирование подключения для проверки настроек. Теперь щелкните Сохранить, и зарегистрированная база данных появится в списке.

      A screenshot from the Microsoft SQL Data Sync 2.0 application showing that the SQL Server database and machine are now registered.

    5. Закройте приложение агента синхронизации клиента.

  6. В портал Azure на странице "Настройка локальной среды" выберите "Выбрать базу данных".

  7. На странице Выбор базы данных в поле Имя участника синхронизации укажите имя нового члена синхронизации. Это имя должно отличаться от имени самой базы данных. Выберите базу данных из списка. В поле Направления синхронизации выберите значение Двунаправленная синхронизация, К концентратору или Из концентратора.

  8. Нажмите кнопку ОК, чтобы закрыть страницу Выбор базы данных. Затем нажмите кнопку ОК, чтобы закрыть страницу Настройка локальной среды, и подождите, пока новый член синхронизации не будет создан и развернут. Наконец, нажмите кнопку ОК, чтобы закрыть страницу Выбор членов синхронизации.

Примечание.

Чтобы подключиться к службе синхронизации данных SQL и к локальному агенту, добавьте используемое имя пользователя в роль DataSync_Executor. Служба синхронизации данных создает эту роль в экземпляре SQL Server.

Настройка группы синхронизации

После создания и развертывания новых членов группы синхронизации перейдите в раздел Таблицы на странице Группа синхронизации базы данных.

A screenshot from the Azure portal, on the Tables page, select tables and fields to sync.

  1. На странице Таблицы выберите базу данных из списка участников группы синхронизации, а затем щелкните Обновить схему. Ожидается несколько минут задержки в схеме обновления, задержка может занять несколько минут, если используется приватный канал.

  2. Выберите в списке таблицы для синхронизации. По умолчанию выбраны все столбцы, поэтому снимите флажки для тех столбцов, которые не нужно синхронизировать. Обязательно оставьте выбранным столбец первичного ключа.

  3. Выберите Сохранить.

  4. По умолчанию базы данных не синхронизируются, пока вы не настроите расписание или не запустите синхронизацию вручную. Чтобы выполнить синхронизацию вручную, перейдите на портале Azure к нужной базе данных в Базе данных SQL, щелкните Синхронизировать с другими базами данных и выберите группу синхронизации. Откроется страница Синхронизация данных. Выберите Синхронизация.

    A screenshot from the Azure portal showing the manual sync button for a Database Sync Group.

Вопросы и ответы

В этом разделе приведены ответы на часто задаваемые вопросы о службе Синхронизация данных SQL Azure.

Создает ли Синхронизация данных SQL полные таблицы?

Если в целевой базе данных нет таблиц схемы синхронизации, то Синхронизация данных SQL создает их с выбранным для синхронизации набором столбцов. Но этот механизм не позволяет создать полноценную схему по следующим причинам:

  • В целевой таблице создаются только выбранные столбцы. Все невыбранные столбцы игнорируются.
  • В таблице назначения создаются индексы только по выделенным столбцам. Для невыбранных столбцов все индексы игнорируются.
  • Индексы для столбцов типа XML не создаются.
  • Ограничения CHECK не создаются.
  • Триггеры из исходных таблиц не создаются.
  • Представления и хранимые процедуры не создаются.

Из-за этих ограничений мы рекомендуем применять следующий подход:

  • В рабочей среде следует самостоятельно создать полноценную схему.
  • Для экспериментов со службой можно применить функцию автоматической подготовки.

Почему в списке отображаются таблицы, созданные не мной?

Синхронизация данных создает в базе данных дополнительные таблицы для отслеживания изменений. Не удаляйте их, иначе функция синхронизации данных перестанет работать.

Гарантируется ли согласованность данных после синхронизации?

Не обязательно. Для примера рассмотрим группу синхронизации с концентратором и тремя рядовыми базами данных (A, B и C), в которой настроена синхронизация из концентратора в A, из концентратора в B и из концентратора в C. Если в базу данных A внесены изменения после синхронизации из концентратора в A, эти изменения не попадут в базы данных B и C до следующей задачи синхронизации.

Как применить изменения схемы в группе синхронизации?

Все изменения схемы нужно вносить и распространять вручную.

  1. Реплицируйте изменения схемы вручную в центр и все остальные члены синхронизации.
  2. Обновление схемы синхронизации.

Добавление новых таблиц или столбцов

Новые таблицы и столбцы не влияют на текущую синхронизацию и Синхронизация данных игнорирует их, пока они не добавлены в схему синхронизации. При добавлении новых объектов базы данных соблюдайте такую последовательность:

  1. Добавьте новые таблицы или столбцы в центральной базе данных и на всех участниках синхронизации.
  2. Добавьте новые таблицы или столбцы в схему синхронизации.
  3. Вносите данные в новые таблицы и столбцы.

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

Если изменить тип данных существующего столбца, синхронизация данных продолжает выполняться до тех пор, пока новые значения соответствуют исходному типу данных, определенному в схеме синхронизации. Например, если вы измените в базе данных-источнике тип с int на bigint, синхронизация данных будет продолжаться, пока на обработку не поступит слишком большое для типа int значение. Чтобы завершить изменение, вручную реплицируйте изменения схемы в концентратор и на все участники синхронизации, а затем обновите схему синхронизации.

Как правильно экспортировать и импортировать базу данных, для которой выполняется синхронизация данных?

После экспорта базы данных в виде .bacpac файла и импорта файла для создания базы данных выполните следующие действия, чтобы использовать Синхронизация данных в новой базе данных:

  1. Очистка объектов Синхронизация данных и дополнительных таблиц в новой базе данных с помощью Синхронизация данных полной очистки.sql. Этот скрип удаляет из базы данных все необходимые объекты Синхронизации данных.
  2. Повторно создайте группу синхронизации с новой базой данных. Если старая группа синхронизации больше не нужна, удалите ее.

Где найти сведения об агенте клиента?

Часто задаваемые вопросы об агенте клиента см. в этом разделе.

Нужно ли утверждать канал вручную перед его использованием?

Да. Необходимо вручную утвердить управляемую частную конечную точку службы на странице подключений к частной конечной точке портал Azure во время развертывания группы синхронизации или с помощью PowerShell.

Почему я получаю сообщение об ошибке брандмауэра, когда задание синхронизации подготавливает мою базу данных Azure?

Это может произойти по причине того, что ресурсам Azure запрещен доступ к вашему серверу. Есть два решения.

  1. Убедитесь, что брандмауэр в базе данных Azure установил для доступа к этому серверу доступ к этому серверуслужб и ресурсов Azure. Дополнительные сведения см. в разделе База данных SQL Azure и управления доступом к сети.
  2. Настройте приватный канал для Синхронизация данных, который отличается от Приватный канал Azure. Приватный канал — это способ создания групп синхронизации с помощью безопасного подключения к базам данных, сидящим за брандмауэром. Синхронизация данных SQL Приватный канал является конечной точкой, управляемой корпорацией Майкрософт, и внутренне создает подсеть в существующей виртуальной сети, поэтому не требуется создавать другую виртуальную сеть или подсеть.

Следующие шаги

Поздравляем! Вы создали группу синхронизации, которая включает как базу данных SQL Azure, так и базу данных SQL Server.

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

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