Глава 28. Логическая репликация
Содержание
- 28.1. Публикация
- 28.2. Подписка
- 28.3. Отработка отказа логической репликации
- 28.4. Фильтры строк
- 28.5. Списки столбцов
- 28.6. Репликация генерируемых столбцов
- 28.7. Конфликты
- 28.8. Ограничения
- 28.9. Архитектура
- 28.10. Мониторинг
- 28.11. Безопасность
- 28.12. Параметры конфигурации
- 28.6. Репликация генерируемых столбцов
- 28.13. Обновление
- 28.14. Быстрая настройка
Логическая репликация — это метод репликации объектов данных и изменений в них, использующий репликационные идентификаторы (обычно это первичный ключ). Мы называем такую репликацию «логической», в отличие от физической, которая построена на точных адресах блоков и побайтовом копировании. Postgres Pro поддерживает оба механизма одновременно; см. Главу 25. Логическая репликация позволяет более детально управлять репликацией данных и аспектами безопасности.
В логической репликации используется модель публикаций/подписок с одним или несколькими подписчиками, которые подписываются на одну или несколько публикаций на публикующем узле. Подписчики получают данные из публикаций, на которые они подписаны, и могут затем повторно опубликовать данные для организации каскадной репликации или более сложных конфигураций.
Когда логическая репликация таблицы обычно начинается, PostgreSQL создаёт снимок данных таблицы в публикуемой базе данных и копирует её подписчику. После этого изменения на стороне публикации, начиная с первоначальной копии, непрерывно передаются подписчику. Подписчик применяет изменения в том же порядке, что и узел публикации, так что для публикаций в рамках одной подписки гарантируется транзакционная целостность. Этот метод репликации данных иногда называется транзакционной репликацией.
Типичные сценарии использования логической репликации:
Передача подписчикам инкрементальных изменений в одной базе данных или подмножестве базы данных, когда они происходят.
Срабатывание триггеров для отдельных изменений, когда их получает подписчик.
Объединение нескольких баз данных в одну (например, для целей анализа).
Репликация между разными основными версиями Postgres Pro.
Репликация между экземплярами Postgres Pro на разных платформах (например, с Linux на Windows)
Предоставление доступа к реплицированным данным другим группам пользователей.
Разделение подмножества базы данных между несколькими базами данных.
База данных подписчика функционирует так же, как и любой другой экземпляр базы Postgres Pro, и может стать публикующей, если создать публикации в ней. Когда подписчик действует как исключительно читающее приложение, никаких конфликтов с одной подпиской не будет. Но они могут возникнуть, если в тот же набор таблиц производят запись какие-либо приложения или другие подписчики.