В чем разница между репликацией и мастером

«В чем разница между репликацией и мастером» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Репликация — это процесс копирования данных из одного сервера (мастера) на другие серверы (реплики). Мастер — это основной сервер, который принимает записи (write-операции), а реплики — его копии, обычно доступные только для чтения (read-only).

Пример настройки репликации в PostgreSQL:

-- На мастере:
ALTER SYSTEM SET wal_level = 'replica';
CREATE ROLE replicator WITH REPLICATION LOGIN PASSWORD 'password';

-- На реплике:
pg_basebackup -h master-host -D /var/lib/postgresql/data -U replicator -P -R

Ключевые различия:

  • Мастер обрабатывает все изменения данных (INSERT/UPDATE/DELETE), реплики — только SELECT.
  • При падении мастера можно повысить реплику до мастера (failover).
  • Реплики обеспечивают отказоустойчивость и балансировку нагрузки на чтение.