Синхронизация данных SQL Azure с API-интерфейсами REST для запуска синхронизации с локальными базами данных участников

После долгих исследований и проб и ошибок; Мне удалось настроить нижеприведенную среду (немного контекста перед вопросом)

  1. База данных Azure SQL HUB, расположенная в Северной Европе (cheershub)
  2. Виртуальная машина Azure, размещенная в Юго-Восточной Азии с базой данных SQL (cheersasia)
  3. Виртуальная машина Azure, размещенная в Западной Европе с базой данных SQL (cheerseurope)
  4. Клиентское настольное приложение установлено как на виртуальных машинах, так и в локальной сети
  5. Синхронизация данных SQL была настроена между концентратором и членами базы данных
  6. Двунаправленная синхронизация
  7. Концентратор выигрывает для разрешения конфликтов, а автоматическая синхронизация отключена
  8. Я активировал Azure AD и назначил разрешения для регистрации моего приложения
  9. Сгенерирован идентификатор клиента AD и секрет для использования с REST Api

Клиентское приложение подключается к локальному экземпляру БД (т. Е. Приложение, работающее на виртуальной машине Западной Европы, подключается к базе данных cheerseurope, которая является локальной для виртуальной машины). Приложение просто создает некоторые заказы в базе данных и запускает синхронизацию через API синхронизации данных в SyncGroup. Синхронная группа сообщает об отсутствии предупреждений для каждого агента синхронизации, и все агенты находятся в сети.

Кажется, все на данный момент работает без ошибок. Журналы синхронизации в группе синхронизации не сообщают об ошибках, и я могу запросить базу данных HUB (cheershub), Юго-Восточной Азии (cheersasia) и локальную (cheerslocalhost) и посмотреть обновления.

ПРОБЛЕМА: База данных в Западной Европе VM (cheerseurope) не отражает изменений. Я ждал день, чтобы быть уверенным, что, согласно официальному документу Microsoft, они гарантируют, что все изменения будут внесены в конечном итоге, и что синхронизация данных не приведет к потере данных. Стоит отметить, что я попробовал это с пустыми базами данных во всех местах и ​​что он настроен на синхронизацию всех столбцов в моей 1 таблице.

ПОПРОБОВАНО: Прождав день, я снова запустил синхронизацию из своего клиентского приложения и снова подождал. Все еще ничего в Западной Европе (cheerseurope). Затем я вошел в Azure и вручную отключил синхронизацию в синхронизирующей группе. Несмотря на то, что в отчетах журнала обновлено 0 записей, при проверке базы данных в Западной Европе эти изменения появились.

ВОПРОС: Кто-нибудь еще сталкивался с подобными проблемами при запуске синхронизации с API-интерфейсами REST, и не все обновленные базы данных участников обновлены, или у вас есть практические знания по работе с настройкой, подобной приведенной выше, которая может предложить некоторые указатели? Возможно, поскольку синхронизация данных все еще находится в режиме предварительного просмотра, эти проблемы вполне могут быть решены в будущем.

ПРИМЕЧАНИЕ. Я не хотел включать автоматическую синхронизацию, поскольку мне нужно было контролировать момент запуска синхронизации, поскольку у меня есть другие процессы в приложении, которые запускаются после синхронизации.

ОБНОВЛЕНИЕ: я не смог найти, если возможно запросить результат вызова API, чтобы определить, были ли обновлены все БД-члены. Это не представляется возможным в текущей версии API.

ОБНОВЛЕНИЕ: Я попытался переустановить и перенастроить агенты синхронизации данных на виртуальной машине Западной Европы, а также проверил, чтобы убедиться, что правильные порты открыты, чтобы позволить средству синхронизации данных обмениваться данными с синхронизирующей группой.

ОБНОВЛЕНИЕ: Кажется, что запуск синхронизации через REST Api снова привел к распространению обновления в Западную Европу. Так что я думаю, что запуск синхронизации дважды решил проблему. Существует ли ограничение на число синхронизаций элементов, разрешенных для каждой синхронизации?

0 ответов

Другие вопросы по тегам