|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
12.4. Типы репликацииТипы репликации SQL Server 2005, репликация моментальных снимков (snapshot replication), репликация транзакций (transactional replication), одноранговая репликация (peer replication), репликация слиянием (merge replication) Перед настройкой репликации очень важно правильно выбрать ее тип. В SQL Server 2005 предусмотрено три главных типа: репликация моментальных снимков, репликация транзакций и репликация слиянием. У этих главных типов есть подтипы. Репликация моментальных снимков (snapshot replication) — это тип репликации, когда информация на подписчике через определенные интервалы времени просто перезаписывается информацией с издателя. Никакого отслеживания происходящих изменений при этом не происходит. Такой тип репликации является самым простым и надежным, но не всегда эффективным. Конечно, его нельзя использовать, если в подписку попадает значительный объем данных: нагрузка на сеть будет очень большой. Этот тип репликации обычно используется в случае, когда нужно передавать небольшой объем данных, и эти данные изменяются достаточно сильно. Например, репликацию моментальных снимков можно использовать для распространения в филиалах прайс-листов или курсов валют. Репликация транзакций (transactional replication) — это самый распространенный тип репликации. Под репликацией, в первую очередь, понимают схему работы именно этого типа репликации. При использовании репликации транзакций вначале к подписчику применяется моментальный снимок исходных данных с издателя (подписчик "инициализируется"), а потом через определенные интервалы подписчику передается и применяется информация о произошедших на издателе изменениях — транзакциях. Этот тип репликации сложнее, чем репликация моментальных снимков, но он больше подходит в ситуациях, когда набор данных в подписке достаточно большой. Как уже говорилось, этот тип репликации является наиболее распространенным и поэтому применяется во многих случаях. Вот несколько наиболее типичных примеров использования репликации транзакций: q для получения отчетов о произведенных операциях с филиалов. При этом у вас будет множество издателей (серверы в филиалах) и один подписчик (сервер в центральном офисе); q для создания запасного сервера для повышения отказоустойчивости или снятия нагрузки с основного сервера; q для настройки одноранговой системы репликации, когда информация в одном наборе таблиц может изменяться на любом сервере из нескольких, а затем синхронизироваться; q в качестве замены пакетов SSIS при сборе данных с разных серверов в базе данных на одном сервере (т. е. для организации хранилища данных). Для репликации транзакций предусмотрены специальные подтипы, которые позволяют настроить режимы репликации, отличные от стандартного. Первый подтип — репликация транзакций с возможностью внесения изменений на подписчиках (transactional replication with updatable subscriptions). По умолчанию в репликации транзакций разрешается внесение изменений только на издателе, но иногда возникают ситуации, когда нужно разрешить внесение изменений и на подписчиках. Заметим, что если на подписчиках изменения нужно вносить постоянно, то, возможно, в этой ситуации лучше подойдет репликация слиянием. При настройке репликации транзакций с возможностью внесения изменений на подписчиках вам нужно будет выбрать один из двух режимов предупреждения издателя о таких изменениях: q немедленное извещение об изменениях (immediate updating). При выборе этого режима должно существовать постоянно доступное сетевое соединение между издателем и подписчиком. Как только на подписчике вносятся изменения, он немедленно уведомляет о них издателя. Тот, в свою очередь, получив информацию об этих изменениях, уведомляет о них других подписчиков; q извещение об изменениях с использованием очередей (queued updating). Постоянно доступное сетевое соединение при этом не нужно. Информация о внесенных на подписчиках изменениях помещается в очередь и по определенному расписанию передается издателю, который уведомляет о них остальных подписчиков. Еще один подтип репликации транзакций (он появился только в SQL Server 2005) — это одноранговая репликация (peer replication), в которой изменения можно вносить на любой из серверов, участвующих в репликации. Вся информация будет автоматически синхронизирована между ними. Третий главный тип репликации — это репликация слиянием (merge replication). Это самый сложный тип репликации, и используется он очень редко. При репликации слиянием изменения можно вносить как на издателе, так и на подписчиках. Все изменения сводятся воедино на издателе, который разрешает конфликты в случае их возникновения. Для разрешения конфликтов репликации можно определить свою собственную программную логику. После этого итоговый вариант данных передается подписчикам. В качестве классического примера такой репликации приводится несколько равноправных магазинов, которые имеют право работать с общим складом. Изменять информацию (забирать товар со склада) имеет право каждый магазин, и каждый магазин должен получить после этого итоговую информацию о состоянии склада. Но, конечно, это скорее теоретический пример. В большинстве реальных ситуаций во избежание конфликтов эта задача будет решаться по-другому. Еще одна ситуация, для которой предназначена репликация слиянием, — репликация центральной базы данных SQL Server 2005 с базами данных SQL Server Mobile на наладонных компьютерах (например, торговых представителей). Фактически это вариант предыдущего примера, но более приближенный к реальной жизни. Обратите внимание, что репликацию слиянием имеет смысл использовать лишь тогда, когда итоговая информация нужна не только в центральной базе данных, но и во всех других подразделениях. Если вам нужно просто собрать информацию с филиалов, то правильнее будет использовать репликацию транзакций с одним подписчиком и множеством издателей.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||