Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Репликация слиянием

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

Как правило, репликация слиянием применяется в средах «сервер-клиент». Репликация слиянием подходит для любой из следующих ситуаций:

  • несколько подписчиков могут обновлять одни и те же данные в разное время и передавать эти изменения издателю и другим подписчикам;

  • подписчикам нужно получить данные, внести изменения в автономном режиме и позднее синхронизировать изменения с издателем и другими подписчиками;

  • каждому подписчику нужна индивидуальная секция данных;

  • поскольку возможно возникновение конфликтов, необходимы средства по распознаванию и разрешению конфликтов;

  • приложению требуется конечное изменение данных, а не доступ к промежуточным состояниям данных. Например, если строка меняется пять раз на подписчике до его синхронизации с издателем, на издателе строка изменится только один раз для отображения конечного изменения данных (то есть, пятого значения).

На рис. 13.3. показаны компоненты, используемые при репликации слиянием.

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

Репликация слиянием реализуется агентом моментальных снимков SQL Server и агентом слияния. Если публикация не отфильтрована или использует статические фильтры, агент слияния создает один моментальный снимок. Если публикация использует параметризованные фильтры, то агент слияния создает моментальный снимок для каждой секции данных. Агент слияния применяет все исходные моментальные снимки на подписчиках. Он также объединяет добавочные изменения данных, которые возникли на издателе или подписчиках после создания исходного моментального снимка, выявляет и разрешает любые конфликты в соответствии с заданными вами правилами.

рис. 13.3. Компоненты, используемые при репликации слиянием.

Репликация моментальных снимков

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

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

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

  • данные изменяются редко;

  • допустимо на определённый период времени иметь копии данных, устаревших по отношению к издателю;

  • репликация небольших объёмов данных;

  • большой объём изменений производится за короткий период времени.

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

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

По умолчанию все три типа репликации для инициализации подписчиков используют моментальный снимок. Агент моментальных снимков SQL Server всегда создаёт файлы моментальных снимков, но агент, доставляющий файлы, меняется в зависимости от используемого типа репликации. Репликация моментальных снимков и репликация транзакций используют для доставки этих файлов агент распространителя, в то время как репликация слиянием использует агент слияния SQL Server. Агент моментальных снимков выполняется на распространителе. Агент распространителя и агент слияния выполняются на распространителе для принудительных подписок и на подписчиках для подписок по запросу. На рис. 13.4. показаны компоненты, используемые при репликации моментальных снимков.

рис. 13.4. Компоненты репликации моментальных снимков

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

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