Відкрити головне меню

Реплікація (бази даних)

створення і подальша синхронізація копій об'єкта бази даних

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

Можливі три варіанти реплікації бази данних:

  • повністю реплікована БД: зберігає копії одного й того ж фрагмента БД на всіх вузлах мережі. В даному випадку всі фрагменти БД репліковані. Така БД може виявитися не зручною у використанні через великі витрати.
  • частково реплікована БД: зберігає копії одного й того ж фрагмента БД на декількох вузлах мережі. Більшість СКБД допускають роботу саме з частково реплікованою БД.
  • нереплікована БД: зберігає кожний фрагмент БД на окремому вузлі. В цьому випадку дубльовані фрагменти БД відсутні.

Механізми реплікаціїРедагувати

Для реалізації реплікації використовуються три сервери: видавець, дистриб’ютор і передплатник.

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

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

Передплатник - сервер, що отримує копії даних, надані видавцем. Механізми зміни даних передплатником відрізняються від механізмів зміни даних видавцем.

Відновлення даних передплатниківРедагувати

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

Реплікація за запитомРедагувати

Передплатник періодично звертається до дистриб’ютора із запитом про зміни, що відбулися з моменту останнього з’єднання. Реплікація за запитом виконується за розкладом.

Примусова реплікаціяРедагувати

Дистриб’ютор сам встановлює з’єднання з передплатником і пересилає йому необхідні дані. Примусова реплікація виконується у відповідь на подію.

Моделі реплікаціїРедагувати

Реплікація моментальних знімківРедагувати

Реплікація моментальних знімків є найпростішою моделлю реплікації. Моментальний знімок це повна копія даних, обраних для реплікації; вона розсилається передплатникам.

Реплікація транзакційРедагувати

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

Топологія реплікаційРедагувати

  • реплікація «один-до-багатьох» передбачає наявність одного видавця і кількох передплатників;
  • реплікація «багато-до-одного» має місце, коли дані від кількох видавців пересилаються одному передплатнику;
  • реплікація «багато-до-багатьох» означає, що дані від кількох видавців пересилаються кільком передплатникам.

ПеревагиРедагувати

  • доступність (у разі перебою в роботі вузла, що містить відношення Н, його доступність на інших вузлах зберігається);
  • паралелізм (виконання запитів до відношення R може бути розпаралелено за всіма репліками відношення);
  • зниження вартості передавання даних (відношення R доступне локально в усіх вузлах, де є його репліки).

НедолікиРедагувати

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