Діго С.М. Бази даних: проектування та використання - файл n1.doc
-
Дивіться також:
- Діго С.М. Бази даних: Введення у бази даних. Методологія проектування (Документ)
- Конноллі Т., Бегг К., Страчан А. Бази даних: Проектування, Реалізація та супровід. Теорія та практика (Документ)
- Степура Л.В., Шібут М.С. Бази даних Access: основні прийоми роботи з базами даних (Документ)
- Бураков П.В., Петров В.Ю. Введення до систем баз даних (Документ)
- Презентація - Реляційна база даних (Реферат)
- ERWin 4.1.4 (Документ)
- Федоров Олексій, Єлманова Наталія. Введення до баз даних (Документ)
- Бабушкіна Є.А., Бірюкова О.Ю., Верещагіна Л.С. Бази даних. Конспект лекцій (Документ)
- Карпова Т.С. Бази даних: моделі, розробка, реалізація (Документ)
- Кирилов В.В. Основи проектування реляційних баз даних
- Курсова робота - Розробка та аналіз інформації бази даних Діагностичний центр (Курсова)
- Курсова робота - Бази даних у СУБД MS Access (Курсова)
10.5.3. Види тиражування
Існують різні види тиражування. Вони різняться ступенем транзакційної цілісності і ступенем автономності вузлів (що, зазвичай, перебуває у зворотній залежності друг від друга). Вимоги до механізму тиражування залежить від завдань, які вирішує вся обчислювальна система загалом.
Основні проблеми, що виникають у системах із тиражуванням, пов'язані з підтримкою узгодженості стану всіх копій. Існує безліч схем проведення оновлення копій у РБД.
По моменту внесення змін до реплік розрізняють синхронне та асинхронне тиражування.
Асинхронне тиражування(зване також тиражуванням з проміжним зберіганням) реалізує схему, за якої оновлення всіх копій баз даних можепроводитись неодночасно. За такого методу підтримки логічної цілісності розподіленої бази даних має місце деяка розсинхронізація стану локальних баз даних у часі, тобто. Зміна стану однієї локальної бази даних відстає від зміни іншої локальної бази даних за часом.
Асинхронність обміну даними в ряді випадків цілком допустима, і при цьому вдається обійти, зокрема, проблему обмеженої пропускної здатності та недостатньої надійності мережі. Якщо один сервер системи, що вимагає оновлення даних, що тиражуються, виходить з ладу, то система продовжує працювати з іншими, при цьому оновлення даних на збійному сервері після відновлення його працездатності відбудеться автоматично, тобто. помилка однією вузлі глобальної мережі не вплине працювати інших вузлів.
Асинхронне тиражування може бути періодичним або аперіодичним.Періодичне тиражуваннявиконується через задані інтервали часу. Час виконання чергових циклів тиражування вибирається виходячи з частоти виникнення змін та їх інтенсивності, обмеження на допустимий час рає-синхронізації станів джерела та приймача, обсягу даних, що передаються в одиничному циклі тиражування, та максимально допустимого завантаження комунікаційних ресурсів та деяких інших факторів.
Момент виконання аперіодичного тиражування визначається зазвичай якоюсь подією (такий механізм називається також тиражуванням за подіями) і може бути реалізований, наприклад, через механізм процедур або тригерів.
У разісинхронного тиражуванняпередбачається завершення транзакції лише після успішної модифікації всіх копій. Синхронне тиражування використовує механізм двофазної фіксації (2РС) - Two-PhaseCommit: основна система зв'язується з підлеглими копіями баз даних і одночасно вносить зміни, блокуючи відповідні записи. Якщо хоч одна з таких копій недоступна, зміни не виконуються. Оскільки механізм двофазної фіксації висуває високі вимоги до системи та знижує ступінь автономності вузлів, то він у технології тиражування використовується не часто.
Щоб якось компенсувати недоліки синхронного тиражування, використовуютьтиражування в часі, близькому до реального, яке полягає в тому, що відразу після завершення транзакції на основному вузлі зміни автоматично передаються копіям, що тиражуються. Але при даному виді тиражування у разі недоступності одного з вузлів зміни зберігаються до відновлення зв'язку з отримувачем. Така схема створює менше завантаження мережі та підходить для програм, які не потребують суворої синхронності копій даних.
Найбільш жорстким критерієм узгодженості є критерійповної еквівалентності копій, який вимагає, щоб після завершення транзакції всі копії логічного елемента даних були ідентичні. Така технологія синхронізації не дозволяє досягти однієї з основних цілей застосування технології тиражування - підвищення продуктивності за рахунок забезпечення більшої автономності окремих частин системи - тому використовується в системах з тиражуванням рідко.
Типовий протокол тиражування, що забезпечує серіалізацію за критерієм повної еквівалентності копій, відомий під назвою Read-Once/Write-All (ROWA) - одне читання, запис у всі копії. Операція читання в цьому протоколі зводиться до читання однієї будь-якої копії (питання про те, з якої саме копії виконуватиметься читання, може вирішуватися з міркувань ефективності). Кожна операціязапис у логічний елемент даних відображається на безліч операцій запису у фізичні копії цих елементів.
Протокол ROWA простий, але вимагає доступності всіх копій елемента даних, щоб транзакція була завершена. Збій на одному з вузлів призведе до дублювання транзакції, що знижує доступність даних.
Було запропоновано кілька альтернативних алгоритмів, які пом'якшують вимоги ROWA щодо одночасності внесення зміни до всіх копій.
Репліки в РБД з тиражуванням можуть бутирівноправнимитанерівноправними. Найчастіше вони є нерівноправними. І тут одна з реплік вважається основний. Навіть за наявності нерівноправних реплік можливі ситуації, за яких коригувати дозволяється будь-яку репліку, але часто зміни дозволено вносити тільки в основну репліку, а інші репліки доступні користувачам лише за читанням. Така схема тиражування називається тиражуванням з основного вузла (primary site). При цьому дані асинхронно копіюються з основної в інші репліки.
Оскільки за такої схеми тиражування пред'являються підвищені вимоги до збереження основного репліки і надійності функціонування основного вузла, то іноді вищеописану модель доповнюють гарячим резервуванням ( failover) основного вузла. В цьому випадку основний вузол тиражує зміни як на підлеглі вузли, так і на вузол із резервною копією. Якщо основний вузол виходить з ладу, то власником даних стає резервний, який відтоді виконує його функції.
Однією з технологій, які можуть використовуватися, якщо зміни вносяться в локальні репліки, є тиражування злиттям (merge replication). Суть методу полягає в тому, що операції виконуються на віддаленомукомп'ютер, який може бути повністю відключений від комп'ютерної мережі. Автономна СУБД записує всі операції з даними та їхню черговість. Потім у певний момент автономний комп'ютер зв'язується з видавцем (сервером, на якому коригується БД, що підлягає подальшому тиражуванню) і погоджує свої дані, пересилаючи видавцеві послідовність операцій, проведених у віддаленій базі даних. У разі конфліктів вони вирішуються з допомогою різних алгоритмів.
У деяких системах функції формування «еталонної» бази та розсилки реплік кінцевим користувачам (передплатникам) розподілені між різними вузлами системи. У цьому випадку після злиття видавець передає зміни на сервер-дистриб'ютор для подальшого поширення передплатників.
Тиражування злиттям забезпечує максимальну автономність віддаленої бази даних.
При використанні цього методу можуть виникнути колізії, які необхідно собі добре уявляти і запобігати їх різноманітними засобами, як технічними, так і організаційними.
Крім того, існують так звані потокові моделі тиражування (workflow). У цій моделі власник даних змінюється динамічно: дані можуть оновлюватися на різних вузлах, але у будь-який момент часу такі повноваження мають тільки один з них. Вузли послідовно оновлюють дані і тиражують зміни на всю систему.
Деякі системи дозволяють будь-яким вузлам з копіями, що тиражуються одночасно оновлювати їх. Така модель називається моделлю здовільним оновленням даних. У цьому випадку можливе виникнення конфліктів між окремими репліками, і потрібен розвинений механізм виявлення та вирішення цих конфліктів, що запобігає втраті.цілісності даних. При цьому можуть використовуватися різноманітні алгоритми вирішення колізій, що виникають. У деяких системах реалізований якийсь із можливих алгоритмів, за іншими - є можливість вибору з кількох варіантів.
Ще одним критерієм класифікації механізмів тиражування є ознака того, хто є ініціатором оновлення реплік. Внесення змін до реплік може ініціюватися робочими станціями. Такий процес оновлення називаєтьсяоновленням на запит. Оновлення може виконуватися якза певним графіком, так івручну.
Негайне тиражування (назване такожтиражуванням за подіями) означає, що відразу після завершення транзакції на основному вузлі зміни автоматично передаються копіям, що тиражуються.
Метод, при якому зчитування даних проводиться віддаленими вузлами з основних, називається витягуванням змін, а метод, що полягає у вивантаженні даних на вузли з копіями, - виштовхуванням змін.
У процесі тиражування транзакцій (transactional replication) від видавця до передплатників передаються не дані, а операції над ними. Саме оновлення відбувається на робочій станції. Передачу транзакцій можна використовувати лише в тому випадку, коли в автономній базі даних зберігається копія основної БД. При використанні цієї схеми періодично необхідно виконувати повну синхронізацію даних, яка виконується за методом тиражування моментального знімка даних. Тиражування транзакцій найкраще використовувати, коли обсяг бази даних великий, а операцій із них виконується небагато.
У БНД взагалі, а розподілених - особливо однією з найважливіших завдань є забезпечення цілісності баз даних, зокрема відновлення баз післяїх руйнування. Для цих цілей використовуютьсяжурнали змін баз даних- протокол, в якому реєструються в хронологічному порядку вихідні та оновлені стани всіх записів бази даних, модифікованих у процесі виконання транзакцій. Ведення журналу забезпечується багатьма СУБД та застосовується при процедурах відновлення.
У разіоновлення на передплатнику(immediate updating subscribers) тиражування ініціюється видавцем. Як тільки видавець підтверджує транзакцію, він повідомляє дистриб'ютора про те, що дані змінені. Дистриб'ютор забирає підтверджену транзакцію та розсилає її передплатникам. Якщо під час завершення транзакції зв'язок між дистриб'ютором та видавцем був перерваний, то транзакція записується в чергу і буде передана дистриб'ютору, як тільки зв'язок відновиться. Подальше поширення даних виконує дистриб'ютор або примусово, або на запит. Транзакції проводять лише через видавця.