pg_waldump

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

Синтаксис

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

Описание

Программа 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 и завершиться.

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

PGDATA

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

PG_COLOR

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

Примечания

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

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

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

См. также

Раздел 30.6