Ответ
Репликация — это процесс создания и поддержания точных копий (реплик) базы данных на нескольких серверах. Основной сервер называется мастером (master) или основным (primary), а копии — репликами (replicas) или ведомыми (slaves).
Основные цели репликации:
Повышение отказоустойчивости и доступности (High Availability):
Если мастер-сервер выходит из строя, одна из реплик может быть "повышена" до нового мастера. Это минимизирует время простоя и обеспечивает непрерывную работу приложения.Распределение нагрузки (Load Balancing):
Нагрузку можно распределить, направляя все операции записи (INSERT
,UPDATE
,DELETE
) на мастер, а операции чтения (SELECT
) — на одну или несколько реплик. Это значительно повышает производительность систем с высокой долей чтений.Уменьшение задержек (Latency Reduction):
Реплики можно размещать географически ближе к пользователям. Пользователи из Азии могут читать данные с сервера в Сингапуре, а пользователи из Европы — с сервера во Франкфурте, что значительно сокращает время отклика.Аналитика и резервное копирование:
Тяжелые аналитические запросы или процессы резервного копирования можно выполнять на реплике, не создавая дополнительной нагрузки на основной сервер, который обслуживает трафик приложения.
Типы репликации:
- Асинхронная: Мастер отправляет изменения на реплики и не ждет подтверждения. Это обеспечивает максимальную производительность, но есть риск потери данных (replication lag), если мастер упадет до того, как изменения дойдут до реплик.
- Синхронная: Мастер ждет подтверждения от одной или всех реплик, прежде чем завершить транзакцию. Это гарантирует отсутствие потерь данных, но увеличивает задержку операций записи.