Назад к вопросам
Junior
117
questionbank
Что такое репликация в контексте баз данных?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Репликация — это процесс копирования данных из одной базы данных (мастера) в одну или несколько других баз данных (реплик) в реальном времени или с небольшой задержкой.
Основные цели репликации:
- Повышение доступности. При отказе мастера, реплика может взять на себя нагрузку.
- Увеличение скорости чтения. Запросы на чтение распределяются между мастером и репликами.
- Резервное копирование. Реплика может использоваться как актуальная копия данных.
- Аналитика. Аналитические запросы могут выполняться на репликах, не нагружая мастер.
Типы репликации:
- Асинхронная. Мастер не ждет подтверждения от реплики о применении изменений. Возможна небольшая задержка данных.
- Синхронная. Мастер ожидает подтверждения от реплики. Гарантирует согласованность данных, но может замедлить запись на мастере.
- Полусинхронная. Компромисс между асинхронной и синхронной. Мастер ждет подтверждения от хотя бы одной реплики.
Пример конфигурации MySQL:
// my.cnf на мастере
[mysqld]
server-id = 1
log_bin = mysql-bin
// my.cnf на реплике
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Можно сделать реплику только для чтения
Настройка реплики:
// На реплике
CHANGE MASTER TO
MASTER_HOST='<IP_мастера>',
MASTER_USER='<repl_user>',
MASTER_PASSWORD='<repl_password>',
MASTER_LOG_FILE='<binlog_файл>', // Получается с мастера show master status;
MASTER_LOG_POS=<binlog_позиция>; // Получается с мастера show master status;
START SLAVE;