F.28. pg_logicalinspect — проверка компонентов логического декодирования #
Модуль pg_logicalinspect
предоставляет SQL-функции для проверки компонентов логического декодирования. Он позволяет просматривать серии снимков, полученных при логическом декодировании, работающего кластера баз данных PostgreSQL. Это полезно для отладки и исследовательских целей.
По умолчанию использовать эти функции разрешено только суперпользователям и членам роли pg_read_server_files
. Суперпользователь может дать доступ другим пользователям, воспользовавшись командой GRANT
.
F.28.1. Функции #
-
pg_get_logical_snapshot_meta(filename text) returns record
# Выводит метаданные о файле снимка, полученного при логическом декодировании, который расположен в каталоге сервера
pg_logical/snapshots
. Аргументимя_файла
представляет собой имя файла снимка. Пример: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
Если
имя_файла
не соответствует файлу снимка, функция выдаёт ошибку.-
pg_get_logical_snapshot_info(filename text) returns record
# Выводит информацию о файле снимка, полученного при логическом декодировании, который расположен в каталоге сервера
pg_logical/snapshots
. Агрументимя_файла
представляет собой имя файла. Пример: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}
Если
имя_файла
не соответствует файлу снимка, функция выдаёт ошибку.
F.28.2. Автор #
Бертран Друво <bertranddrouvot.pg@gmail.com>