Схемы репликации
Репликатор (сервер репликации ReplServer) запущен на самом верхнем уровне филиальной сети (на машине с ЦБД). Периодически, в соответствии с настройками, он обращается к филиальным БД.
Принципиально существует два вида активности репликатора по отношению к ФБД:
- загрузка измененных в ФБД записей из ФБД в центральную базу;
- отправка измененных записей из ЦБД в филиальные базы (во все или в некоторые определенные).
На этих двух видах активности основаны три основные схемы (процедуры) репликации. Процедуру, при которой репликатор загружает в центральную базу изменения из всех ФБД, будем называть консолидацией (рис.1). Процедуру передачи измененных записей из ЦБД во все ФБД будем называть распространением (рис.2). Третий тип схемы репликации – межфилиальное распространение – состоит в передаче изменений из одного филиала в один или несколько других, причем изменения из филиала в филиал передаются только через ЦБД (рис.3).
Различные схемы репликации применяются к различным логическим группам таблиц БД МИС "Инфоклиника".
Консолидация
При консолидации (рис.1), репликатор с настроенной периодичностью обращается к каждой ФБД и по определенным правилам анализирует журнал изменений этой БД. Отобрав записи о еще не реплицированных изменениях, репликатор загружает соответствующие данные из ФБД в ЦБД (обновляя уже существующие в ЦБД записи или добавляя новые).

В детальном журнале изменений филиальной базы переданные в ЦБД изменения помечаются репликатором как отправленные, и при следующем обращении репликатора к этой ФБД обрабатываться уже не будут.
Консолидация в многоуровневой филиальной сети выполняется через промежуточные БД-дистрибьюторы (см.ниже).
Консолидация применяется к т.н. оперативным таблицам.
Распространение
Распространение (в узком смысле) – схема репликации, при которой изменения передаются репликатором из ЦБД во все ФБД (рис.2).

При распространении репликатор анализирует журнал изменений ЦБД и отправляет в каждую ФБД изменения, которые туда еще не были отправлены.
Распространение применяется к т.н. справочным таблицам.
Межфилиальное распространение
Межфилиальное распространение в некотором смысле является комбинацией консолидации и распространения. Однако, если при консолидации и распространении репликатор взаимодействует со всеми ФБД, то при межфилиальном распространении данные передаются из одного филиала через ЦБД в один или несколько других филиалов.

МИС "Инфоклиника" предоставляет возможность прямого обращения из одной ФБД к другой ФБД минуя ЦБД, но репликация (средствами репликатора) непосредственно между филиалами невозможна.
Каскадная репликация в многоуровневой филиальной сети. Базы-дистрибьюторы
В многоуровневой филиальной сети изменения передаются каскадно (рис. 4).

Изменение, сделанное в ФБД, сначала реплицируется в РБД, а затем – в ЦБД.
Репликатор при этом (в рекомендуемой конфигурации) выполняется на уровне ЦБД.
Межуровневая репликация основана на механизме баз-дистрибьюторов. БД филиальной сети может иметь признак "дистрибьютор" или не иметь его. В зависимости от наличия признака, репликатор по-разному помещает в базу изменения из нижестоящих в иерархии сети баз. Репликатор, помещая в базу-дистрибьютор (на рисунке – РБД) изменения из баз нижнего уровня (ФБД), вносит записи об этих изменениях в детальный журнал изменений базы-дистрибьютора так, как будто сама база является первоисточником изменения. Это провоцирует репликатор на передачу таких изменений в базу более высокого уровня (ЦБД).
В многоуровневой филиальной сети дистрибьюторами должны являться все БД, имеющие одновременно и выше-, и нижестоящие БД.
Схемы репликации: сопоставление
На рисунке 5 сопоставляются три вышеописанные схемы репликации в многоуровневой филиальной сети.
