Перейти к основному содержимому

test_decoding. Вывод логического декодирования

В исходном дистрибутиве установлено по умолчанию: да.

Связанные компоненты: отсутствуют.

Схема размещения: не используется.

Модуль test_decoding представляет пример модуля вывода логического декодирования. Функциональность модуля может послужить отправной точкой для разработки собственного модуля вывода.

Порядок работы модуля test_decoding:

  • получение журнала предварительной записи (WAL, Write-Ahead Log) через механизм логического декодирования;
  • перевод полученного журнала в текстовое представление выполняемых операций.

Доработка

Добавлен параметр плагина, задаваемый при подключении к слоту репликации: use-xid32: использовать 32-битный xid в наборе изменений. Значение по умолчанию - false.

Ограничения

Параметр СУБД wal_level должен быть установлен в значение logical, иначе будет выдано сообщение об ошибке:

ERROR:  logical decoding requires wal_level >= logical

Параметр wal_level определяет, какое количество информации записывается в журнал предзаписи.

Установка

Установка не требуется.

Настройка

Настройка не требуется.

Использование модуля

Вывод модуля test_decoding, работающего через интерфейс логического декодирования SQL, может выглядеть так:

SELECT * FROM pg_logical_slot_get_changes('test_slot', NULL, NULL, 'include-xids', '0');

Пример вывода результата выполнения запроса:

   lsn     | xid |                       data
-----------+-----+--------------------------------------------------
0/16D30F8 | 691 | BEGIN
0/16D32A0 | 691 | table public.data: INSERT: id[int4]:2 data[text]:'arg'
0/16D32A0 | 691 | table public.data: INSERT: id[int4]:3 data[text]:'demo'
0/16D32A0 | 691 | COMMIT
0/16D32D8 | 692 | BEGIN
0/16D3398 | 692 | table public.data: DELETE: id[int4]:2
0/16D3398 | 692 | table public.data: DELETE: id[int4]:3
0/16D3398 | 692 | COMMIT
(8 rows)

Ссылки на документацию разработчика

Исходная документация PosgreSQL по модулю test_decoding: https://www.postgresql.org/docs/15/test-decoding.html.