pg_waldump

pg_waldump — вывести журнал предзаписи кластера БД Postgres Pro в понятном человеку виде

Синтаксис

pg_waldump [параметр...] [timestamp-option...] [начальный_сегмент [конечный_сегмент]]

Описание #

Программа pg_waldump показывает содержимое журнала предзаписи (WAL) с метками времени. Прежде всего она полезна для отладки и исследовательских целей.

Эту утилиту может запускать только пользователь, установивший сервер, так как ей требуется доступ на чтение к каталогу данных.

Параметры

Следующие аргументы командной строки задают расположение данных и формат вывода:

начальный_сегмент

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

конечный_сегмент

Остановиться после чтения указанного файла сегмента WAL.

-b
--bkp-details

Выводить подробные сведения о блоках-копиях страниц.

-B блок
--block=блок

Выводить только записи, изменяющие указанный блок. При этом также необходимо указать отношение в аргументе --relation или -R.

-e конец
--end=конец

Прекратить чтение в заданной позиции в WAL, а не читать поток до конца.

-f
--follow

Достигнув конца корректного WAL, проверять раз в секунду поступление новых записей WAL.

-F слой
--fork=слой

Выводить только записи, изменяющие блоки в указанном слое. Допустимые значения: main (основной слой), fsm (карта свободного пространства), vm (карта видимости) и init (слой инициализации).

-n предел
--limit=предел

Вывести заданное число записей и остановиться.

-p путь
--path=путь

Задаёт каталог, содержащий файлы сегментов WAL, либо каталог с подкаталогом pg_wal, содержащим такие файлы. По умолчанию в поисках этих файлов просматривается текущий каталог, подкаталог pg_wal текущего каталога и подкаталог pg_wal каталога PGDATA.

-q
--quiet

Не выводить ничего кроме ошибок. Этот ключ может быть полезен, когда вы хотите узнать, можно ли полностью разобрать диапазон записей WAL, но собственно содержимое записей вас не интересует.

-r менеджер_ресурсов
--rmgr=менеджер_ресурсов

Выводить только записи, созданные указанным менеджером ресурсов. Вы можете указать параметр несколько раз, чтобы выбрать несколько менеджеров ресурсов. Когда в качестве имени менеджера передаётся list, программа выводит только список возможных имён менеджеров ресурсов и завершается.

Расширения могут определять пользовательские менеджеры ресурсов, но pg_waldump не загружает модули расширений и поэтому не может распознать пользовательские менеджеры ресурсов по имени. Вместо этого можно обозначить пользовательского менеджера ресурсов в форме custom###, где «###» — трёхзначный идентификатор менеджера ресурсов. Обозначения в этой форме всегда будут считаться действительными.

-R табл_пространство/бд/отношение
--relation=табл_пространство/бд/отношение

Выводить только записи, изменяющие блоки в указанном отношении. Отношение указывается с OID табличного пространства, OID базы данных и номером файла, разделёнными косой чертой, например 1234/12345/12345. В этом же формате отношения обозначаются в выводе программы.

-s начало
--start=начало

Позиция в WAL, с которой нужно начать чтение. По умолчанию чтение начинается с первой корректной записи WAL в самом первом из найденных файлов.

-t линия_времени
--timeline=линия_времени

Линия времени, из которой будут читаться записи WAL. По умолчанию используется значение, заданное параметром начальный_сегмент, если он присутствует, а иначе — 1. Значение можно задавать в десятичном или шестнадцатеричном представлении, например 17 или 0x11.

-V
--version

Вывести версию pg_waldump и завершиться.

-w
--fullpage

Выводить только записи, содержащие образы полных страниц.

-x xid
--xid=xid

Вывести только записи, относящиеся к указанной транзакции.

-z
--stats[=record]

Вывести общую статистику (число и размер записей и образов полных страниц) вместо отдельных записей. Возможен вариант получения статистики по записям, а не по менеджерам ресурсов.

Если программа pg_waldump прерывается сигналом SIGINT (Control+C), она выдаёт сводку по данным, которые были обработаны к моменту прерывания. Эта операция не поддерживается в Windows.

--save-fullpage=путь_хранения

Сохранять образы полных страниц, записываемые в WAL, в каталог, указанный в пути_хранения. Фильтровать сохраняемые образы и ограничивать их вывод можно так же, как и для записей.

Образы полных страниц сохраняются с именами в таком формате: TIMELINE-LSN.RELTABLESPACE.DATOID.RELNODE.BLKNO_FORK. Имена файлов состоят из следующих компонентов:

КомпонентОписание
TIMELINEлиния времени файла-сегмента WAL, в котором хранится запись, состоит из одного шестнадцатеричного числа шириной 8 символов %08X
LSNLSN записи с этим образом, состоит из двух шестнадцатеричных чисел шириной 8 символов %08X-%08X
RELTABLESPACEOID табличного пространства, содержащего блок
DATOIDOID базы данных, содержащей блок
RELNODEномер файлового узла для блока
BLKNOномер блока
FORKимя слоя, в котором был создан образ полной страницы: main, fsm, vm или init
-?
--help

Вывести справку об аргументах командной строки pg_waldump и завершиться.

Следующие параметры командной строки включают вывод отметок времени для различных типов записей WAL. Вы можете использовать их вместе с параметрами начальный_сегмент, конечный_сегмент и ключами -s и -e.

-E
--end-timestamp

Вывести отметку времени последней записи WAL указанного типа, найденную в файле сегмента журнала. Для использования этого ключа вы также должны указать ключ -S.

По умолчанию pg_waldump выводит отметки времени только для записей COMMIT. Включить в рассмотрение другие типы записей вы можете, используя ключ --timestamp-filter.

-S
--start-timestamp

Выводит отметку времени первой записи указанного типа, найденной в файле сегмента журнала. Этот ключ необходимо указать для применения ключей -E или --timestamp-filter.

По умолчанию pg_waldump выводит отметки времени только для записей COMMIT. Включить в рассмотрение другие типы записей вы можете, используя ключ --timestamp-filter.

--timestamp-filter=аргумент [, ...]

Задаёт типы записей WAL, для которых будут выводиться отметки времени. Для использования этого ключа необходимо также указать ключ -S.

Параметр --timestamp-filter может принимать следующие аргументы, разделённые запятыми:

  • XLOG_RESTORE_POINT — именованные точки восстановления, создаваемые функцией pg_create_restore_point().

  • XLOG_XACT_COMMIT — записи фиксации транзакций. Эти записи создаются командой COMMIT.

  • XLOG_XACT_COMMIT_PREPARED — записи фиксации транзакций, ранее подготовленных для двухфазной фиксации. Эти записи создаются командой COMMIT PREPARED.

  • XLOG_XACT_ABORT — записи прерывания транзакций. Эти записи создаются командой ROLLBACK.

  • XLOG_XACT_ABORT_PREPARED — записи прерывания транзакций, ранее подготовленных для двухфазной фиксации. Эти записи создаются командой ROLLBACK PREPARED.

По умолчанию pg_waldump выводит отметки времени только для записей COMMIT.

Переменные окружения

PGDATA

Каталог данных; также см. параметр -p.

PG_COLOR

Выбирает вариант использования цвета в диагностических сообщениях. Возможные значения: always (всегда), auto (автоматически) и never (никогда).

Примечания

Когда сервер работает, результаты могут быть некорректными.

Выводятся записи только указанной линии времени (или линии времени по умолчанию, если она не задана явно). Записи в других линиях времени игнорируются.

pg_waldump не будет читать файлы WAL с расширением .partial. Если требуется прочитать такие файлы, расширение .partial нужно убрать из их имён.

См. также

Раздел 29.7