Какие существуют виды репликации для таблиц в базах данных?
AI答案
sobes.tech AI
Репликация данных — это процесс копирования данных из одной базы данных (мастер) в другие базы данных (реплики). Основные виды:
-
Синхронная репликация: Транзакция считается завершенной только после того, как она подтверждена как на мастере, так и на реплике. Обеспечивает высокую согласованность данных, но может замедлить выполнение транзакций из-за ожидания подтверждения от реплики.
-
Асинхронная репликация: Транзакция считается завершенной сразу после ее выполнения на мастере. Данные копируются на реплику с некоторой задержкой. Обеспечивает более высокую производительность записи на мастер, но может возникнуть расхождение между мастером и репликой в случае сбоя мастера до того, как изменения будут скопированы.
-
Полусинхронная (или Quorum) репликация: Компромисс между синхронной и асинхронной. Транзакция считается завершенной после того, как она подтверждена мастером и по крайней мере одной (или определенным количеством) репликой. Снижает задержку по сравнению с синхронной и уменьшает риск потери данных по сравнению с асинхронной.
-
Логическая репликация: Реплицируются только изменения на логическом уровне (например, INSERT, UPDATE, DELETE). Позволяет гибко выбирать, какие данные и таблицы реплицировать, а также реплицировать между разными версиями или даже разными СУБД.
-
Физическая репликация: Реплицируются изменения на физическом уровне (например, блоки данных, WAL/redo logs). Обычно быстрее логической, но менее гибкая и требует одинаковой версии СУБД и архитектуры.
С точки зрения топологии репликация бывает:
- Мастер-реплика (или Master-Slave): Один мастер, который обрабатывает запись, и одна или несколько реплик, которые используются для чтения.
- Мастер-мастер (или Multi-Master): Несколько узлов могут одновременно выступать в роли мастера. Требует разрешения конфликтов при одновременной записи в одни и те же данные на разных мастерах.
- Кольцевая (или Circular): Каждый узел может быть мастером для следующего узла в кольце и репликой для предыдущего.
- Звездная (или Star): Один центральный мастер, который реплицирует данные на периферийные узлы, а периферийные узлы реплицируют обратно на центральный (реже).
При выборе вида репликации учитываются требования к:
- Согласованности данных (Consistency)
- Доступности (Availability)
- Производительности (Performance)
- Стойкости к сбоям (Fault Tolerance)