Автор работы: Пользователь скрыл имя, 10 Декабря 2013 в 20:00, реферат
Идея организации единой информационной среды крупного современного предприятия на принципах распределенной обработки данных становится все более популярной. Переход к реализации таких принципов от дорогостоящих и недостаточно гибких централизованных много пользовательских mainframe-систем, либо от мало мощных и слабо интегрированных систем на базе персональных компьютеров (что характерно для стран Восточной Европы и России в частности), происходит сейчас во всем компьютерном мире и встречается со сходными концептуальными трудностями.
Введение 3
Принцип тиражирования данных 4
Инструментарий тиражирования 7
Использование репликатора 11
Заключение 13
Список использованной литературы 14
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное
учреждение высшего
Уфимский государственный
авиационный технический
Кафедра экономической информатики
Реферат
на тему «Технологии тиражирования данных»
Студентка гр. БИ-302
Уфа 2013
Оглавление
Аннотация 3
Введение 3
Принцип тиражирования данных 4
Инструментарий тиражирования 7
Использование репликатора 11
Заключение 13
Список использованной литературы 14
Сегодня в распределенных вычислениях актуальной становится технология тиражирования данных, выступающая как альтернатива технологии распределенных баз данных. Какие идеи положены в ее основу? В чем ее преимущества? В этой статье мы попытались дать ответ на эти и другие вопросы.
Идея организации единой информационной среды крупного современного предприятия на принципах распределенной обработки данных становится все более популярной. Переход к реализации таких принципов от дорогостоящих и недостаточно гибких централизованных много пользовательских mainframe-систем, либо от мало мощных и слабо интегрированных систем на базе персональных компьютеров (что характерно для стран Восточной Европы и России в частности), происходит сейчас во всем компьютерном мире и встречается со сходными концептуальными трудностями.
Их преодолению в значительной степени могла бы помочь новая технология обработки данных, опирающаяся на принципы тиражирования данных.
Принцип тиражирования - сопоставление с физическим распределением данных.
Использование современными организациями технологии "клиент-сервер" делает актуальной проблему доступа к удаленным базам данных и комбинирование информации из двух или более физически разделенных узлов информационной системы. Ответом на требования реальной жизни стали такие возможности обработки распределенных данных, как двухфазовая фиксация транзакций.
Под распределенной поднимают базу данных, включающую в себя фрагменты локальных БД, расположенных, возможно, на различных узлах распределенной системы. Так называемая топология (и технология) STAR подразумевает физическое распределение данных с целью размещения каждого фрагмента распределенной БД там, где он преимущественно будет обрабатываться и, следовательно, уменьшения времени доступа к данным для локальных пользователей. При этом вся работа с распределенной БД происходит так, как будто это - просто локальная база данных ("распределенность базы данных не видна извне). Распределенная БД обслуживается в большинстве многопользовательских СУБД одноименным компонентом STAR - сервером распределенных баз данных.
Распределенная транзакция (транзакция распределенной БД) включает в себя несколько локальных транзакций, каждая из которых либо фиксируется, либо прерывается. Распределенная транзакция фиксируется только в том случае, когда зафиксированы все локальные транзакции, ее составляющие, Если хотя одна из них была прервана, то должна быть прервана и распределенная транзакция. Как на практике учесть это требование?
Для этого в современных СУБД предусмотрен так называемый протокол двухфазовой фиксации транзакций (two-phase commit protocol - 2PC). Название отражает то, что фиксация распределенной транзакции выполняется в две фазы.
Первая фаза начинается, когда клиент выполняет оператор COMMIT. Сервер распределенной БД направляет уведомление PREPARE TO COMMIT - "подготовиться к фиксации" всем серверам локальных БД, выполняющим транзакцию. Последние после подготовки к фиксации остаются в состоянии готовности и ожидают от сервера распределенной БД команды фиксации. Если хотя бы одни из серверов не откликнулся на уведомление в силу каких-либо причин, будь то аппаратная или программная ошибка, то сервер распределенной БД открывает локальные транзакции на всех узлах, включая даже те, на которых серверы подготовились к фиксации и оповестили его об этом.
Выполнение второй фазы заключается
в том, что сервер распределенной
БД направляет команду COMMIT серверам на
всех узлах, затронутых транзакцией. Выполняя
команду, последние фиксируют изменения,
достигнутые в процессе выполнения
распределенной транзакции. В результате
гарантируется одновременное
Основной недостаток технологии
физического распределения
Совершенно иная ситуация
складывается в том случае, когда
база данных распределена по нескольким
территориально удаленным узлам, объединенными
медлительными и ненадежными
каналами связи, а число одновременно
работающих в распределенной среде
пользователей составляет десятки.
В этом случае вероятность того,
что распределенная транзакция будет
зафиксирована в обозримом
Ни для кого не секрет,
что именно с такой ситуацией
сталкивается большинство отечественных
организаций. Несмотря на то, что несколько
последних лет положение с
каналами оперативной связи несколько
улучшилось, изменения происходят отнюдь
не так быстро, как этого бы хотелось.
Указанные ограничения
На наш взгляд, в этом
качестве можно рассматривать технологию
Тиражирование данных - это асинхронный перенос изменений
объектов исходной базы данных (source database)
в базы данных, принадлежащие к различным
узлам распределенной системы. Функции
тиражирования данных возложены на специальный
компонент СУБД - сервер тиражирования
данных, называемый репликатором (
Сигналом для запуска репликатора служит срабатывание правила (rule), перехватывающего любые изменения тиражируемого объекта БД, а для обеспечения надежности передачи репликатор использует протокол двухфазовой фиксации транзакции.
передача только операций, изменяющих данные, а не всех операций доступа к удаленным данным (как в технологии STAR), и к тому же в асинхронном режиме позволяет значительно уменьшить сетевой трафик, что особенно важно при низком быстродействии каналов связи. Не менее важно то, что со стороны исходной базы данных репликатор выступает как процесс, инициированный одним пользователем, в то время как в физически распределенной среде с каждым локальным сервером баз данных работают все пользователи распределенной системы, конкурирующие за ресурсы друг с другом, что отнюдь не уменьшает времени реакции системы.
Тиражирование данных полностью прозрачно для прикладной программы. Точно так же, как и в технологии STAR, она ничего не знает и репликаторе, который находится целиком в ведении администратора БД. Для переноса программы в распределенную системы с тиражируемыми данными не требуется ее модификации. Возможно и программное управление репликатором через механизм сигнализаторов о событиях в базе данных.
Как определить элементарное
изменение - базис для тиражирования?
Очевидно, что им не может быть элементарная
операция с базой данных, поскольку
прерывание тиражирования в середине
транзакции (например, в результате
сбоя в канале связи) нарушит целостность
транзакции и вызовет несогласованность
в принимающей базе данных. Следовательно,
изменение в исходной БД может
быть тиражировано только после фиксации
транзакции. В то же время возможен
перенос изменений группами транзакций,
периодически или в некоторый
момент времени, что дает возможность
наблюдать и исследовать
Нарушит ли передачу изменений продолжительный сбой связи? Нет, не нарушит. В силу того, что тиражирование является асинхронным процессом, предусмотрена буферизация потока изменений (транзакций) и, после восстановления связи, возобновление передачи с той транзакции, на которой тиражирование было прервано.
Как быть, если вследствие все той же асинхронности два пользователя на разных узлах исправят одну и ту же запись в том момент, пока данные из первой БД еще не успели реплицироваться во вторую? За все преимущества тиражирования необходимо платить и только применение протокола двухфазовой фиксации каждым клиентом гарантирует одновременное завершение транзакции на всех узлах. В данной ситуации репликатор обязательно обнаружит противоречие - конфликт между двумя версиями одной и той же записи. Предварительно он должен быть запрограммирован на какой-либо вариант ее разрешения, но, безусловно, непредвиденных конфликтов следует избегать, причем делать это можно различными способами.
Один из них состоит в том, что для каждого узла (базы данных) должны быть определены некие уникальные функции, исключающие коллизии. Другой предполагает правильный реляционный дизайн, в частности, отказ от тиражирования вычисляемых данных в пользу первичных. Например, в банковских приложениях верным решением была бы репликация проводок, а не остатков на счетах. Можно попытаться перенести центр тяжести с операций обновления данных (update) на операции удаления (delete) или вставки (insert) записей в тиражируемом наборе. Интересны также сочетания репликатора и прямого применения двухфазовой фиксации распределенных транзакций в топологии STAR, реализующие необходимые блокировки.
Так или иначе, жизненность
концепции тиражирования
На практике установка тиражируемой системы сводится к чисто административным действиям, для выполнения которых необходимо получить ответы на четыре вопроса: Что тиражировать? Где тиражировать? Когда тиражировать? Как разрешать предполагаемые конфликты? Напомним, прикладной программе не обязательно знать детали организации данных в системе - ведь они со временем могут измениться! Рассмотрим ответы, которые дает репликатор на эти вопросы.
Что тиражировать?
Как и любая другая методология,
тиражирование имеет
CDDS может быть представлен следующими конфигурациями данных:
Строгое определение CDDS заключается в выполнении следующих условий:
Идентичность здесь понимается как одинаковость определения и состава данных. При установке тиражируемой системы идентичность состава данных может обеспечиваться средствами репликатора.
В результате, согласованность CDDS автоматически поддерживается репликатором и проявляется в том, что:
Принципиально то, что ни
один узел - хранитель своей части
CDDS - ничем не отличается от других,
если не оговорено обратное. Все
узлы равноправны и могут быть
источниками и приемниками
Где тиражировать?
Следующий основополагающий элемент схемы тиражирования - это путь переноса изменений (data propagation path - DPP) из каждой тиражируемой базы данных в другие БД. Гибкость тиражирования в значительной степени обеспечивается богатством выбора способа передачи данных между узлами распределенной системы.
Практика эксплуатации распределенных систем подсказала следующие схемы тиражирования данных, реализуемые репликатором: