Thanks to visit codestin.com
Credit goes to postgrespro.ru

Глава 46. Логическое декодирование

PostgreSQL обеспечивает инфраструктуру для потоковой передачи изменений, выполняемых через SQL, внешним потребителям. Эта функциональность может быть полезна для самых разных целей, включая аудит и реализацию репликации.

Изменения передаются в потоках, связываемых со слотами логической репликации. Каждое изменение передаётся в одном потоке ровно один раз.

Формат, в котором передаются изменения, определяет используемый модуль вывода. Пример модуля вывода включён в дистрибутив PostgreSQL. Также возможно разработать и другие модули, расширяющие выбор доступных форматов, не затрагивая код ядра самого сервера. Любой модуль вывода получает на вход отдельные строки, создаваемые командой INSERT, и новые версии строк, которые создаёт UPDATE. Доступность старых версий строк для UPDATE и DELETE зависит от выбора варианта идентификации реплики (см. описание REPLICA IDENTITY).

Изменения могут быть получены либо по протоколу потоковой репликации (см. Раздел 49.3 и Раздел 46.3), либо через функции, вызываемые в SQL (см. Раздел 46.4). Также возможно разработать дополнительные методы для обработки данных, поступающих через слот репликации, не модифицируя код ядра сервера (см. Раздел 46.7).