pg_waldump

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

Синтаксис

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

Описание

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

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

Параметры

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

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

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

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

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

-b
--bkp-details

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

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

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

-f
--follow

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

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

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

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

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

-q
--quiet

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

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

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

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

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

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

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

-V
--version

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

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

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

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

КомпонентОписание
TIMELINEлиния времени файла-сегмента WAL, в котором хранится запись, состоит из одного шестнадцатеричного числа шириной 8 символов %08X
LSNLSN записи с этим образом, состоит из двух шестнадцатеричных чисел шириной 8 символов %08X-%08X
RELTABLESPACEOID табличного пространства, содержащего блок
DATOIDOID базы данных, содержащей блок
RELNODEномер файлового узла для блока
BLKNOномер блока
FORKИмя слоя, из которого получен образ полной страницы: _main, _fsm, _vm или _init.
-x xid
--xid=xid

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

-z
--stats[=record]

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

-?
--help

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

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

-E
--end-timestamp

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

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

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

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

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

  • 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.

-S
--start-timestamp

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

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

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

PGDATA

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

PG_COLOR

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

Примечания

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

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

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

См. также

Раздел 29.7