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.