Ответ
Репликация — это процесс копирования и поддержания данных из одной базы данных (источник, master/primary) на одной или нескольких других (реплики, slaves/read replicas). Основные цели в DevOps: повышение доступности, отказоустойчивости, масштабируемости чтения и географического распределения данных.
Основные типы репликации:
-
Мастер-реплика (Master-Slave):
- Мастер — обрабатывает все операции записи (INSERT, UPDATE, DELETE).
- Реплики — получают изменения с мастера и обслуживают только запросы на чтение (SELECT).
- Задача DevOps: Настроить автоматическое переключение (failover) на реплику при падении мастера.
-
Мульти-мастер (Multi-Master): Несколько узлов могут принимать записи. Требует разрешения конфликтов.
Методы репликации:
- На основе бинарного лога (Binary Log Replication): Мастер записывает изменения в бинарный лог, реплики читают и применяют его (используется в MySQL, PostgreSQL).
- Логическая репликация (Logical Replication): Реплицируются изменения на уровне строк или операторов, что позволяет выбирать конкретные таблицы (PostgreSQL).
- Снимки (Snapshot Replication): Периодическая полная копия данных.
Пример настройки read replica в AWS RDS (через консоль):
- Выбрать исходный инстанс БД (master).
- В меню действий выбрать "Create read replica".
- Указать регион (можно кросс-регион для DR).
- RDS автоматически настроит репликацию и будет поддерживать её.
Практическое применение в DevOps:
- Горизонтальное масштабирование: Направлять тяжёлую аналитику на реплики, разгружая мастер.
- Резервное копирование: Создавать резервные копии с реплики, чтобы не нагружать мастер.
- Тестирование: Использовать реплику для запуска тестов на актуальных данных.
- Гео-распределение: Размещать реплики ближе к пользователям в других регионах для снижения задержки.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶