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

Содержание

49.1. Примеры логического декодирования
49.2. Концепции логического декодирования
49.2.1. Логическое декодирование
49.2.2. Слоты репликации
49.2.3. Синхронизация слотов репликации
49.2.4. Модули вывода
49.2.5. Экспортированные снимки
49.3. Интерфейс протокола потоковой репликации
49.4. Интерфейс логического декодирования на уровне SQL
49.5. Системные каталоги, связанные с логическим декодированием
49.6. Модули вывода логического декодирования
49.6.1. Функция инициализации
49.6.2. Возможности
49.6.3. Режимы вывода
49.6.4. Обработчики в модуле вывода
49.6.5. Функции для формирования вывода
49.7. Запись вывода логического декодирования
49.8. Поддержка синхронной репликации для логического декодирования
49.8.1. Обзор
49.8.2. Ограничения
49.9. Передача больших транзакций для логического декодирования
49.10. Поддержка двухфазной фиксации для логического декодирования

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

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

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

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

Chapter 49. Logical Decoding

Postgres Pro Shardman provides infrastructure to stream the modifications performed via SQL to external consumers. This functionality can be used for a variety of purposes, including replication solutions and auditing.

Changes are sent out in streams identified by logical replication slots.

The format in which those changes are streamed is determined by the output plugin used. An example plugin is provided in the Postgres Pro Shardman distribution. Additional plugins can be written to extend the choice of available formats without modifying any core code. Every output plugin has access to each individual new row produced by INSERT and the new row version created by UPDATE. Availability of old row versions for UPDATE and DELETE depends on the configured replica identity (see REPLICA IDENTITY).

Changes can be consumed either using the streaming replication protocol (see Section 56.4 and Section 49.3), or by calling functions via SQL (see Section 49.4). It is also possible to write additional methods of consuming the output of a replication slot without modifying core code (see Section 49.7).

FAQ