Ответ
Репликация БД — это механизм автоматического копирования и синхронизации данных с одного сервера базы данных (источника) на один или несколько других серверов (реплик).
Основные цели и преимущества:
- Повышение доступности и отказоустойчивости: При падении основного сервера можно переключиться на реплику.
- Масштабирование чтения: Нагрузку запросов на чтение (SELECT) можно распределить между несколькими репликами.
- Географическое распределение: Реплики в разных регионах уменьшают задержку для локальных пользователей.
- Резервное копирование: Реплику можно использовать для создания бекапов без нагрузки на основной сервер.
Типичная архитектура (Master-Slave / Source-Replica):
- Мастер (Master / Source): Принимает все операции записи (INSERT, UPDATE, DELETE).
- Реплика (Slave / Replica): Копирует изменения с мастера (читает бинарный лог — binlog) и применяет их у себя. Обрабатывает только запросы на чтение.
Возможные проблемы:
- Задержка репликации (Replication Lag): Данные на реплике могут быть не совсем актуальными.
- Сложность обработки записей: Архитектура «только для чтения» не подходит для сценариев, где запись должна идти в разные регионы (требуется multi-master или шардинг).
Пример из практики: В нашем проекте мы использовали одну мастер-ноду PostgreSQL и две реплики. Чтение для отчетов и аналитики шло на реплики, разгружая мастер для критичных транзакций. Мониторинг задержки репликации был настроен в Prometheus.