8f152643

В одном или нескольких



В одном или нескольких узлах (СУБД), которым нужны измененные данные, в обслуживающем его
репликационном сервере создается подписка (subscription) на соответствующее описание
тиражирования. Здесь будет поддерживаться (с небольшой задержкой) копия первичных
данных.

Современные СУБД используют системный журнал, в который делаются записи о изменениях в
базе данных и завершении транзакций. Журнал используется сервером БД для отката и доката
транзакций после сбоев и для резервного копирования. Репликация данных в Sybase также
использует журнал как источник информации о завершенных транзакциях.

В узле, содержащем первичные данные, для каждой тиражируемой базы данных запускается
специальная компонента - репликационный агент (Replication Agent - RA). Он подключается к
серверу БД и получает от него уведомления о завершении транзакций. Измененные данные
передаются репликационному серверу, обслуживающему этот узел. Репликационный сервер в
соответствии с описанием тиражирования и подписками отправляет данные в специальном
эффективном протоколе по месту назначения - соответствующим репликационным серверам в
удаленных узлах.

Именно в этом месте - между репликационными серверами - связь может быть медленной или
недостаточно надежной. Передаваемые данные в составе транзакции при недоступности узла-
получателя записываются в стабильные очереди на диске и затем передаются по мере возможности.
Данные могут передаваться в удаленный узел по маршруту, содержащему несколько
репликационных серверов. Данная возможность лежит в основе построения иерархических систем
репликации.

По умолчанию репликационный сервер сохраняет смысл операций. Это значит, что удаление
записи из первичной таблицы (выполнение оператора DELETE) приведет к выполнению такого же
оператора DELETE в узле, хранящем копию таблицы; выполнение INSERT или UPDATE над
первичной таблицей точно так же приведет соответственно к добавлению или обновлению записи
в копии таблицы в результате работы системы репликации.

Содержание раздела