Процесс репликации Репликация – процесс автоматического распределения копий данных и объектов БД между экземплярами SQL Server с одновременной синхронизацией всей распространяемой информацией. SQL Server предоставляет разнообразные способы выполнения задач по репликации данных и хранимых процедур, обеспечивая безопасность данных в процессе репликации данных.
Cлайд 3
Задачи репликации данных С помощью выполнения репликации данных решаются следующие актуальные задачи: снижение сетевого трафика между удаленными офисами; отделение OLTP-операций от функций средств поддержки принятия решений; объединение данных поступающих из различных мест; реализация избыточности данных; расширение системы за пределы ЛВС; поддержка мобильных пользователей.
Cлайд 4
Терминология репликации Сервер, реплицирующий сохраненную информацию на другие серверы, называется издателем. Реплицируемая информация состоит из одной или нескольких публикаций. Каждая публикация представляет собой логически согласованный набор данных отдельной БД и состоит статей. Каждая статья может быть объектом следующего типа: часть или целая таблица; хранимая процедура или представление; выполнение хранимой процедуры; представление; пользовательская функция. В процессе репликации каждый издатель взаимодействует с распространителем. Распространитель сохраняет публикуемые БД, историю событий и метаданные. Распространитель может быть локальным и удаленным.
Cлайд 5
Терминология репликации Серверы, получающие реплицируемую информацию, называются подписчиками. Они получают избранные публикации – подписки – от одного или нескольких серверов. В зависимости от типа репликации подписчики могут изменять реплицируемую информацию, а также реплицировать измененную информацию обратно издателю. Подписчики могут быть авторизованы или анонимны. В случае больших публикаций использование анонимных подписчиков позволяет повысить производительность системы.
Cлайд 6
Агенты репликации Агенты репликации автоматизируют процесс репликации. Существую следующие типы агентов: Агент Snapshot создает исходную мгновенную копию каждой публикации, включая репликацию о схеме; Агент Distribution передает моментальный снимок данных и последующие изменения от распространителя подписчикам; Агент Log Reader перемещает транзакции, помеченные для репликации, из журнала транзакций с сервера-издателя на сервер-распространитель. Агент Queue Reader вносит изменения в журнал публикаций, сделанные подписчиками в автономном режиме; Агент Merge передает моментальный снимок данных от распространителя подписчикам, дезактивирует подписки, информация которых не обновлялась в течении максимального срока хранения публикации; Агент History Clean Up удаляет журнал агента событий из БД распространителя; Агент Distribution Clean Up удаляет реплицированные транзакции из БД распространения и отключает неактивных подписчиков; Агент Expired Subscription Clean Up выявляет и удаляет подписки с истекшим сроком хранения; Агент Reinitialize Having Data Validation Failures повторно инициализирует все подписки, имеющие ошибки при проверке согласованности данных; Агент Replication Checkup выявляет неактивных агентов репликации и заносит соответствующие записи в журнал приложений.
Cлайд 7
Типы репликации SQL Server 2000 поддерживает три типа репликации: моментальные снимки (snapshot replication); транзакций (transactional replication); сведением (merge replication).
Cлайд 8
Репликация моментальных снимков Репликация моментальных снимков – это периодическая репликация целостного набора данных, зафиксированного по состоянию на определенный момент времени, с локального сервера на удаленные. Данный тип репликации используется в случае, если количество реплицируемых данных невелико, а источник данных статичен. Удаленным серверам предоставляется ограниченную возможность обновления реплицированных данных.
Cлайд 9
Процесс репликации моментальных снимков При репликации моментальных снимков агент Snapshot периодически копирует все помеченные для репликации данные с сервера издателя в папку моментальных снимков распространителя. Агент Distribution периодически копирует из папки моментальных снимков на каждый сервер подписчик и, используя эти данные, полностью обновляет на нем публикацию. Агент Snapshot выполняется на распространителе, а агент Distribution может выполняться как на распространителе, так и на сервере-подписчике. Оба агента записывают информацию в журнал событий и журнал ошибок в БД распространения. При репликации моментальных снимков подписчикам можно разрешить обновлять реплицируемую информацию немедленно и/или в порядке очереди.
Cлайд 10
Репликация транзакций Репликация транзакций – это репликация начального моментального снимка на удаленные серверы, а также репликация отдельных транзакций, работающих на локальном сервере и выполняющих последовательные изменения данных в начальном моментальном снимке. Данные реплицированные транзакции выполняются над реплицируемыми данными на удаленном сервере для синхронизации с данными на локальном сервисе. Такая схема используется, если необходимо постоянное обновление на удаленных серверах.
Cлайд 11
Процесс репликации транзакций При выполнении репликации транзакций агент Snapshot создает исходный моментальный снимок данных, помеченных для репликации, и копирует его с сервера-издателя в папку моментальных снимков распространителя. Агент Distribution направляет полученный снимок каждому подписчику. Агент Log Reader следит за изменениями данных, участвующих в репликации, фиксирует каждое изменение журнала транзакций в БД распространения. Агент Distribution отправляет каждое изменение всем подписчикам в первоначальном порядке выполнения этих изменений. Если хранимая процедура используется для обновления большого количества записей, можно реплицировать эту процедуру, а не каждую обновленную строку. Все агенты заносят информацию о событиях и ошибках в БД распространения. При наличии сетевого соединения с издателем могут получать изменения почти в реальном времени. После того, как все подписчики получат реплицированные транзакции, агент Distribution Clean UP удаляет эти транзакции из БД распространения.
Cлайд 12
Репликация сведением Репликация сведением – это репликация начального моментального снимка данных на удаленные серверы, а также репликация изменений, происходящих на каком-либо удаленном сервере, обратно на локальный сервер с целью синхронизации, разрешения конфликтов и повторной репликации на удаленные серверы. Данная репликация применяется, если многочисленные изменениям подвергаются одни и те же данные, либо когда удаленные независимые компьютеры работают автономно.
Cлайд 13
Процесс репликации сведением При репликации сведением агент Snapshot передает начальный моментальный снимок данных от издателя в папку моментальных копий распространителя. Агент Merge направляет снимок каждому подписчику. Также анализируется и объединяются изменения реплицируемые данные, выполняемые издателем и подписчиком. Если при объединении происходит конфликт, агент Merge разрешает его, используя заданный администратором способ. Оба агента заносят информацию о событиях и ошибках в БД распространения. Чтобы различать записи отдельных копий реплицируемых таблиц, агент Merge использует специальный уникальный столбец реплицируемых таблиц. Если такого столбца нет, агент Snapshot создает на издателе триггеры. Они ведут мониторинг реплицированных записей и заносят информацию об изменениях в системные таблицы сведения.
Cлайд 14
Выбор модели репликации Существует несколько моделей репликации, которые используются в соответствии с задачами репликации. При использовании репликации моментальных снимков или репликации транзакций придется часто использовать удаленного распространителя. Если объем реплицируемых данных невелик, распространителя и издателей размещают на одном и том же компьютере. Вместо репликации данных нескольким подписчикам через низкоскоростное подключение, можно опубликовать данные на удаленном подписчике, который распространит эти данные другим подписчикам в своей области. Такой подписчик называется переиздающим. В случае репликации сведением центральный подписчик часто используется для объединения информации, поступающей от нескольких региональных издателей. Для этой модели необходимо горизонтальное разбиение данных, чтобы избежать возможных конфликтов. Обычно используется специальный столбец для идентификации данных, поступивших из отдельных регионов.
Cлайд 15
Реализация репликации Репликация, как правило, организуют средствами мастеров, доступных через консоль Enterprise Manager. Для построения репликации необходимо настроить свойства распространителя и издателя. Настройка свойств распространителя и издателя может быть выполнена при помощи мастера Configure Publishing and Distribution Wizard.
Cлайд 16
Мастера настройки распространителя и издателя репликации
Cлайд 17
Мастера настройки распространителя и издателя репликации
Cлайд 18
Вид консоли Enterprise Manager
Cлайд 19
Резюме Для передачи данных на несколько разных узлов и синхронизации информации на этих узлах можно использовать процесс репликации. Существует три основных типа репликации: репликация моментальных снимков; репликация транзакций; репликация сведением. Для автоматизации процесса репликации используются агенты репликации, выполняющие определенные задачи в соответствии с установленным расписанием. Консоль Enterprise Manager – основное средство организации, мониторинга и администрирования репликации.