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

Содержание

29.1. Публикация
29.2. Подписка
29.2.1. Управление слотами репликации
29.2.2. Примеры: настройка логической репликации
29.2.3. Примеры: отложенное создание слота репликации
29.3. Отработка отказа логической репликации
29.4. Фильтры строк
29.4.1. Правила фильтров строк
29.4.2. Ограничения выражений
29.4.3. Преобразования UPDATE
29.4.4. Секционированные таблицы
29.4.5. Начальная синхронизация данных
29.4.6. Объединение нескольких фильтров строк
29.4.7. Примеры
29.5. Списки столбцов
29.6. Конфликты
29.7. Ограничения
29.8. Архитектура
29.9. Мониторинг
29.10. Безопасность
29.11. Параметры конфигурации
29.11.1. Публикующие серверы
29.11.2. Подписчики
29.12. Upgrade
29.12.1. Prepare for publisher upgrades
29.12.2. Prepare for subscriber upgrades
29.12.3. Upgrading logical replication clusters
29.13. Быстрая настройка

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

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

When logical replication of a table typically starts, PostgreSQL takes a snapshot of the table's data on the publisher database and copies it to the subscriber. Once complete, changes on the publisher since the initial copy are sent continually to the subscriber. The subscriber applies the data in the same order as the publisher so that transactional consistency is guaranteed for publications within a single subscription. This method of data replication is sometimes referred to as transactional replication.

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

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