Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сивак / R_4.doc
Скачиваний:
8
Добавлен:
19.04.2015
Размер:
220.16 Кб
Скачать

Глава 4. Тиражування даних у корпоративних інформаційних системах

4.1. Поняття технології тиражування даних

На сучасному етапі розвитку комп’ютерних технологій ідея організації єдиного інформаційного середовища корпорації чи великого підприємництва на принципах розподіленого оброблення даних стає дедалі популярнішою. Перехід до таких принципів нині здійснюється в усьому комп’ютерному світі, який водночас передбачає заміну дорогих і недостатньо гнучких централізованих систем на базі великих ЕОМ (mainfrane), або малопотужних і слабко інтегрованих систем на базі персональних комп’ютерів, і пов’язаний з розв’язанням низки концептуальних проблем, а саме організації узгодження даних, розміщених на різних фізично розподілених вузлах.

Зауважимо, що використання сучасними корпораціями технології «клієнт-сервер» робить актуальною проблему доступу до віддалених баз даних і комбінування інформації з двох або більше фізично розподілених вузлів інформаційної системи. Нагадаємо, що під розподіленою розуміють базу даних, яка включає в себе фрагменти локальних БД, розміщених на різних вузлах розподіленої системи. Вона передбачає фізичний розподіл даних з метою розміщення кожного фрагмента розподіленої бази даних на тому місці, де він переважно буде оброблятися, а отже — зменшення часу доступу до даних для локальних клієнтів. При цьому вся робота з розподіленою БД проходить так, немов це просто локальна БД, її розподіленості користувач не помічає.

Розподілені БД обслуговуються в більшості багатокористувацьких СУБД сервером розподілених баз даних (STAR).

Оброблення розподілених даних здійснюється за допомогою механізму двофазової фіксації транзакції.

Транзакція розподіленої БД включає в себе декілька локальних транзакцій, кожна з яких або фіксується, або переривається. Розподілена трансакція фіксується в тому разі, коли зафіксовані всі локальні транзакції, що є її складовими. Якщо хоч одну з них було перервано, то має бути перервано й розподілену транзакцію.

Для того щоб урахувати ці вимоги в сучасних СУБД, передбачено так званий протокол дворазової фіксації транзакції (two — phase commit protocol — 2PC).

Перша фаза починається, коли клієнт виконує оператор фіксації (СОММІТ). Сервер розподіленої БД посилає повідомлення «підготуватися до фіксації» (PREPARE TO COMMIT) усім серверам локальних БД, які виконують транзакцію. Після підготовки до фіксації вони залишаються в стані готовності й очікують від сервера розподіленої БД команди фіксації. Якщо хоча б один сервер локальної БД не відгукнувся на повідомлення через різні причини (апаратна чи програмна помилка), то сервер розподіленої БД відкриває локальні транзакції на всіх вузлах, включаючи й ті, які підготувалися до фіксації та сповістили його про це.

Виконання другої фази розпочинається з того, що сервер розподіленої БД посилає команду СОММІТ серверам на всіх вузлах, що виконують транзакцію. Виконуючи команду, вони фіксують зміни, досягнуті в процесі виконання розподіленої трансакції. Це гарантує одночасне синхронне завершення (вдале чи невдале) розподіленої транзакції на всіх вузлах, що беруть у ній участь.

Основною вадою технології фізичного розподілення даних є жорсткі вимоги до швидкості та надійності каналів зв’язку. Незважаючи на те, що в останні роки становище з каналами оперативного зв’язку дещо поліпшилось, вони не задовольняють потреб корпоративних систем, розподілених на значній території. У технології STAR серйозних проблем з фіксацією розподілених трансакцій не виникає, якщо розподілена транзакція зачіпає два-три вузли мережі з локальними БД.

Зовсім інша ситуація виникає, коли база даних розподілена на десятках територіально віддалених вузлів, а кількість клієнтів, які одночасно працюють у розподіленому середовищі, сягає кількох десятків. У цьому разі ймовірність того, що розподілена трансакція буде зафіксована в прийнятому часовому інтервалі, стає дуже малою. Час реакції системи може виявитись неприпустимо великим навіть у разі простого читання даних. Захоплення всіх необхідних даних на всіх серверах може надовго заблокувати доступи до них. Крім того, використання у структурі мережі координуючого вузла пов’язане з додатковою небезпекою, оскільки вихід його з ладу призведе до блокування даних, зачеплених транзакцією, допоки його не буде відновлено. За таких умов оброблення розподілених даних практично неможливе, що й відбувається в багатьох випадках на практиці.

Подолати ці труднощі значною мірою допомагає нова технологія оброблення даних, яка спирається на принцип тиражування даних. Її принципова відмінність від технології STAR — це відмова від ведення розподілених даних у загальноприйнятому розумінні. Ідея полягає в тому, що кожна база даних (як для СУБД, так і для багатьох клієнтів, що з нею працюють) завжди є локальною. Локально розміщуються дані, необхідні в певному вузлі розподіленої системи, локально завершуються всі трансакції, які не потребують складних механізмів і перевірок протоколу 2 PС. Ця ідея знайшла своє втілення в сучасних версіях реляційних СУБД таких провідних розробників, як INGRES, Subase, Informix, Oracle. У них передбачено можливість тиражування всіх змін у кількох БД.

Під тиражуванням даних слід розуміти процес формування відтворення численних копій даних на одному або кількох вузлах мережі. Тиражування можна визначити як альтернативу мережевій версії оброблення даних (технології розподілених баз даних), призначену для узгодженості роботи клієнтів, розміщених на значних відстанях один від одного.

Функції тиражування даних покладено на спеціальний компонент СУБД — сервер тиражування даних, який називають реплікатором (replicator). Його завданням є забезпечення ідентичності даних у базах даних, що приймають (target clatabase), даним у вихідній (початковій) БД.

Після роботи клієнтів окремо один від одного спеціальна програма (сервер реплікації) виконує суміщення результатів їхньої роботи на загальних базах даних.

У загальному вигляді процес тиражування виглядає так:

  1. Ідентичні копії баз даних розподіляються між клієнтами, які працюють з базами.

  2. Кожен клієнт працює зі своєю копією баз, вносячи до неї зміни й доповнення.

  3. Наприкінці сеансу роботи на робочому місці клієнта формується його файл тиражування, який містить зміни, що їх вніс до баз даних цей клієнт.

  4. На сервері реплікацій виконується злиття цих файлів і усунення можливих конфліктів.

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

  6. Файл тиражування сервера розсилається всім клієнтам. Кожен клієнт зупиняє свої дії до початку поточного сеансу й обробляє спеціальною процедурою файл тиражування сервера.

  7. Наступний сеанс роботи починається з кроку 2.

Застосування технології тиражування даних надає можливість корпоративним користувачам мати доступ до необхідної їм поточної інформації з будь-якого автоматизованого робочого місця та в будь-який час. Крім того, ця технологія надає користувачу низку переваг:

  • підвищення працездатності системи у разі перевантаженості центральних ресурсів;

  • підвищення ступеня готовності даних, а відтак і оперативності в оброблення інформації;

  • зниження навантаження на центральний вузол;

  • передача лише операцій, що змінюють дані, а не всіх операцій доступу до віддалених даних (як у технології STAR), дає змогу значно зменшити мережевий трафік, що дуже важливо в разі низької швидкодії каналів зв’язку;

  • значно зменшується час реакції системи. У цій технології зі сторони вихідної бази даних реплікатор є процесом, ініційованим одним користувачем, у той час як у фізично розподіленому середовищі з кожним локальним сервером баз даних працюють всі користувачі розподіленої системи, конкуруючи за ресурси один з одним, що не зменшує часу реакції системи;

  • тиражування даних цілком прозоре для прикладної програми.

Виокремлюють два типи тиражування даних — синхронне та асинхронне.

У разі синхронного тиражування дані, що тиражуються, оновлюються одночасно зі змінами вихідних (початкових) даних. Під час синхронного тиражування синхронізованість даних захи-щається двохфазним протоколом фіксації. Після того, як сервер здійснить оновлення даних, він відсилає підтвердження до вхідної бази даних та очікує команди про завершення трансакції.

Незважаючи на те, що синхронне тиражування є досить ефективним методом для прикладних систем, що потребують синхронізації, воно має й вади: синхронізація досягається за рахунок втрати «готовності» даних (на період тиражування користувач не має доступу до даних) та зниження продуктивності системи.

Асинхронне тиражування — це метод, за якого цільова база даних модифікується не одночасно з вихідною базою, а з деякою затримкою. Затримка в оновленні даних на локальних вузлах може бути в діапазоні від кількох секунд до кількох годин залежно від конфігурації мережі. Але в результаті дані будуть синхронізовані на всіх вузлах мережі.

Суть механізму асинхронного тиражування даних полягає в тому, що оброблення даних виконується локально, а розподілені дані копіюються на той сервер, де вони мають використовуватися. За такого методу підтримки логічної цілісності розподіленої бази даних має місце деяка розсинхронізація стану локальних баз даних у часі, тобто зміна стану однієї локальної бази даних відстає від зміни другої локальної бази в часі. При цьому асинхронне тиражування дозволяє локальне оброблення запитів у разі відсутності доступу до вузла. Якщо один із серверів системи, що потребує оновлення даних, виходить із ладу, то система продовжує працювати з іншими, при цьому оновлення даних на сервері після його ремонту здійсниться автоматично, тобто помилка на одному вузлі глобальної мережі не вплине на роботу решти вузлів.

Отже, синхронне тиражування гарантує узгодження даних за рахунок зниження «готовності» системи, а асинхронне тиражування дає змогу максимально збільшити «готовність» даних, але потребує ретельної розробки методів узгодженості даних і розв’язання конфліктних ситуацій, що виникають під час оновлення даних.

У разі асинхронного тиражування необхідно розв’язати питання належності даних.

Належність даних — це поняття, що визначає, за яким вузлом мережі закріплені конкретні дані, які він має можливість оновлювати. За допомогою належності даних у разі потреби визначаються та розв’язуються конфліктні ситуації, що виникають під час оновлення даних.

Соседние файлы в папке Сивак