F.54. pg_walinspect

Модуль pg_walinspect предоставляет SQL-функции для просмотра журнала предзаписи на низком уровне. Он работает с запущенным кластером баз данных PostgreSQL и может быть полезен для целей отладки, анализа, отчётности или обучения. Модуль похож на pg_waldump, но работает через SQL, а не как отдельная утилита.

Все функции этого модуля выдают информацию из WAL, относящуюся к текущей линии времени сервера.

Все функции этого модуля пытаются найти первую корректную запись WAL, начиная с заданного_lsn или начального_lsn, и возвращают ошибку, если такая запись не найдётся. Также в WAL должна быть запись, соответствующая конечному_lsn, и она должна быть полной.

Примечание

Некоторые функции, например pg_logical_emit_message, возвращают LSN после только что вставленной записи. Таким образом, если передать этот LSN в качестве заданного_lsn или начального_lsn одной из этих функций, она вернёт следующую запись.

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

F.54.1. Функции общего назначения

pg_get_wal_record_info(in_lsn pg_lsn) returns record

Получает информацию о записи WAL по заданному LSN. Если заданный LSN находится не в начале записи, выдаёт информацию о следующей доступной корректной записи WAL. Если такой записи не существует, возвращает ошибку. Ниже представлен пример использования данной функции:

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_records_info(start_lsn pg_lsn, end_lsn pg_lsn) returns setof record

Получает информацию обо всех корректных записях WAL между начальным_lsn и конечным_lsn. Возвращает одну строку для каждой записи WAL. Если начальный_lsn или конечный_lsn ещё недоступны, функция вернёт ошибку. Пример использования функции:

postgres=# SELECT * FROM pg_get_wal_records_info('0/1E913618', '0/1E913740') LIMIT 1;
-[ RECORD 1 ]----+--------------------------------------------------------------
start_lsn        | 0/1E913618
end_lsn          | 0/1E913650
prev_lsn         | 0/1E9135A0
xid              | 0
resource_manager | Standby
record_type      | RUNNING_XACTS
record_length    | 50
main_data_length | 24
fpi_length       | 0
description      | nextXid 33775 latestCompletedXid 33774 oldestRunningXid 33775
block_ref        |
pg_get_wal_records_info_till_end_of_wal(start_lsn pg_lsn) returns setof record

Эта функция действует так же, как pg_get_wal_records_info(), но получает информацию обо всех корректных записях WAL с начального_lsn до конца WAL.

pg_get_wal_stats(start_lsn pg_lsn, end_lsn pg_lsn, per_record boolean DEFAULT false) returns setof record

Выдаёт статистику по всем корректным записям WAL между начальным_lsn и конечным_lsn. По умолчанию возвращает одну строку для каждого типа менеджера_ресурсов (resource_manager). Когда по_типу_записи имеет значение true, то возвращает отдельные строки для разных типов_записей (record_type). Если начальный_lsn или конечный_lsn ещё недоступны, функция возвращает ошибку. Пример использования функции:

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.23468426013195
fpi_size                     | 0
fpi_size_percentage          | 0
combined_size                | 875
combined_size_percentage     | 2.8634072910530795
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 с начального_lsn до конца WAL.

F.54.2. Автор

Бхарат Рупиредди (Bharath Rupireddy)

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy