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.