Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы АД.docx
Скачиваний:
16
Добавлен:
19.12.2018
Размер:
516.23 Кб
Скачать

21. Репликация баз данных. Планирование, реализация, мониторинг и управление репликацией. Типы репликации.(неполное)

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

Репликация транзакций обычно используется в сценариях «сервер-сервер», для которых необходима высокая пропускная способность, в том числе улучшение масштабируемости и доступности, хранение и протоколирование данных, интеграция данных с нескольких сайтов, объединение разнородных данных, автономная обработка пакетов. Репликация слиянием разработана в основном для мобильных приложений или распределенных серверных приложений, в которых возможно возникновение конфликтов данных. Обычные сценарии включают в себя обмен данными с мобильными пользователями, клиентские приложения точки продажи (POS) и интеграцию данных с нескольких сайтов. Репликация моментальных снимков используется для обеспечения начального набора данных для репликации транзакций и репликации слиянием; она также может применяться при необходимости выполнения полного обновления данных. Располагая этими тремя типами репликации, SQL Server представляет собой мощную и гибкую систему для синхронизации данных уровня предприятия.

Помимо репликации, можно синхронизировать базы данных с помощью служб Microsoft Sync Framework и Sync Services for ADO.NET. Службы Sync Services for ADO.NET предоставляют интуитивно понятный, гибкий API, который можно использовать для построения приложений, предназначенных для сценариев вне сети и совместных сценариев.

Перед настройкой репликации очень важно правильно выбрать ее тип. В SQL Server 2005 предусмотрено три главных типа: репликация моментальных снимков, репликация транзакций и репликация слиянием. У этих главных типов есть подтипы.

Репликация моментальных снимков (snapshot replication) — это тип репликации, когда информация на подписчике через определенные интервалы времени просто перезаписывается информацией с издателя. Никакого отслеживания происходящих изменений при этом не происходит. Такой тип репликации является самым простым и надежным, но не всегда эффективным. Конечно, его нельзя использовать, если в подписку попадает значительный объем данных: нагрузка на сеть будет очень большой. Этот тип репликации обычно используется в случае, когда нужно передавать небольшой объем данных, и эти данные изменяются достаточно сильно. Например, репликацию моментальных снимков можно использовать для распространения в филиалах прайс-листов или курсов валют.

Репликация транзакций (transactional replication) — это самый распространенный тип репликации. Под репликацией, в первую очередь, понимают схему работы именно этого типа репликации. При использовании репликации транзакций вначале к подписчику применяется моментальный снимок исходных данных с издателя (подписчик "инициализируется"), а потом через определенные интервалы подписчику передается и применяется информация о произошедших на издателе изменениях — транзакциях. Этот тип репликации сложнее, чем репликация моментальных снимков, но он больше подходит в ситуациях, когда набор данных в подписке достаточно большой. Как уже говорилось, этот тип репликации является наиболее распространенным и поэтому применяется во многих случаях. Вот несколько наиболее типичных примеров использования репликации транзакций:

-      для получения отчетов о произведенных операциях с филиалов. При этом у вас будет множество издателей (серверы в филиалах) и один подписчик (сервер в центральном офисе);

-      для создания запасного сервера для повышения отказоустойчивости или снятия нагрузки с основного сервера;

-      для настройки одноранговой системы репликации, когда информация в одном наборе таблиц может изменяться на любом сервере из нескольких, а затем синхронизироваться;

-      в качестве замены пакетов SSIS при сборе данных с разных серверов в базе данных на одном сервере (т. е. для организации хранилища данных).

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

Первый подтип — репликация транзакций с возможностью внесения изменений на подписчиках (transactional replication with updatable subscriptions). По умолчанию в репликации транзакций разрешается внесение изменений только на издателе, но иногда возникают ситуации, когда нужно разрешить внесение изменений и на подписчиках. Заметим, что если на подписчиках изменения нужно вносить постоянно, то, возможно, в этой ситуации лучше подойдет репликация слиянием.

При настройке репликации транзакций с возможностью внесения изменений на подписчиках вам нужно будет выбрать один из двух режимов предупреждения издателя о таких изменениях:

-      немедленное извещение об изменениях (immediate updating). При выборе этого режима должно существовать постоянно доступное сетевое соединение между издателем и подписчиком. Как только на подписчике вносятся изменения, он немедленно уведомляет о них издателя. Тот, в свою очередь, получив информацию об этих изменениях, уведомляет о них других подписчиков;

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

Еще один подтип репликации транзакций (он появился только в SQL Server 2005) — это одноранговая репликация (peer replication), в которой изменения можно вносить на любой из серверов, участвующих в репликации. Вся информация будет автоматически синхронизирована между ними.

Третий главный тип репликации — это репликация слиянием (merge replication). Это самый сложный тип репликации, и используется он очень редко. При репликации слиянием изменения можно вносить как на издателе, так и на подписчиках. Все изменения сводятся воедино на издателе, который разрешает конфликты в случае их возникновения. Для разрешения конфликтов репликации можно определить свою собственную программную логику. После этого итоговый вариант данных передается подписчикам.

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

Еще одна ситуация, для которой предназначена репликация слиянием, — репликация центральной базы данных SQL Server 2005 с базами данныхSQL Server Mobile на наладонных компьютерах (например, торговых представителей). Фактически это вариант предыдущего примера, но более приближенный к реальной жизни.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]