Ответ
В DevOps-практике логическая репликация — это метод синхронизации данных, при котором на реплику передаются не физические блоки данных с диска, а поток логических операций изменения данных (INSERT, UPDATE, DELETE). Это позволяет реализовать гибкие сценарии, такие как выборочная репликация таблиц, агрегация данных или миграция между разными версиями или даже типами СУБД.
| Ключевые отличия от физической (бинарной) репликации: | Аспект | Физическая репликация | Логическая репликация |
|---|---|---|---|
| Уровень | Блоки диска / WAL (Write-Ahead Log) | SQL-операции / транзакции | |
| Гранулярность | Вся база данных или табличное пространство | Отдельные таблицы, строки, столбцы | |
| Неоднородность | Требует одинаковую СУБД и версию | Возможна между разными СУБД (PostgreSQL → Kafka, MySQL → Data Warehouse) | |
| Нагрузка | Низкая, копируются готовые блоки | Выше, требуется парсинг и применение операций |
Типичные сценарии использования в DevOps:
- Геораспределение и шардирование: Отправка данных о пользователях из разных регионов в центральное аналитическое хранилище.
- Апгрейд без даунтайма: Создание логической реплики на сервере с новой версией PostgreSQL для тестирования и последующего переключения.
- Интеграция данных: Поток изменений из OLTP-базы (например, PostgreSQL) в систему потоковой обработки (Kafka) для реального времени аналитики (CDC - Change Data Capture).
- Консолидация отчетности: Репликация только необходимых таблиц из продакшн-базы в отдельный инстанс для отчетов, чтобы снизить нагрузку на основную БД.
Пример настройки публикации в PostgreSQL:
-- На источнике (publisher)
CREATE PUBLICATION prod_publication FOR TABLE users, orders WHERE (status = 'completed');
-- На подписчике (subscriber)
-- Создаем таблицы с такой же структурой
CREATE TABLE users (...);
CREATE TABLE orders (...);
-- Создаем подписку
CREATE SUBSCRIPTION prod_subscription
CONNECTION 'host=source-db-host port=5432 user=replicator dbname=prod'
PUBLICATION prod_publication;
Основной инструмент в стеке DevOps: Для оркестрации логической репликации и CDC часто используются специализированные инструменты, такие как Debezium (на базе Kafka Connect), который превращает изменения в базах данных в потоки событий.