Работа с репликами баз геоданных
Эта тема относится только к ArcGIS for Desktop Standard и ArcGIS for Desktop Advanced.
Различные процессы требуют от вас распределения данных по разным базам геоданных и синхронизации изменений данных, внесенных в каждую базу геоданных данных. Следующий раздел поможет вам наилучшим образом использовать в вашей системе распределенные данные, реплики баз геоданных и синхронизацию.
Перед чтением этого руководства просмотрите раздел введение в работу с распределенными данными, в котором описывается репликация баз геоданных, а также другие методы распределения данных. Раздел Примеры использования распределенных данных также содержит множество примеров наиболее общих случаев использования репликации баз геоданных. Если вам кажется, что репликация базы геоданных является наиболее подходящим способом распределения данных для вашей системы, то вашим следующим действием будет создание реплик.
Создание реплик
Расположенные ниже указания помогут вам определить наилучший способ создания реплик для вашей системы.
- Определите, какие реплики вам нужны – в некоторых случаях вам будет нужно создать только одну или две реплики, в то время как в остальных случаях вам будет нужно создать много реплик. Например, вам понадобится множество реплик при распределении данных для полевой бригады, персонал которой будет работать на своих полевых ноутбуках. В тех случаях, когда вам потребуется иметь синхронизированными две многопользовательские базы геоданных, вам будет нужна всего одна реплика. Чтобы понять, что такое реплика и как она работает в рамках базы геоданных, прочитайте раздел реплики и базы геоданных.
- Решите, какой тип репликации вы будете использовать; в разделе типы репликации (replication types) дается описание каждого из трех доступных типов репликаций. При использовании вашей системы вам может понадобиться использовать один тип реплики в одном случае и другой тип – в другом случае. Например, вам может понадобиться использовать двухстороннюю репликацию для синхронизации изменений с другим офисом и одностороннюю репликацию для обновления вашей публикуемой базы геоданных карты.
- Выберите, какой набор инструментов вы будете использовать для создания реплик; ArcGIS предоставляет несколько различных сред, в которых вы можете работать с репликацией баз геоданных. В каждой среде имеются свои преимущества. Ниже приводится описание того, какие преимущества имеет каждая среда.
- Мастер Создать реплику: мастер Создать реплику (Create Replica) доступен на панели инструментов Распределенная база геоданных (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). Примером того, когда вы можете использовать эту опцию, является ситуация, в которой вы создаете реплику для полевой бригады, которая собирается только вводить новую информацию. Использование данной опции может позволить вам сохранить время, затрачиваемое на установку для каждого набора данных опции "только схема" в мастере.
- Регистрация существующих данных: если вы производите репликацию большого объема данных, то, возможно, вы воспользуетесь опцией регистрации существующих данных. Данная опция может позволить вам избежать прохождения этапа копирования данных процесса создания реплики и позволит вам просто зарегистрировать новую реплику. Чтобы вы могли использовать эту опцию успешно, вы должны выполнить ряд определенных действий перед созданием реплики. Заметим, что данная опция не будет доступна при использовании инструментов геообработки.
- Репликация связанных данных: во время создания реплики сначала применяются фильтры, а затем для определения данных, которые должны быть реплицированы, обрабатываются классы отношений (relationship classes). Вы можете отключить опцию обработки классов отношений, что позволит вам сохранить время. Если вы выберете опцию отключения обработки классов отношений, то классы отношений будут включены в репликацию, но не будут обрабатываться в ходе создания реплики и синхронизации. Вам также будет доступна опция отключения обработки всех классов пространственных объектов в дополнительных разделах Мастера создания реплики и инструменте геообработки. Мастер создания реплики также позволит вам отключить опцию обработки только определенных классов отношений.
- Использовать архивацию для отслеживания изменений: при использовании архивации для отслеживания изменений вместо связанных с версиями дельта-таблиц системные версии не создаются. Поэтому процессы согласования, постобработки и сжатия не затрагиваются, делая управление версией и управление репликой независимыми. Это позволяет быть более гибким графику синхронизации.
- Определите, будет реплика использоваться в среде с подключением по сети или в автономной среде: реплики могут быть созданы как в среде с подключением по сети, так и в автономной средах. В подключенной среде создание и синхронизация выполняются во время подключения к одной и той же сети. В автономной среде сеть не используется. Создание и синхронизация выполняются посредством экспорта файлов, например, XML-документов, отправкой и импортом их в целевой базе геоданных. Для получения более подробной информации см. раздел Автономная репликация и репликация с подключением по сети.
Если сеть доступна, но ее использование ненадежно, вы можете рассматривать в качестве альтернативы использование автономной репликации. Процесс создания реплики, запускаемый по сети с низкой пропускной способностью, может занять много времени и быть ненадежным. При автономной репликации вы можете экспортировать результаты вашей работы в файл и затем продолжить работу, не ожидая завершения отправки информации по сети. В этом случае, однако, вам может понадобиться создать резервные копии этих файлов на тот случай, если их содержимое будет потеряно до их импорта в целевую базу геоданных.
Синхронизация реплик
Как только реплика будет создана, вы сможете начать синхронизацию изменений между репликами баз геоданных. См. раздел Синхронизация для получения дополнительной информации. Чтобы сделать работу вашей системы более эффективной, важно разработать стратегию синхронизации изменений. Ниже приводится перечень вопросов, которые вы должны учесть при определении оптимальной для вашей системы стратегии.
- Методы синхронизации: сперва определите, какой способ синхронизации будет для вас наилучшим. Ниже приводится список некоторых вариантов:
- Синхронизация вручную: если вы работаете только с небольшим числом реплик и не планируете производить синхронизацию изменений очень часто, то вы могли бы использовать инструменты, имеющиеся в ArcGIS. Панель инструментов Распределенная база геоданных (Distributed Geodatabase) и контекстное меню Распределенная база геоданных (Distributed Geodatabase) в дереве Каталога предоставляют возможность работы с мастерами для выполнения синхронизаций. Эти мастера доступны для подключений к базам геоданных, а также для объектов сервера геоданных, которые доступны в дереве Каталога посредством ArcGIS for Server. Это может позволить вам синхронизировать как локальные, так и удаленные подключения по сети Интернет. Существуют также инструменты геообработки для распределенной базы геоданных, которые предоставляют такую же функциональность.
- Автоматическая синхронизация с помощью агентов: при работе с системами, в которых имеется большое количество реплик и/или часто производится синхронизация, вам следует рассмотреть возможность создания агента репликации. Агенты репликации работают путем автоматического подключения к реплицированным базам геоданных и выполнения необходимых синхронизаций. В этом случае конечным пользователям не нужно самим производить синхронизацию их баз данных, поскольку она производится автоматически. В среде с подключением к сети для создания агентов синхронизации могут быть использованы следующие технологии:
- Синхронизация средствами инструментов геообработки: с помощью инструментов геообработки вы можете создать модели для синхронизации реплик, используя либо подключения к локальным базам геоданных, либо подключения к объектам сервера геоданных, доступные через Интернет. Эти модели могут быть экспортированы в скрипты Python и выполнены посредством Python. Команды, при выполнении которых происходит запуск скрипта, могут быть добавлены в программное обеспечение планирования, например, планировщик Windows, чтобы они могли выполняться регулярно. Например, вам может потребоваться запланировать выполнение синхронизации между двумя корпоративными базами геоданных один раз в неделю в оптимальное с точки зрения активности базы геоданных время.
- Синхронизация с помощью ArcObjects: синхронизация полностью поддерживается посредством ArcObjects API. Программный интерфейс приложений (API) позволяет вам создавать более продвинутые агенты синхронизации, чем те, которые создаются с помощью инструментов геообработки. Например, вы можете добавить функциональность, позволяющую производить синхронизацию данных на полевом ноутбуке, когда операционная система обнаружит, что ноутбук будет подключен по сети.
- Синхронизация и конфликты: если изменения данных реплики будут конфликтовать с изменениями данных, синхронизированных из связанной реплики, то необходимо будет определить способ устранения этого конфликта. Вы можете применить политику согласования для автоматического разрешения конфликтов или для включения опции последующего разрешения конфликтов вручную. Просмотрите раздел о синхронизации и работе с версиями, чтобы узнать, имеет ли это отношение к вашей системе. Одной из альтернатив работы с конфликтами является использование ArcObjects API для создания системы, которая будет обрабатывать конфликты. В такой системе синхронизации будут использовать политику ручного согласования, но в ней будет второй процесс, который будет позднее автоматически запускаться для разрешения всех возникших конфликтов.
- Синхронизируемые данные: при работе с открепленными репликами синхронизируются все изменения данных, которые произведены в дочерних репликах. При работе с двухсторонними и односторонними репликами будут закреплены только те изменения, которые удовлетворяют условиям фильтров и классов отношений. Менеджер реплик может быть использован для определения фильтров и правил классов отношений, которые были установлены для каждого реплицированного набора данных. Вы также можете создать слепок реплики для хранения этой информации на локальном компьютере и для визуализации каждого пространственного фильтра реплики.
Для поддержки целостности данных при синхронизации сложных типов данных, например, геометрических сетей и топологий, используются дополнительные правила. Вы также можете добавить опцию обработки класса отношений для данных, которые будут синхронизированы. Для получения информации о синхронизации различных типов данных ознакомьтесь со следующими разделами: Синхронизация топологии, Синхронизация связанных данных и Синхронизация геометрических сетей.
Метаданные для данных, которые вы выбрали для репликации, копируются в процессе создания реплики. Однако, изменения метаданных не применяются во время синхронизации реплик.
- Объем данных: при синхронизации применяются только те изменения, которые были произведены с момента последней синхронизации. ArcGIS не обращает внимания на любые изменения, которые уже были отосланы, и их прием был подтвержден. Точно так же, как только изменение будет отослано, оно уже никогда не будет возвращено обратно в исходную реплику. Таким образом, объемы данных сокращаются до самого необходимого.
Спланируйте частоту, с которой вы будете производить синхронизацию. Эта частота должна соответствовать темпу, с которым в ваших данных производятся изменения. Если вы не производили синхронизацию достаточно часто для большого объема изменений, то этот процесс может потребовать много времени. Рекомендуется также производить синхронизацию в течение часов минимальной нагрузки базы. При экспорте изменений в данных, работая в автономной среде, следует всегда использовать ZIP-файлы вместо несжатых форматов, например XML-файлов. Также рекомендуется принять за правило отправку подтверждений о приеме сообщений.
- Порядок, в котором синхронизируются реплики: если вы работаете с несколькими репликами, то имеет значение порядок, в котором они синхронизируются. Например, рассмотрим случай, в котором вы создаете несколько двухсторонних реплик из одной базы геоданных ArcSDE. Одна стратегия для синхронизации этих реплик заключалась бы в том, что вам было нужно синхронизировать каждую дочернюю реплику с ее родителем в обоих направлениях. Дочерняя реплика отсылает изменения в родительскую реплику, а затем родительская реплика отсылает изменения в дочернюю. Другая стратегия заключается в том, что каждая дочерняя реплика сначала отсылает ее изменения родительской реплике. Затем родительская реплика производит внесение всех изменений и отсылает обратно изменения для каждой дочерней реплики. В первом случае родитель отсылает дочерней реплике только ее изменения, а во втором случае родитель отсылает еще изменения, которые были получены от других реплик. В зависимости от организации вашей системы, одна стратегия может быть более подходящей, чем другая.
- Изменения схемы: репликация базы геоданных предназначена для того, чтобы допустить возможность изменения схемы. Это означает, что синхронизации смогут продолжать работать, даже если для реплицированных данных будет изменена схема. Можно сказать, что вы также можете использовать в некоторой степени изменения схемы между несколькими репликами. Для получения более подробной информации см. раздел Работа с изменениями схемы.
Чаще всего лучше, чтобы изменения схемы были сведены к минимуму. Если вы хотите использовать изменения схемы между несколькими репликами, то лучше всего сделать это организованно. Например, для добавления поля сразу в нескольких репликах сперва добавьте поле в класс пространственных объектов родительской реплики самого высокого уровня. Затем произведите добавление поля во всех репликах по нисходящей. Более подробно см. в разделе Изменения схемы и реплики.
- Работа с ошибками: в процессе синхронизации по разным причинам могут возникнуть ошибки. В подключенной по сети системе может дать сбой компьютерная сеть, или вы можете пытаться синхронизировать конфликтную реплику. В автономной системе вы можете потерять информацию или по ошибке пытаться импортировать сообщения в неправильном порядке. Во всех этих случаях система спроектирована на то, чтобы остаться в целостном состоянии. Произойдет откат изменений, а импорт некорректных сообщений будет отменен. Вы можете использовать журнал реплик для обнаружения каких-либо возникших ошибок, а также для определения последующих действий, если у вас есть что восстанавливать. Чаще всего система будет автоматически восстановлена после появления ошибок, если вы просто продолжите синхронизацию изменений. Реплики также содержат информацию о внесенных изменениях, которая указывает на то, сколько пакетов изменений было отправлено и сколько пакетов изменений было получено. Для получения более подробной информации см. раздел Управление репликами.