Ошибка кластерного индекса синхронизации данных Azure

Мы пытаемся настроить группу синхронизации базы данных Azure для репликации наших данных с локального сервера в базу данных SQL Azure. Это первый шаг к миграции в Azure.

Группа синхронизации и агент синхронизации настроены. Когда мы нажимаем кнопку «Синхронизировать», мы получаем следующую ошибку:

Ошибка синхронизации триггера: не удалось выполнить операцию синхронизации данных: таблица «[dbo]. [DocumentTypeDocumentVariables]» не имеет кластеризованного индекса.

введите здесь описание изображения

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

  • Мы попытались добавить кластеризованный индекс, но это дало ту же ошибку.
  • Мы попытались удалить некластеризованный индекс PK и создали уникальный кластеризованный индекс PK, но это дает нам ту же ошибку.

введите здесь описание изображения

Что могло быть не так?


person Fluffymittens    schedule 22.02.2018    source источник
comment
Я прочитал в источнике docs.microsoft.com / en-us / azure / sql-database / следующие ограничения Таблица не может иметь столбец идентификаторов, который не является первичным ключом. Имена объектов (базы данных, таблицы и столбцы) не могут содержать печатаемые символы: точка (.), Левая квадратная скобка ([) или правая квадратная скобка (]). Проверка подлинности Azure Active Directory не поддерживается. В этой таблице нет ПК с идентификатором. может в этом проблема.   -  person Fluffymittens    schedule 22.02.2018
comment
Когда вы удаляли некластеризованный индекс PK и создавали уникальный кластерный индекс PK, повторяли ли вы шаги с нуля? Я имею в виду воссоздать группу и агента, а затем повторить попытку синхронизации. Я когда-либо встречал ту же ошибку раньше, и она работала после того, как я изменил индекс на кластеризованный индекс и повторил попытку с нуля. Кажется, функция синхронизации данных теперь поддерживает только базы данных с кластеризованным индексом PK, но официальный документ говорит, что каждая таблица должна иметь первичный ключ, а не кластеризованный PK.   -  person forester123    schedule 22.02.2018


Ответы (1)


Воссоздайте базу данных в базе данных SQL Azure с той же схемой (включая индексы), что и в локальной базе данных, и без данных, а затем попробуйте настроить синхронизацию данных SQL. Вы можете создать сценарий без данных локальной базы данных с помощью SQL Server Management Studio, а затем использовать сценарий для воссоздания всех объектов базы данных в базе данных SQL Azure. Отсутствие данных в Azure также ускорит первоначальную синхронизацию. Если обе схемы базы данных имеют различия, синхронизация данных SQL не будет работать.

person Alberto Morillo    schedule 22.02.2018