Реплікація (бази даних)
Ця стаття не містить посилань на джерела. (квітень 2019) |
Реплікація (бази даних) — це механізм розподілу даних за вузлами, що дозволяє зберігати копії тих самих даних на різних вузлах мережі з метою прискорення пошуку і підвищення стійкості до відмов. Відношення чи фрагмент є реплікованим, якщо його копії зберігаються на двох або більше вузлах (копії ще називають репліками).
Можливі три варіанти реплікації бази даних:
- повністю реплікована БД: зберігає копії одного й того ж фрагмента БД на всіх вузлах мережі. В даному випадку всі фрагменти БД репліковані. Така БД може виявитися не зручною у використанні через великі витрати.
- частково реплікована БД: зберігає копії одного й того ж фрагмента БД на декількох вузлах мережі. Більшість СКБД допускають роботу саме з частково реплікованою БД.
- нереплікована БД: зберігає кожний фрагмент БД на окремому вузлі. В цьому випадку дубльовані фрагменти БД відсутні.
Для реалізації реплікації використовуються три сервери: видавець, дистриб’ютор і передплатник.
Видавець — сервер, що надає розміщені на ньому дані для копіювання на інші сервери. Окрім створення копії даних, видавець відстежує внесені до його бази даних зміни і готує нову копію.
Дистриб’ютор (посередник) — сервер, що підтримує розподілену базу даних. Він виконує роль посередника, копіює всі публікації, підготовлені видавцем, і пересилає їх передплатникам. Дистриб’ютором може бути виділений сервер або сервер, сконфігурований як видавець чи передплатник. Конкретні функції, що їх виконує дистриб’ютор, залежать від методів реплікації.
Передплатник — сервер, що отримує копії даних, надані видавцем. Механізми зміни даних передплатником відрізняються від механізмів зміни даних видавцем.
Залежно від методу реплікації, передплатники можуть чи не можуть вносити зміни в репліковані дані. У найпростішому випадку змінювати дані може тільки видавець, у складніших моделях реплікації - передплатники і видавці. Змінені дані, отримані від усіх передплатників, синхронізуються і поєднуються з даними видавця, а потім розсилаються передплатникам.
Передплатник періодично звертається до дистриб’ютора із запитом про зміни, що відбулися з моменту останнього з’єднання. Реплікація за запитом виконується за розкладом.
Дистриб’ютор сам встановлює з’єднання з передплатником і пересилає йому необхідні дані. Примусова реплікація виконується у відповідь на подію.
Реплікація моментальних знімків є найпростішою моделлю реплікації. Моментальний знімок це повна копія даних, обраних для реплікації; вона розсилається передплатникам.
Під час реплікації транзакцій використовується журнал транзакцій бази даних. Обрані транзакції копіюються в базу даних дистриб’ютора зі збереженням інформації про послідовність їхнього виконання, потім розсилаються серверам- передплатникам і виконуються на них у тому ж порядку, в якому виконувалися на сервері-видавці. Цей механізм зменшує завантаження мережі, його рекомендується використовувати у великих базах даних з невеликою кількістю змін.
- реплікація «один-до-багатьох» передбачає наявність одного видавця і кількох передплатників;
- реплікація «багато-до-одного» має місце, коли дані від кількох видавців пересилаються одному передплатнику;
- реплікація «багато-до-багатьох» означає, що дані від кількох видавців пересилаються кільком передплатникам.
- доступність (у разі перебою в роботі вузла, що містить відношення Н, його доступність на інших вузлах зберігається);
- паралелізм (виконання запитів до відношення R може бути розпаралелено за всіма репліками відношення);
- зниження вартості передавання даних (відношення R доступне локально в усіх вузлах, де є його репліки).
- підвищується вартість зберігання, створення і відновлення даних; підвищуються вимоги до ресурсів;
- ускладнюється підтримання цілісності даних, наприклад одночасне відновлення різних реплік одного й того ж відношення