Изменения схемы реплики

Доступно с лицензией Standard или Advanced.

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

Первоначально схемы идентичны на обеих репликах, но со временем к каждой схеме реплики могут применяться изменения. Например, в одной из реплик для завершения проекта может потребоваться добавление дополнительных полей, а в связанной с ней реплике может потребоваться использование нового домена для существующего поля. Как только это произойдет, схемы двух реплик больше не будут одинаковыми. Вы можете использовать инструменты геообработки для сравнения схем реплик и выявления различий.

Инструменты схем реплики

При работе с изменениями схемы реплики используются три инструмента геообработки:

  • Экспорт схемы реплики—создает файл схемы реплики со схемой входной односторонней или двусторонней реплики.
  • Сравнить схему реплики — создает файл .xml, описывающий различия схемы между базой геоданных реплики и соответствующей базой геоданных реплики.
    • Файл изменений схемы, полученный с помощью этой команды, описывает, какие изменения необходимо внести в реплику базы геоданных, чтобы привести ее в соответствие c родительской репликой базы геоданных.
  • Импорт схемы реплики — применяет различия схемы реплики с использованием входной базы геоданных реплики и файла .xml.

Доступ к инструментам изменения схемы можно получить:

  • На панели Геообработка вы можете использовать опцию поиска или перейти к набору инструментов Распределенная база геоданных.
  • На панели Управлять репликами вы можете использовать Меню управления репликами Меню.
    Инструменты изменения схемы, доступные в меню Управление репликами
  • На панели Каталог вы можете щелкнуть правой кнопкой мыши базу геоданных и получить доступ к контекстному меню Распределенная база геоданных.
    Инструменты изменения схемы, доступные в контекстном меню Распределенная база геоданных

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

Примечание:

Изменение схемы реплики в соответствии со схемой относительной реплики — это процесс, отдельный от синхронизации данных.

Допустимые изменения схемы

Ниже приведен список изменений схемы и возможность их применения к относительной реплике:

ДобавитьИзменить

Поле

Добавляемые к таблицам и классам объектов поля синхронизируются.

Изменения применяемых к полям доменов синхронизируются.

Домен

Новые домены синхронизируются.

Изменения определений доменов синхронизируются.

Таблица/Класс пространственных объектов

Добавляемые поля и примененные к полям таблиц и классов объектов домены синхронизируются.

Удаление наборов данных из реплики

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

Если вы отмените регистрацию одного из этих наборов данных в реплике, то появится сообщение с предупреждением. Если вы продолжите, то набор данных будет удален из списка наборов данных реплики. Имейте в виду:

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

Поддержка различий в схемах

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

Когда вы применяете изменение схемы к одной реплике, но не к другой, вы должны иметь в виду следующие проблемы:

  • Правка не синхронизируется – При синхронизации данных будут импортированы изменения только для тех таблиц и полей, которые являются общими для обеих реплик. Если для поля, которого в связанной реплике нет, будет выполнено изменение, то оно не будет внесено при импортировании изменений.
  • Некорректные значения – изменения, которые задействуют домены, подтипы и правила отношений, будут применены при синхронизации изменений.
  • Ошибки синхронизации данных – Это может произойти, если в обеих репликах изменения схемы вносятся вручную. Например, вы можете захотеть добавить поле в таблице. Если вы сделаете это, то вам будет нужно внести то же самое изменение схемы во всех случаях. В случае появления каких-либо расхождений (например, поле имеет в одной реплике тип string, а в другой реплике тип integer), при синхронизации данных возникнет ошибка.
  • Неподдерживаемые изменения – Некоторые типы изменений схемы могут вызвать ошибку при синхронизации, но при произведении изменения предупреждения выводиться не будет. Данные изменения не могут быть выявлены на уровне системы репликации базы геоданных. Они включают в себя операции на уровне базы данных, например, изменения прав доступа к таблице в базе данных. Если права доступа к реплицированным данным будут изменены на «только для чтения», то при попытке импорта изменений из связанной реплики возникнет ошибка.

Рекомендации

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

  1. Блокируйте систему – Убедитесь в том, что сотрудники, использующие систему, работают с использованием корректных прав доступа. Вам может понадобиться написать приложение, которое сможет предотвратить выполнение незапланированных изменений схемы, например, добавления или удаления столбца.
  2. Периодически производите сравнения схем – Поскольку репликация является отказоустойчивым процессом, работа систем, которые производят синхронизации, скорее всего не будут прервана изменениями схемы. Однако хорошей практикой является периодическое выполнение сравнения схемы. Это позволит вам быть уверенными в том, что незапланированные изменения схемы не были произведены.
  3. Не производите синхронизацию до полного завершения выполнения задачи обслуживания, для которой требуется блокировка схемы.
  4. Производите изменения схемы на уровне системы – Если вам необходимо произвести изменения схемы, то лучше производить эти изменения на уровне системы в структурированном виде. Например, вам может понадобиться использовать метод внесения изменений «сверху вниз», при котором изменения производятся в корневой реплике, а затем распространяются уровнями ниже.