F.35. pg_logicalinspect — проверка компонентов логического декодирования#

F.35. pg_logicalinspect — проверка компонентов логического декодирования

F.35. pg_logicalinspect — проверка компонентов логического декодирования #

Модуль pg_logicalinspect предоставляет SQL-функции, которые позволяют просматривать содержимое компонентов логического декодирования. Он позволяет просматривать серии снимков, полученных при логическом декодировании работающего кластера базы данных Tantor BE, что полезно для отладки или в исследовательских целях.

По умолчанию, использование этих функций ограничено суперпользователями и членами роли pg_read_server_files. Доступ может быть предоставлен другим пользователям суперпользователями с помощью команды GRANT.

F.35.1. Функции #

pg_get_logical_snapshot_meta(filename text) returns record #

Получает метаданные о файле снимка, полученном при логическом декодировании, который находится в каталоге сервера pg_logical/snapshots. Аргумент filename представляет собой имя файла снимка. Например:

postgres=# SELECT * FROM pg_ls_logicalsnapdir();
-[ RECORD 1 ]+-----------------------
name         | 0-40796E18.snap
size         | 152
modification | 2024-08-14 16:36:32+00

postgres=# SELECT * FROM pg_get_logical_snapshot_meta('0-40796E18.snap');
-[ RECORD 1 ]--------
magic    | 1369563137
checksum | 1028045905
version  | 6

postgres=# SELECT ss.name, meta.* FROM pg_ls_logicalsnapdir() AS ss,
pg_get_logical_snapshot_meta(ss.name) AS meta;
-[ RECORD 1 ]-------------
name     | 0-40796E18.snap
magic    | 1369563137
checksum | 1028045905
version  | 6

Если filename не соответствует файлу снимка, функция вызывает ошибку.

pg_get_logical_snapshot_info(filename text) returns record #

Получает данные о файле снимка, полученном при логическом декодировании, который находится в каталоге сервера pg_logical/snapshots. Аргумент filename представляет собой имя файла снимка. Например:

postgres=# SELECT * FROM pg_ls_logicalsnapdir();
-[ RECORD 1 ]+-----------------------
name         | 0-40796E18.snap
size         | 152
modification | 2024-08-14 16:36:32+00

postgres=# SELECT * FROM pg_get_logical_snapshot_info('0-40796E18.snap');
-[ RECORD 1 ]------------+-----------
state                    | consistent
xmin                     | 751
xmax                     | 751
start_decoding_at        | 0/40796AF8
two_phase_at             | 0/40796AF8
initial_xmin_horizon     | 0
building_full_snapshot   | f
in_slot_creation         | f
last_serialized_snapshot | 0/0
next_phase_at            | 0
committed_count          | 0
committed_xip            |
catchange_count          | 2
catchange_xip            | {751,752}

postgres=# SELECT ss.name, info.* FROM pg_ls_logicalsnapdir() AS ss,
pg_get_logical_snapshot_info(ss.name) AS info;
-[ RECORD 1 ]------------+----------------
name                     | 0-40796E18.snap
state                    | consistent
xmin                     | 751
xmax                     | 751
start_decoding_at        | 0/40796AF8
two_phase_at             | 0/40796AF8
initial_xmin_horizon     | 0
building_full_snapshot   | f
in_slot_creation         | f
last_serialized_snapshot | 0/0
next_phase_at            | 0
committed_count          | 0
committed_xip            |
catchange_count          | 2
catchange_xip            | {751,752}

Если filename не соответствует файлу снимка, функция вызывает ошибку.

F.35.2. Автор #

Bertrand Drouvot