Глава 30. Логическая репликация

Содержание

30.1. Публикация
30.2. Подписка
30.2.1. Управление слотами репликации
30.2.2. Примеры
30.3. Фильтры строк
30.3.1. Правила фильтров строк
30.3.2. Ограничения выражений
30.3.3. Преобразования UPDATE
30.3.4. Секционированные таблицы
30.3.5. Начальная синхронизация данных
30.3.6. Объединение нескольких фильтров строк
30.3.7. Примеры
30.4. Списки столбцов
30.5. Конфликты
30.6. Ограничения
30.7. Архитектура
30.8. Мониторинг
30.9. Безопасность
30.10. Параметры конфигурации
30.11. Быстрая настройка

Логическая репликация — это метод репликации объектов данных и изменений в них, использующий репликационные идентификаторы (обычно это первичный ключ). Мы называем такую репликацию «логической», в отличие от физической, которая построена на точных адресах блоков и побайтовом копировании. Postgres Pro поддерживает оба механизма одновременно; см. Главу 26. Логическая репликация позволяет более детально управлять репликацией данных и аспектами безопасности.

В логической репликации используется модель публикаций/подписок с одним или несколькими подписчиками, которые подписываются на одну или несколько публикаций на публикующем узле. Подписчики получают данные из публикаций, на которые они подписаны, и могут затем повторно опубликовать данные для организации каскадной репликации или более сложных конфигураций.

Логическая репликация таблицы обычно начинается с создания снимка данных в публикуемой базе данных и копирования её подписчику. После этого изменения на стороне публикации передаются подписчику в реальном времени, когда они происходят. Подписчик применяет изменения в том же порядке, что и узел публикации, так что для публикаций в рамках одной подписки гарантируется транзакционная целостность. Этот метод репликации данных иногда называется транзакционной репликацией.

Типичные сценарии использования логической репликации:

База данных подписчика функционирует так же, как и любой другой экземпляр базы Postgres Pro, и может стать публикующей, если создать публикации в ней. Когда подписчик действует как исключительно читающее приложение, никаких конфликтов с одной подпиской не будет. Но они могут возникнуть, если в тот же набор таблиц производят запись какие-либо приложения или другие подписчики.

Примечание

Postgres Pro поддерживает логическую репликацию на сервер Postgres Pro Enterprise с серверов разных выпусков: PostgreSQL или Postgres Pro Standard той же или более ранней версии.