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