Одноранговая репликация транзакций

Оценить
(0 голоса)

Одноранговая репликация является еще одной формой репликации транзакций, при которой каждый сервер в одно и то же время является издателем, распространителем и подписчиком одних и тех же данных. Иными словами, все серверы содержат одни и те же данные, но каждый сервер ответственный за изменение собственной части данных.

Одноранговую репликацию лучше всего объяснить через пример. Предположим, что компания имеет несколько офисов филиалов в различных городах, и каждый офисный сервер имеет такой же набор данных, что и все другие серверы. С другой стороны, все данные разделены на подмножества, и каждый офисный сервер может изменять только собственное подмножество данных. Когда данные изменяются на одном офисном сервере, эти изменения реплицируются на все другие серверы (подписчики) в одноранговой сети. (Пользователи в каждом офисе могут читать данные без каких-либо ограничений.)

Преимуществами этой формы репликации являются:

♦ вся система хорошо масштабируется;

♦ вся система предоставляет высокую доступность.

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

Высокая доступность основывается на том факте, что если один или более серверов отключаются от сети, все другие серверы могут продолжать работу, поскольку все данные, необходимые им для операций чтения и записи, хранятся локально. Когда отключенный сервер снова включается в сеть, заново стартует процесс репликации, и сервер получает все модификации данных, которые были выполнены на других сайтах.

Определение конфликтов в одноранговой репликации. В случае одноранговой репликации вы можете изменять данные на любом узле. Поэтому изменения данных на разных узлах могут конфликтовать друг с другом. (Если строка изменяется более чем на одном узле, то это может привести к конфликту.)

Одноранговая репликация в SQL Server 2008 вводит опцию для возможности определения конфликта в одноранговой топологии. При включенной такой опции конфликтное изменение данных трактуется как критическая ошибка, которая приводит к завершению Distribution Agent. В случае конфликта сценарий остается в несогласованном состоянии, пока конфликт не будет разрешен и данные не будут приведены в согласованное состояние на всех участвующих серверах.

Конфликты в одноранговой репликации определяются хранимыми процедурами, которые применяют изменения к каждому узлу, основываясь на скрытом столбце в каждой опубликованной таблице. Этот скрытый столбец хранит идентификатор, комбинируемый вместе с идентификатором, который вы указываете для каждого узла, и с версией строки. Эти процедуры выполняются из Distribution Agent, они применяют операции добавления, изменения и удаления с других участников сети. Если одна из процедур определяет конфликт при чтении значений скрытого столбца, то она вызывает ошибку 22 815.

Когда появляется конфликт одноранговой репликации, то выдается предупреждающее сообщение «Peer-to-peer conflict detection alert». Вы должны сконфигурировать это предупреждающее сообщение так, чтобы вы были соответствующим образом проинформированы при появлении конфликта. (В предыдущей главе объяснялось, как может быть сконфигурировано предупреждающее сообщение, и обсуждалось использование операторов информирования.) В документации Books Online описывается несколько подходов для обработки возникших конфликтов.


Модели репликации
Центральный издатель с распространителем
Центральный подписчик с множеством издателей
Множество издателей с множеством подписчиков
Управление репликацией

Добавить комментарий


Защитный код
Обновить

© 2018 www.serversql.ru. Все права защищены.