pg_walinspect. SQL-функции для просмотра журнала предварительной записи#
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: отсутствуют.
Схема размещения:
ext.
Модуль pg_walinspect предоставляет SQL-функции для просмотра содержимого журнала записи перед записью (write-ahead log) работающего кластера базы данных PostgreSQL на низком уровне, что полезно для отладки, аналитики, отчетности или образовательных целей.
Функции#
Все функции этого модуля будут предоставлять информацию о журнале записи, используя текущий идентификатор временной шкалы сервера.
Примечание
По умолчанию использование этих функций ограничено суперпользователями и членами роли pg_read_server_files. Доступ может быть предоставлен суперпользователям другим пользователям с помощью GRANT.
Список функций:
pg_get_wal_record_info(in_lsn pg_lsn) returns record- получает информацию о записи WAL по указанному LSN. Если указанный LSN не является началом записи WAL, он предоставляет информацию о следующей доступной записи WAL; или ошибку, если такая запись не найдена;pg_get_wal_records_info(start_lsn pg_lsn, end_lsn pg_lsn) returns setof record- получает информацию обо всех доступных записях WAL между <start_lsn> и <end_lsn>. Возвращает одну строку на каждую запись WAL. Если <start_lsn> или <end_lsn> еще не доступны, функция вызовет ошибку;pg_get_wal_records_info_till_end_of_wal(start_lsn pg_lsn) returns setof record- эта функция такая же, какpg_get_wal_records_info(), за исключением того, что она получает информацию обо всех действительных записях журнала WAL от <start_lsn> до конца журнала WAL;pg_get_wal_stats(start_lsn pg_lsn, end_lsn pg_lsn, per_record boolean DEFAULT false) returns setof record- получает статистику всех действительных записей журнала WAL между <start_lsn> и <end_lsn>. По умолчанию возвращает одну строку на тип ресурсного менеджера. Когда <per_record> установлено вtrue, возвращается одна строка на тип записи. Если <start_lsn> или <end_lsn> еще не доступны, функция вызовет ошибку;pg_get_wal_stats_till_end_of_wal(start_lsn pg_lsn, per_record boolean DEFAULT false) returns setof record- эта функция такая же, какpg_get_wal_stats(), за исключением того, что она получает статистику всех действительных записей журнала WAL от <start_lsn> до конца журнала WAL.
Доработка#
Доработка не проводилась.
Ограничения#
Ограничения отсутствуют.
Установка#
Для начала использования расширения необходимо выполнить команду активации расширения:
postgres=# CREATE EXTENSION pg_walinspect;
CREATE EXTENSION
Проверьте, что расширение установлено:
postgres=# \dx pg_walinspect
List of installed extensions
Name | Version | Schema | Description
---------------+---------+--------+-------------------------------------------------------------
pg_walinspect | 1.0 | public | functions to inspect contents of PostgreSQL Write-Ahead Log
(1 row)
Настройка#
Настройка не требуется.
Использование модуля#
Пример использования функций предоставляемых модулем:
Пример использования функции
pg_get_wal_record_info():postgres=# SELECT * FROM pg_get_wal_record_info('0/1E826E98'); -[ RECORD 1 ]----+---------------------------------------------------- start_lsn | 0/1E826F20 end_lsn | 0/1E826F60 prev_lsn | 0/1E826C80 xid | 0 resource_manager | Heap2 record_type | PRUNE record_length | 58 main_data_length | 8 fpi_length | 0 description | snapshotConflictHorizon 33748 nredirected 0 ndead 2 block_ref | blkref #0: rel 1663/5/60221 fork main blk 2Пример использования функции
pg_get_wal_stats:postgres=# SELECT * FROM pg_get_wal_stats('0/1E847D00', '0/1E84F500') WHERE count > 0 AND "resource_manager/record_type" = 'Transaction' LIMIT 1; -[ RECORD 1 ]----------------+------------------- resource_manager/record_type | Transaction count | 2 count_percentage | 8 record_size | 875 record_size_percentage | 41.2346 fpi_size | 0 fpi_size_percentage | 0 combined_size | 875 combined_size_percentage | 2.863407
Ссылки на документацию разработчика#
Дополнительно поставляемый модуль pg_walinspect.