Работа с репликацией базы геоданных
Эта тема относится только к ArcGIS for Desktop Standard и ArcGIS for Desktop Advanced.
Репликация базы геоданных спроектирована на поддержку множества различных систем, где вам будет нужно распределять данные. Расположенный ниже раздел является руководством, которое поможет вам определить, каким образом лучше всего использовать репликации в вашей системе.
Перед чтением этого руководства просмотрите раздел введение в работу с распределенными данными, в котором описывается репликация баз геоданных, а также другие методы распределения данных. Раздел Примеры использования распределенных данных также содержит множество примеров наиболее общих случаев использования репликации баз геоданных. Если вам кажется, что репликация базы геоданных является наиболее подходящим способом распределения данных для вашей системы, то вашим следующим действием будет создание реплик.
Создание реплик
Расположенные ниже указания помогут вам определить наилучший способ создания реплик для вашей системы.
- Определите нужные вам реплики – в некоторых случаях необходимо создать только одну или две реплики, в то время как в остальных случаях понадобится создать много реплик. Например, вам понадобится создать множество реплик при создании реплик для полевой бригады, персонал которой будет работать на их полевых ноутбуках. В некоторых случаях, когда вам будет нужно иметь синхронизированными две корпоративные базы геоданных, вам будет нужно создать всего одну реплику. Чтобы понять, что такое реплика и как она работает в рамках базы геоданных, прочитайте раздел реплики и базы геоданных.
- Решите, какой тип репликации вы будете использовать – В разделе типы репликации описывается каждый из трех доступных типов репликаций. При использовании вашей системы вам может понадобиться использовать один тип реплики в одном случае и другой тип – в другом случае. Например, вам может понадобиться использовать двухстороннюю репликацию для синхронизации изменений с другим офисом и одностороннюю репликацию для обновления вашей публикуемой базы геоданных карты.
- Выберите, какой набор инструментов вы будете использовать для создания реплик – ArcGIS предоставляет несколько различных сред, в которых можно работать с репликацией базы геоданных. В каждой среде имеются свои преимущества. Ниже приводится описание того, какие преимущества имеет каждая среда.
- Мастер создания реплики (Create Replica wizard) – Мастер создания реплики доступен только на панели инструментов Распределенная база геоданных (Distributed geodatabase) в ArcMap. В данном мастере имеется множество опций, и он также имеет очень удобный пользовательский интерфейс, который был глубоко интегрирован в ArcMap. При первых попытках создания реплик или в случаях, когда вы планируете создание небольшого числа реплик, рекомендуется использовать мастер создания реплики.
- Инструмент геообработки Создать реплику (Create Replica) – Инструмент Создать реплику (Create Replica) также можно использовать для создания реплик. У данного инструмента множество опций, однако в нем нет никаких расширенных опций, которых не было бы в мастере Создать реплику (Create Replica).
Инструмент геообработки Создать реплику (Create Replica) является идеальным способом создания реплик, если вы делаете это регулярно. В среде геообработки модели и скрипты могут быть легко созданы и повторно запущены. Например, может быть создана модель, создающая ежедневно для ваших полевых бригад необходимые открепленные реплики (check-out replica). См. справку по инструменту геообработки Создать реплику (Create Replica) для получения более подробной информации.
- ArcObjects API – ArcObjects API также доступен в качестве средства, позволяющего создавать реплики. Вы можете писать программный код на нескольких языках. Данные возможности удобны в том случае, если вы хотите настроить событие создания реплики или вам нужно регулярно создавать реплики со сложными опциями.
- Интегрируйте репликацию в версионные рабочие процессы – Репликация базы геоданных разработана в дополнение к возможности работы с версиями. В момент создания реплики версия реплики задаётся и в родительской, и в дочерней репликах. Это будет той версией, из которой вы будете отправлять и получать изменения в течение синхронизации. Для получения более подробной информации см. раздел Создание реплик и работа с версиями.
Поскольку версия реплики представляет собой канал, по которому происходит синхронизация ее изменений, вам необходимо спланировать работу с версиями реплик до того, как их создавать. Например, вы можете спланировать запуск определенной проверки изменений, полученных в ходе синхронизации, прежде чем произвести их интеграцию в основной рабочий поток. Это может быть выполнено путем анализа содержимого версии реплики после синхронизации и затем путем его согласования и закрепления в постоянной рабочей версии. Вы также можете использовать версию Default в качестве версии реплики. Это может быть удобно в тех случаях, когда вы хотите, чтобы изменения переносились при синхронизации в версию Default напрямую.
- Определите данные для репликации – Репликация базы геоданных позволяет реплицировать некоторые или все наборы данных в базе геоданных ArcSDE. Репликация также позволяет вам определить, какие объекты или строки должны быть реплицированы. Для этого могут быть использованы фильтры и классы отношений. В ходе создания реплики первыми всегда применяются фильтры, а затем для присоединения дополнительных строк и объектов используются классы отношений. Для получения более подробной информации см. раздел Подготовка к репликации.
Учитывайте ваши будущие потребности при определении данных для репликации. Например, двухсторонние и односторонние реплики создаются только один раз, а синхронизируются много раз. Фильтры, которые вы определяете в момент создания реплики, также используются во время синхронизации. Со временем ваши требования могут измениться, и вам может понадобиться реплицировать большую область. Также важно учитывать тип данных, который вы реплицируете. Для поддержки целостности данных используются дополнительные правила, которые применяются в случае репликации сложных типов данных, например, геометрических сетей и топологий. Эти правила и примеры приведены в следующих разделах справки: Геометрические сети, Топологии, Классы отношений, Растровые данные и Наборы данных terrain и наборы сетевых данных.
- Изучите опции создания реплики – Некоторые опции были добавлены для того, чтобы сделать процесс создания реплики максимально удобным. Данные опции были спроектированы для работы в определенных случаях и могут не подходить для вашей организации рабочего потока. Просмотрите следующий список, чтобы увидеть, можете ли извлечь из этих опций какую-то выгоду:
- Повторное использование схемы – При повторном использовании схемы вы можете определить целевую базу геоданных, в которой уже есть схема для данных, репликацию которых вы производите. Это поможет сохранить время, поскольку этап создания схемы может быть опущен при создании реплики. Данная опция может быть применена только в случае использования открепленных реплик (check-out replica), но должна быть использована, когда это возможно.
- Только схема – Опция использования только схемы может позволить создать реплику, в которой строки не будут реплицированы. В течение создания реплики будет скопирована только схема. Данная опция может быть использована только для открепленных реплик (check-out replica). Примером того, когда вы можете использовать эту опцию, является ситуация, в которой вы создаете реплику для полевой бригады, которая собирается только вводить новую информацию. Использование данной опции может позволить вам сохранить время, затрачиваемое на установку для каждого набора данных опции "только схема" в мастере.
- Регистрация существующих данных – Если выполняется репликация большого объема данных, может потребоваться использование опции регистрации существующих данных. Данная опция может позволить вам избежать прохождения этапа копирования данных процесса создания реплики и позволит вам просто зарегистрировать новую реплику. Чтобы вы могли использовать эту опцию успешно, вы должны выполнить ряд определенных действий перед созданием реплики. Заметим, что данная опция не будет доступна при использовании инструментов геообработки.
- Репликация связанных данных – Во время создания реплики сначала применяются фильтры, а затем для определения данных, которые должны быть реплицированы, обрабатываются Классы отношений. Вы можете отключить опцию обработки классов отношений, что позволит вам сохранить время. Если вы выберете опцию отключения обработки классов отношений, то классы отношений будут включены в репликацию, но не будут обрабатываться в ходе создания реплики и синхронизации. Вам также будет доступна опция отключения обработки всех классов пространственных объектов в дополнительных разделах Мастера создания реплики и инструменте геообработки. Мастер создания реплики также позволит вам отключить опцию обработки только определенных классов отношений.
- Использовать архивацию для отслеживания изменений – При использовании архивации для отслеживания изменений вместо связанных с версиями дельта-таблиц системные версии не создаются. Поэтому процессы согласования, постобработки и сжатия не затрагиваются, делая управление версией и управление репликой независимыми. Это позволяет быть более гибким графику синхронизации.
- Определите, будет реплика использоваться в среде с подключением по сети или в автономной среде – Реплики могут быть созданы как в среде с подключением по сети, так и в автономной среде. В подключенной среде создание и синхронизация выполняются во время подключения к одной и той же сети. В автономной среде сеть не используется. Создание и синхронизация выполняются посредством экспорта файлов, например, XML-документов, отправкой и импортом их в целевой базе геоданных. Для получения более подробной информации см. раздел Автономная репликация и репликация с подключением по сети.
Если сеть доступна, но ее использование ненадежно, вы можете рассматривать в качестве альтернативы использование автономной репликации. Процесс создания реплики, запускаемый по сети с низкой пропускной способностью, может занять много времени и быть ненадежным. При автономной репликации вы можете экспортировать результаты вашей работы в файл и затем продолжить работу, не ожидая завершения отправки информации по сети. В этом случае, однако, вам может понадобиться создать резервные копии этих файлов на тот случай, если их содержимое будет потеряно до их импорта в целевую базу геоданных.
Синхронизация реплик
Как только реплика будет создана, вы сможете начать синхронизацию изменений между репликами баз геоданных. См. раздел Синхронизация для получения дополнительной информации. Чтобы сделать работу вашей системы более эффективной, важно разработать стратегию синхронизации изменений. Ниже приводится перечень вопросов, которые вы должны учесть при определении оптимальной для вашей системы стратегии.
- Методы синхронизации – Сначала определите, какой способ синхронизации наиболее соответствует вашим потребностям. Ниже приводится список некоторых вариантов:
- Синхронизация вручную – Если вы работаете только с небольшим числом реплик и не планируете производить синхронизацию изменений очень часто, то вы могли бы использовать инструменты, имеющиеся в ArcGIS. Панель инструментов Распределенная база геоданных (Distributed Geodatabase) и контекстное меню Распределенная база геоданных (Distributed Geodatabase) в дереве Каталога предоставляют возможность работы с мастерами для выполнения синхронизаций. Эти мастера доступны для подключений к базам геоданных, а также для объектов сервера геоданных, которые доступны в дереве Каталога посредством ArcGIS for Server. Это может позволить вам синхронизировать как локальные, так и удаленные подключения по сети Интернет. Существуют также инструменты геообработки для распределенной базы геоданных, которые предоставляют такую же функциональность.
- Автоматическая синхронизация с помощью агентов – при работе с системами, в которых имеется большое количество реплик или часто выполняется синхронизация, необходимо рассмотреть возможность создания агента репликации. Агенты репликации работают путем автоматического подключения к реплицированным базам геоданных и выполнения необходимых синхронизаций. В этом случае конечным пользователям не нужно самим производить синхронизацию их баз данных, поскольку она производится автоматически. В среде с подключением к сети для создания агентов синхронизации могут быть использованы следующие технологии:
- Синхронизация средствами инструментов геообработки – С помощью инструментов геообработки можно создавать модели для синхронизации реплик с использованием подключения к локальным базам геоданных или подключения к объектам сервера геоданных, который доступен в сети Интернет. Эти модели могут быть экспортированы в скрипты Python и выполнены посредством Python. Команды, при выполнении которых происходит запуск скрипта, могут быть добавлены в программное обеспечение планирования, например, планировщик Windows, чтобы они могли выполняться регулярно. Например, вам может потребоваться запланировать выполнение синхронизации между двумя корпоративными базами геоданных один раз в неделю в оптимальное с точки зрения активности базы геоданных время.
- Синхронизация с помощью ArcObjects – Синхронизация полностью поддерживается посредством ArcObjects API. Программный интерфейс приложений (API) позволяет вам создавать более продвинутые агенты синхронизации, чем те, которые создаются с помощью инструментов геообработки. Например, вы можете добавить функциональность, позволяющую производить синхронизацию данных на полевом ноутбуке, когда операционная система обнаружит, что ноутбук будет подключен по сети.
- Синхронизация и конфликты – Если правки, которые были внесены в данные реплики, конфликтуют с правками, которые синхронизируются из связанной реплики, необходимо определить способ разрешения конфликта. Вы можете применить политику согласования для автоматического разрешения конфликтов или для включения опции последующего разрешения конфликтов вручную. Просмотрите раздел о синхронизации и работе с версиями, чтобы узнать, имеет ли это отношение к вашей системе. Одной из альтернатив работы с конфликтами является использование ArcObjects API для создания системы, которая будет обрабатывать конфликты. В такой системе синхронизации будут использовать политику ручного согласования, но в ней будет второй процесс, который будет позднее автоматически запускаться для разрешения всех возникших конфликтов.
- Синхронизируемые данные – При работе с открепленными репликами все изменения данных, которые производятся в дочерних репликах, проходят синхронизацию. При работе с двухсторонними и односторонними репликами будут закреплены только те изменения, которые удовлетворяют условиям фильтров и классов отношений. Менеджер реплик может быть использован для определения фильтров и правил классов отношений, которые были установлены для каждого реплицированного набора данных. Вы также можете создать слепок реплики для хранения этой информации на локальном компьютере и для визуализации каждого пространственного фильтра реплики.
Для поддержки целостности данных при синхронизации сложных типов данных, например, геометрических сетей и топологий, используются дополнительные правила. Вы также можете добавить опцию обработки класса отношений для данных, которые будут синхронизированы. Для получения информации о синхронизации различных типов данных ознакомьтесь со следующими разделами: Синхронизация топологии, Синхронизация связанных данных и Синхронизация геометрических сетей.
- Объем данных – При синхронизации используются только те изменения, которые были выполнены с момента последней синхронизации. ArcGIS не обращает внимания на любые изменения, которые уже были отосланы, и их прием был подтвержден. Точно так же, как только изменение будет отослано, оно уже никогда не будет возвращено обратно в исходную реплику. Таким образом, объемы данных сокращаются до самого необходимого.
Спланируйте частоту, с которой вы будете производить синхронизацию. Эта частота должна соответствовать темпу, с которым в ваших данных производятся изменения. Если вы не производили синхронизацию достаточно часто для большого объема изменений, то этот процесс может потребовать много времени. Рекомендуется также производить синхронизацию в течение часов минимальной нагрузки базы. При экспорте изменений в данных, работая в автономной среде, следует всегда использовать ZIP-файлы вместо несжатых форматов, например XML-файлов. Также рекомендуется принять за правило отправку подтверждений о приеме сообщений.
- Порядок синхронизации реплик – При работе с несколькими репликами может быть важен порядок, в котором они синхронизируются. Например, рассмотрим случай, в котором вы создаете несколько двухсторонних реплик из одной базы геоданных ArcSDE. Одна стратегия для синхронизации этих реплик заключалась бы в том, что вам было нужно синхронизировать каждую дочернюю реплику с ее родителем в обоих направлениях. Дочерняя реплика отсылает изменения в родительскую реплику, а затем родительская реплика отсылает изменения в дочернюю. Другая стратегия заключается в том, что каждая дочерняя реплика сначала отсылает ее изменения родительской реплике. Затем родительская реплика производит внесение всех изменений и отсылает обратно изменения для каждой дочерней реплики. В первом случае родитель отсылает дочерней реплике только ее изменения, а во втором случае родитель отсылает еще изменения, которые были получены от других реплик. В зависимости от организации вашей системы, одна стратегия может быть более подходящей, чем другая.
- Изменения схемы – Репликация базы геоданных спроектирована, чтобы допускать изменения схемы. Это означает, что синхронизации смогут продолжать работать, даже если для реплицированных данных будет изменена схема. Можно сказать, что вы также можете использовать в некоторой степени изменения схемы между несколькими репликами. Для получения более подробной информации см. раздел Работа с изменениями схемы.
Чаще всего лучше, чтобы изменения схемы были сведены к минимуму. Если вы хотите использовать изменения схемы между несколькими репликами, то лучше всего сделать это организованно. Например, для добавления поля сразу в нескольких репликах сперва добавьте поле в класс пространственных объектов родительской реплики самого высокого уровня. Затем произведите добавление поля во всех репликах по нисходящей. Более подробно см. в разделе Изменения схемы и реплики.
- Работа с ошибками – Ошибки могут возникать в ходе синхронизации по самым разным причинам. В подключенной по сети системе может дать сбой компьютерная сеть, или вы можете пытаться синхронизировать конфликтную реплику. В автономной системе вы можете потерять информацию или по ошибке пытаться импортировать сообщения в неправильном порядке. Во всех этих случаях система спроектирована на то, чтобы остаться в целостном состоянии. Произойдет откат изменений, а импорт некорректных сообщений будет отменен. Вы можете использовать журнал реплик для обнаружения каких-либо возникших ошибок, а также для определения последующих действий, если у вас есть что восстанавливать. Чаще всего система будет автоматически восстановлена после появления ошибок, если вы просто продолжите синхронизацию изменений. Реплики также содержат информацию о внесенных изменениях, которая указывает на то, сколько пакетов изменений было отправлено и сколько пакетов изменений было получено. Для получения более подробной информации см. раздел Управление репликами.