Главная » Microsoft SQL Server, Базы данных » Типы репликаций

0

Существуют три основных типа репликаций:

?               репликация снимков баз данных;

?               репликация транзакций;

?               репликация слияния.

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

Репликация снимков баз данных

Этот тип репликации использует метафору снимка из области фотографии; он фиксирует некоторую “точку во времени” состояния данных и высылает ее на сервер назначения. Репликация снимков баз данных идеально подходит при выполнении следующих условий.

?               Природа данных не связана со временем и изменяется не часто.

?               В дискретные моменты времени происходят глобальные изменения в данных.

?               Объем данных не очень большой.

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

Репликация снимков баз данных позволяет реплицировать следующие объекты:

?               таблицы;

?               разделенные таблицы;

?               хранимые процедуры;

?               представления хранимых процедур;

?               индексированные представления;

?               индексированные представления в форме таблиц;

?               пользовательские типы (CLR);

?               пользовательские функции (CLR и T-SQL);

?               псевдонимы типов данных;

?               полнотекстовые индексы;

?               объекты схемы.

Вы можете также реплицировать подмножества таблиц и представлений, например подмножества столбцов или строк. Репликация снимков баз данных использует два компонента:

?               агент снимков;

?               агент распространения.

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

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

Репликация снимков баз данных с непосредственным обновлением

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

?               Увеличение времени подтверждения транзакции на стороне подписчика, так как перед этим выполняется подтверждение у издателя.

?               Если издатель переходит в автономный режим или соединение между издателем и подписчиком обрывается, то транзакция “подвешивается” у подписчика примерно на 20 секунд и только после этого откатывается. Приложение должно быть готово к правильной реакции на такое событие.

Этот вариант репликации нельзя настроить с помощью мастера — только с по- Назаметку мощью хранимой процедуры репликации.

Репликация снимков базы данных с очередью обновлений

Этот подтип репликаций использует триггеры реплицируемых таблиц подписчика для регистрации изменений в очереди. Эта очередь впоследствии читается агентом чтения очереди (queue reader agent), который применяет эти транзакции у издателя. Изменения, внесенные у издателя, остаются у него до следующего запуска агента снимков. В версии SQL Server 2000 существовала возможность использования для хранения очереди MSMQ (Microsoft Message Queue) и таблицы SQL Server. В SQL Server 2005 очереди обслуживаются исключительно сервером баз данных. Репликацию снимков баз данных с очередью обновлений нельзя назвать подходящим вариантом для топологий, имеющих больше десятка подписчиков. Этот вариант репликации также нельзя настроить с помощью мастеров — только с помощью хранимых процедур репликации.

Репликация снимков базы данных с непосредственным обновлением и очередью восстановления

Этот тип репликации позволяет переключать непосредственное обновление в использующее очередь, если сервер издателя по тем или иным причинам нужно перевести в автономный режим. Отметим, что этот вариант репликации также нельзя настроить с помощью мастера — только с помощью хранимых процедур репликации.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии