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