Тиражирование данных


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

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

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

Использование технологии тиражирования имеет следующие преимущества:

· сокращение сетевого трафика при выполнении запросов;

· повышение доступности данных (доступ к локальной копии БД обеспечивается, даже если доступ к центральному серверу невозможен);

· повышение производительности (данные приближены к месту их использования, не нужно ждать доступности всех частей распределенной БД);

· повышение автономности рабочих мест пользователей;

· повышение надежности системы (наличие множества копий повышает вероятность восстановления системы в критических ситуациях).

Дублирование данных при использовании тиражирования влечет за собой:

· дополнительный расход памяти;

· возможность возникновения конфликтов при корректировке;

· наличие временного лага между фиксацией события в БД и доступностью этой информации для всех пользователей сети;

· повышенные требования к рабочим станциям;

· необходимость тщательного продумывания схемы тиражирования.

Требования к механизму тиражирования зависят от задач, которые решает вся система. Существует много схем обновления копий в распределенной БД. По моменту внесения изменений в реплики различают:

· синхронное тиражирование;

· асинхронное тиражирование.

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

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

Асинхронное тиражирование может быть:

· периодическим;

· апериодическим.

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

Синхронное тиражирование предполагает завершение транзакции только после успешной модификации всех копий. Используется механизм двухфазной фиксации (2РС): основная система связывается с подчиненными копиями БД и одновременно вносит в них изменения, блокируя соответствующие записи. Если хотя бы одна копия недоступна, изменения не выполняются. Механизм двухфазовой фиксации предъявляет высокие требования к системе и снижает степень автономности узлов, поэтому в технологии тиражирования используется редко.

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

Типичным протоколом тиражирования по критерию полной эквивалентности копий является Read-Once/Write-All (ROWA) – одно чтение (какой-либо одной копии), запись во все физические копии. Протокол ROWA прост, но требует доступности всех копий элемента данных для завершения транзакции. Сбой на одном из узлов приведет к дублированию транзакции.

Реплики в БД с тиражированием могут быть:

· равноправными;

· неравноправными (одна из реплик считается основной).

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

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

Инициаторами обновления реплик могут быть:

· рабочие станции (обновление по запросу, выполняемое по определенному графику или вручную);

· сервер (принудительная рассылка тиража, осуществляемая в момент появления изменений или по графику).

Обновление содержания реплик может быть обеспечено также:

· копированием моментального снимка БД;

· копированием и выполнением очереди подтвержденных транзакций;

· копированием изменений из журнала БД.

Моментальный снимок БД (snapshot) отражает состояние БД или ее фрагмента на момент получения снимка. При копировании моментального снимка БД часто передаются не только данные, но и служебная информация.

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



Дата добавления: 2017-10-04; просмотров: 4579;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.