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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

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

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

Механізми реплікації

[ред. | ред. код]

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

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

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

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

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

[ред. | ред. код]

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

Реплікація за запитом

[ред. | ред. код]

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

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

[ред. | ред. код]

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

Моделі реплікації

[ред. | ред. код]

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

[ред. | ред. код]

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

Реплікація транзакцій

[ред. | ред. код]

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

Топологія реплікацій

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

Переваги

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

Недоліки

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