Что такое репликация базы данных и какие виды репликации вы знаете?
Уровень: Senior
Ответ
Репликация — это процесс копирования данных с одного сервера баз данных на другой в реальном (или почти реальном) времени. Обычно есть основной узел (master), куда выполняются записи, и один или несколько ведомых узлов (slave), которые получают изменения с мастера и применяют у себя. Виды репликации: основная — master-slave (один ведущий, несколько реплик только для чтения); multi-master — несколько узлов могут принимать записи и обмениваются изменениями (сложнее, требует разрешения конфликтов, применимо не во всех СУБД, пример — MySQL Group Replication, некоторые NoSQL тоже multi-master). Есть синхронная репликация — когда транзакция считается завершённой, только когда данные записаны на всех репликах (гарантирует консистентность, но медленнее), и асинхронная — мастер сразу подтверждает, а реплика догоняет самостоятельно (могут быть отставания). Цель репликации: масштабирование чтения (распределить нагрузки чтения по слейвам), отказоустойчивость (если мастер падает, можно переключиться на реплику), геораспределение (база ближе к пользователям). Популярная схема — master-master (активный-пассивный), где у двух узлов каждый реплицирует изменения на другой, но реально записывают обычно на один, а второй ждёт переключения при сбое.