Что такое репликация в PostgreSQL и зачем она нужна?

Что такое репликация в PostgreSQL? Механизм репликации данных в PostgreSQL Передача изменений с мастер-сервера на реплики К основным вариантам относятся streaming replication (потоковая) и logical replication…

Короткий ответ

Что ответить на собеседовании

Что такое репликация в PostgreSQL? Механизм репликации данных в PostgreSQL Передача изменений с мастер-сервера на реплики К основным вариантам относятся streaming replication (потоковая) и logical replication (логическая) Streaming replication передаёт данные реплике в реальном времени через WAL (Write-Ahead Log) Logical replication синхронизирует выбранные таблицы и данные и поддерживает разные форматы Технология обеспечивает балансировку нагрузки и резервирование Применяется для повышения доступности и отказоустойчивости систем

Подробный разбор

Ответ с пояснениями

Что такое репликация в PostgreSQL?

  • Механизм репликации данных в PostgreSQL
  • Передача изменений с мастер-сервера на реплики
  • К основным вариантам относятся streaming replication (потоковая) и logical replication (логическая)
  • Streaming replication передаёт данные реплике в реальном времени через WAL (Write-Ahead Log)
  • Logical replication синхронизирует выбранные таблицы и данные и поддерживает разные форматы
  • Технология обеспечивает балансировку нагрузки и резервирование
  • Применяется для повышения доступности и отказоустойчивости систем

Развёрнутый ответ

Основная формулировка

PostgreSQL replication — это копирование и синхронизация данных из главной базы данных (primary) в одну или несколько вторичных баз (standby). Такой подход обеспечивает отказоустойчивость, масштабируемость и балансировку нагрузки. Его ключевая задача — поддерживать актуальную резервную копию, которая при отказе основного сервера сможет принять его нагрузку.

Основные аспекты

  • Streaming replication, доступная начиная с PostgreSQL 9.0, передаёт WAL-журналы (Write-Ahead Log) потоково. Благодаря этому задержка между основным сервером и репликами остаётся минимальной, а реплику можно использовать в режиме горячего standby.
  • Logical replication, появившаяся в версии 10, работает на уровне логических изменений. Она позволяет выбирать таблицы для репликации и гибко настраивать сценарии, включая обмен данными между разными версиями PostgreSQL или базами с различной структурой.
  • Типы реплик: при синхронной репликации application ожидает подтверждения записи на реплике, тогда как при асинхронной запись на реплике выполняется с задержкой. Выбор режима отражается на производительности и степени надёжности.
  • В PostgreSQL репликация работает на уровне WAL, благодаря чему сохраняются высокая производительность и совместимость.

Пример из практики

В реальных системах streaming replication часто используют для построения HA-кластеров с автоматическим failover, применяя инструменты вроде Patroni или repmgr. Logical replication подходит для миграций, выборочной передачи данных и интеграции между различными системами. Важной частью эксплуатации остаётся мониторинг репликации: для этого применяют Prometheus и PostgreSQL-экспортеры, отслеживая задержку (lag) и состояние реплик.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку