Перейти к основному содержимому

pg_waldump

примечание

Эта страница переведена при помощи нейросети GigaChat.

pg_waldump — отображает содержимое WAL для кластера баз данных PostgreSQL.

Синтаксис

pg_waldump [option...] [startseg [endseg]]

Описание

pg_waldump отображает журнал содержимого журнала предзаписи (WAL) PostgreSQL в удобочитаемом виде. Основное ее применение — отладка и обучение. Использовать ее может только тот пользователь, который установил сервер, поскольку утилите нужен доступ к каталогу данных в режиме только для чтения.

Параметры

Для утилиты pg_waldump существуют следующие параметры командной строки:

startseg
Задает начальный файл сегмента WAL, с которого будет начинаться чтение. Это также определяет путь для поиска файлов и целевую линию времени.
endseg
Останавливает чтение после указанного файла сегмента WAL.
-b
--bkp-details
Выводит подробную информацию о блоках резервного копирования.
-B block
--block=block
Отображает только записи, затрагивающие указанный блок. Обязательно использовать вместе с --relation или -R.
-e end
--end=end
Прерывает чтение при достижении определенной позиции в WAL, не доходя до конца потока.
-f
--follow
После чтения всех доступных данных WAL, утилита будет продолжать ожидание появления новых записей, проверяя их раз в секунду.
-F fork
--fork=fork
Отображает только те записи,, изменяющие блоки в указанном слое fork:
  • main — основной слой;
  • fsm — карта свободного пространства;
  • vm — карта видимости;
  • init — слой инициализации.
-n limit
--limit=limit
Завершает работу после отображения указанного количества записей.
-p path
--path=path
Указывает путь к директории с сегментами WAL или к каталогу с подкаталогом pg_wal. Если путь не указан, утилита ищет в текущем каталоге, его подкаталоге pg_wal, либо в pg_wal каталога PGDATA.
-q
--quiet
Подавляет весь вывод, кроме сообщений об ошибках. Полезно, если нужно просто проверить корректность WAL без анализа содержимого.
-r rmgr
--rmgr=rmgr
Показывает записи, созданные только указанным менеджером ресурсов. Можно указывать несколько раз для выбора нескольких менеджеров. Если list передается в качестве имени, программа выведет перечень всех допустимых менеджеров и завершит выполнение.

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

-R tblspc/db/rel
--relation=tblspc/db/rel
Выводит записи, изменяющие блоки в указанном отношении. Отношение указывается как комбинация OID табличного пространства, базы данных и номером файла, разделенных косой чертой, например: 1234/56789/67890.
-s start
--start=start
Указывает позицию WAL, с которой следует начать чтение. Если не задано, чтение начнется с первой допустимой записи журнала в самом первом найденном файле.
-t timeline
--timeline=timeline
Устанавливает линию времени, из которой будут читаться записи журнала. Если startseg указан — используется его значение, иначе — по умолчанию 1. Значение можно задавать в десятичном или шестнадцатеричном представлении, например 17 или 0x11.
-V
--version
Выводит версию pg_waldump и завершается.
-w
--fullpage
Показывает только те записи, которые содержат полные образы страниц.
-x xid
--xid=xid
Отображает записи, связанные с указанным идентификатором транзакции (XID).
-z
--stats[=record]
Вместо показа отдельных записей выводит сводную статистику: общее количество записей, их суммарный размер и число полных образов страниц. Необязательный аргумент record позволяет получать статистику по каждой записи вместо менеджеров ресурсов. Если выполнение утилиты прерывается по сигналу SIGINT (например, Ctrl+C), выводится текущая статистика. Этот режим не поддерживается в Windows.
--save-fullpage=save_path
Сохранять полные образы страниц, обнаруженные в записях WAL, в каталог save_path. Сохраняемые изображения подчиняются тем же критериям фильтрации и ограничения, что и отображаемые записи.

Полные образы страниц сохраняются со следующим форматом имени файла: 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 может возвращать некорректные данные, если сервер работает в момент выполнения.

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

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

Смотрите также

«Внутреннее устройство WAL»