21)Модели репликации
Репликация (Replication) - процесс создания и размещения копий данных и объектов на серверах распределенной системы, позволяющий уменьшить время реакции системы на запросы пользователей.
Репликация моментальных снимков (Snapshot replication) - тип репликации, при котором моментальный снимок данных на издателе передается подписчику и полностью замешает предыдущую реплику. Передача моментальных снимков производится по определенному графику.
Репликация по запросу (Pull subscription) - тип репликации, состоящий в том, что инициатором передачи изменений подписчик, запрашивающий изменения от издателя.
Репликация сведением (Merge replication) - тип репликации, позволяющий подписчикам выполнять модификации в собственных базах данных с последующим сведением изменений на издателе.
(Это наверно надо удалить)Модель публикаций включает такие компоненты, как публикующий сервер, распределительный сервер, распределительную базу данных и серверы-подписчики (рис. 6.22).
Рис. 6.22. Модель публикаций компании Microsoft
Публикующий сервер содержит базы данных, которые являются источником информации для серверов-подписчиков. Публикующий сервер самостоятельно устанавливает перечень данных для репликации. Распределительный сервер осуществляет интеграцию реплицируемых данных в специальной распределительной базе данных и их передачу на серверы-подписчики. Публикующие серверы формируют подписки, состоящие из отдельных статей, каждая из которых соответствует таблице, либо индексу, либо хранимой процедуре.
Основными типами репликаций являются следующие: мгновенная репликация, репликация слиянием, транзакционная репликация.
Мгновенная репликация характеризуется максимальной степенью серверной зависимости и заключается в формировании мгновенного снимка данных, включающего содержание таблиц либо их частей, и передаче их подписчикам. Для реализации этого вида репликации необходимы существенные затраты на передачу данных. Наиболее простой вариант использования мгновенной репликации состоит в обновлении таблиц, доступных только для чтения, на серверах-подписчиках. Поддержка мгновенной репликации производится распределительным агентом и агентом мгновенной репликации (рис. 6.23). Последний выполняет функции по формированию образа данных, синхронизация исходных и целевых таблиц на начальной стадии репликации и хранению файлов на распределительном сервере. Распределительный сервер реализует функционал по передаче мгновенных копий с публикующего сервера на сервер-подписчик.
Рис. 6.23. Схема мгновенной репликации
Репликация слиянием характеризуется тем, что обновление данных допускается как на различных серверах-подписчиках, так и на публикующем сервере. Измененные данные со всех серверов-подписчиков передаются на публикующий/распределительный сервер, на котором осуществляется их слияние. Так как на разных серверах могут быть обновлены одни и те же строки, то производится разрешение конфликтов по заданному критерию. Результатом разрешения конфликта является выбор среди конкурирующих значений для одного и того же атрибута данных единственного доминирующего значения. В качестве таких критериев традиционно применяются следующие:
приоритет сервера. В качестве доминирующего выбирается значение, соответствующее серверу, имеющему наивысший приоритет;
момент обновления данных. Доминирующим объявляется наиболее позднее либо наиболее раннее значение элемента данных;
вычисление агрегирующего значения. В качестве доминирующего значения выбирается минимальное, максимальное, суммарное либо среднее значение элемента данных;
принятие решения пользователем о выборе доминирующего значения.
Рис. 6.24. Схема репликации слиянием
Транзакционная репликация отличается от мгновенной репликации тем, что на серверы-подписчики передаются только измененные значения элементов данных. Это приводит к существенному уменьшению объема передаваемой информации, но к увеличению частоты обмена данными между публикующим сервером и локальными серверами-подписчиками. Для реализации этого вида репликации применяются следующие агенты репликации. Агент чтения протокола производит мониторинг журнала транзакций на публикующем сервере и выделяет записи, соответствующие выполнению SQL -операторов, осуществляющих модификацию данных, INSERT, UPDATE, DELETE. Измененные значения передаются на распределительный сервер и размещаются в служебной базе данных. Распределительный агент производит передачу измененных данных на серверы-подписчики.
Рис. 6.25. Схема транзакционной репликации