← Назад к вопросам

Что такое репликация базы данных?

2.0 Middle🔥 201 комментариев
#Базы данных и SQL

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Репликация базы данных

Репликация базы данных — это процесс копирования и синхронизации данных из одной базы данных (основной или master) на одну или несколько других баз данных (подчинённые или slave/replica). Это критическая технология для обеспечения отказоустойчивости, масштабируемости и высокой доступности систем.

Основные типы репликации

1. Master-Slave (Master-Replica) репликация

Это наиболее распространённая архитектура:

  • Master (основной сервер) — обрабатывает все операции записи (INSERT, UPDATE, DELETE)
  • Slave (подчинённый сервер) — получает изменения и применяет их, используется только для чтения
Master (Write) → Log → Slave 1 (Read)
               → Slave 2 (Read)
               → Slave 3 (Read)

2. Master-Master (bi-directional) репликация

Оба сервера могут принимать записи и синхронизируют изменения друг с другом. Используется для активно-активных систем, но требует осторожности с конфликтами.

Механизм репликации в MySQL

Майор часть репликации основана на бинарном логе (binary log):

-- На Master
SET GLOBAL binlog_format = ROW; -- или STATEMENT, или MIXED

-- На Slave
CHANGE MASTER TO
  MASTER_HOST=192.168.1.1,
  MASTER_USER=replication_user,
  MASTER_PASSWORD=password,
  MASTER_LOG_FILE=mysql-bin.000001,
  MASTER_LOG_POS=154;

START SLAVE;

Преимущества репликации

  1. Масштабируемость: распределение нагрузки на чтение на несколько slave серверов
  2. Отказоустойчивость: если master упадёт, можно promote slave в master
  3. Резервные копии: slave можно использовать для бэкапов без блокировки master
  4. Географическое распределение: данные копируются в удалённые регионы для минимизации задержки

Вызовы и ограничения

  • Задержка репликации (replication lag): slave может быть позади master на несколько миллисекунд или секунд
  • Конфликты данных: в master-master могут возникнуть несогласованности
  • Пропускная способность: репликация создаёт дополнительный трафик сети
  • Сложность отказоустойчивого переключения: требует автоматического механизма promotion

Современные решения

Для высокой доступности часто используют:

  • MySQL Group Replication — встроенное решение для multi-master репликации
  • Percona XtraDB Cluster — основана на Galera для синхронной репликации
  • AWS RDS Multi-AZ — автоматическая репликация с failover