Руководство по настройке Синхронизации данных 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 или аналитику Azure Synapse.

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

  1. Перейдите на портал Azure, чтобы найти базу данных в Базе данных SQL. Выполните поиск по запросу базы данных SQL и выберите этот пункт.

    Поиск баз данных, портал Microsoft Azure

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

    Выбор базы данных из списка, портал Microsoft Azure

    Примечание

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

  3. В меню База данных SQL для выбранной базы данных щелкните Синхронизировать с другими базами данных.

    Синхронизация с другими базами данных, портал Microsoft Azure

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

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

    На странице Создание группы синхронизации данных измените указанные ниже параметры.

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

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

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

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

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

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

    Примечание

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

    Нажмите кнопку ОК и подождите, пока будет создана и развернута группа синхронизации.

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

    Утверждение приватного канала

    Примечание

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

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

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

Выбор элементов синхронизации

Примечание

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

Добавление базы данных в Базе данных SQL Azure

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

Добавление базы данных в группу синхронизации

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

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

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

Добавление новой базы данных SQL Server

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

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

    Создание агента синхронизации

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

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

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

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

      Важно!

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

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

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

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

  3. На компьютере SQL Server найдите и запустите приложение агента клиента синхронизации.

    Приложение агента клиента синхронизации данных

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

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

      Ввод ключа агента и учетных данных сервера

      Примечание

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

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

      Добавление и настройка базы данных SQL Server

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

      База данных SQL Server зарегистрирована

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

  4. На странице портала Настройка локальной среды щелкните Выбор базы данных.

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

    Выбор локальной базы данных

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

Примечание

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

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

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

Шаг 3. Параметры

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

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

  3. Щелкните Сохранить.

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

    Синхронизация вручную

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изменение типа данных для столбца

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

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

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

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

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

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

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

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

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

Это может произойти по причине того, что ресурсам Azure запрещен доступ к вашему серверу. Убедитесь, что брандмауэр в базе данных Azure имеет значение "Разрешить службам и ресурсам Azure доступ к этому серверу" значение "Да".

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

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

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

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