Содержание
PostgreSQL предоставляет инфраструктуру для потоковой передачи внешним потребителям изменений, выполненных с помощью SQL. Данный функционал может использоваться для различных целей, включая построение решений для репликации и аудит.
Изменения передаются в виде потоков, идентифицируемых слотами логической репликации.
Формат потоковой передачи этих изменений определяется используемым плагином вывода. Пример плагина входит в состав дистрибутива PostgreSQL. Дополнительные плагины могут быть написаны для расширения выбора доступных форматов без изменения кода ядра. Каждый плагин вывода имеет доступ к каждой отдельной новой строке, созданной
INSERT
и к новой версии строки, созданной
UPDATE
. Доступность старых версий строк для
UPDATE
и
DELETE
зависит от настроенного идентификатора реплики (см.
REPLICA IDENTITY
).
Изменения могут быть получены либо с помощью протокола потоковой репликации (см. Раздел 7.4.4 и Раздел 5.12.3 ), либо путем вызова функций через SQL (см. Раздел 5.12.4 ). Также возможно создание дополнительных методов получения данных из слота репликации без модификации основного кода (см. Раздел 5.12.7 ).