Содержание
Логическая репликация — это метод репликации объектов данных и их изменений, основанный на их идентификаторе репликации (обычно на первичном ключе). Термин «логическая» используется в противовес физической репликации, в которой применяются точные адреса блоков и побайтовое копирование. PostgreSQL поддерживает оба механизма одновременно, см. Глава 3.11. Логическая репликация позволяет осуществлять тонкую настройку управления как репликацией данных, так и безопасностью.
Логическая репликация использует модель «публикация» и «подписка» с одним или несколькими Подписчики подписчиками, подписывающимися на одну или несколько публикаций публикации на Издатель узле. Подписчики получают данные из публикаций, на которые они подписаны, и могут впоследствии повторно публиковать эти данные для организации каскадной репликации или более сложных конфигураций.
Логическая репликация таблицы обычно начинается с создания снимка данных в базе данных издателя и его копирования на сторону подписчика. После завершения этого процесса изменения на стороне издателя передаются подписчику в режиме реального времени по мере их возникновения. Подписчик применяет данные в том же порядке, что и издатель, благодаря чему обеспечивается согласованность транзакций для публикаций в рамках одной подписки. Данный метод репликации данных иногда называют транзакционной репликацией.
Типичные сценарии использования логической репликации:
Передача инкрементальных изменений в отдельной базе данных или в ее подмножестве подписчикам по мере их возникновения.
Выполнение триггеров для отдельных изменений по мере их поступления на сторону подписчика.
Консолидация нескольких баз данных в одну (например, для аналитических целей).
Репликация между различными основными версиями Digital Q.DataBase.
Репликация между экземплярами Digital Q.DataBase на различных платформах (например, с Linux на Windows).
Предоставление доступа к реплицируемым данным различным группам пользователей.
Организация общего доступа к подмножеству базы данных для нескольких баз данных.
База данных подписчика функционирует так же, как и любой другой экземпляр Digital Q.DataBase, и может выступать в роли издателя для других баз данных при определении собственных публикаций. Когда база данных подписчика используется приложением в режиме «только для чтения», конфликты в рамках одной подписки не возникают. С другой стороны, если производятся другие операции записи либо приложением, либо другими подписчиками в тот же набор таблиц, возможно возникновение конфликтов.