pg_waldump
pg_waldump — вывести журнал предзаписи кластера БД Postgres Pro в понятном человеку виде
Синтаксис
pg_waldump
[параметр
...] [timestamp-option
...] [начальный_сегмент
[конечный_сегмент
]]
Описание
Программа pg_waldump
показывает содержимое журнала предзаписи (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=
путь
Задаёт каталог, содержащий файлы сегментов журнала, либо каталог с подкаталогом
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, с которой нужно начать чтение. По умолчанию чтение начинается с первой корректной записи журнала в самом первом из найденных файлов.
-t
линия_времени
--timeline=
линия_времени
Линия времени, из которой будут читаться записи журнала. По умолчанию используется значение, заданное параметром
начальный_сегмент
, если он присутствует, а иначе — 1.-V
--version
Вывести версию pg_waldump и завершиться.
-w
--fullpage
Выводить только записи, содержащие образы полных страниц.
--save-fullpage=
путь_хранения
Сохранять образы полных страниц, записываемые в WAL, в каталог, указанный в
пути_хранения
. Фильтровать сохраняемые образы и ограничивать их вывод можно так же, как и для записей.Образы полных страниц сохраняются с именами в таком формате:
. Имена файлов состоят из следующих компонентов:TIMELINE
-LSN
.RELTABLESPACE
.DATOID
.RELNODE
.BLKNO
FORK
Компонент Описание TIMELINE линия времени файла-сегмента WAL, в котором хранится запись, состоит из одного шестнадцатеричного числа шириной 8 символов %08X
LSN LSN записи с этим образом, состоит из двух шестнадцатеричных чисел шириной 8 символов %08X-%08X
RELTABLESPACE OID табличного пространства, содержащего блок DATOID OID базы данных, содержащей блок RELNODE номер файлового узла для блока BLKNO номер блока FORK Имя слоя, из которого получен образ полной страницы: _main
,_fsm
,_vm
или_init
.-x
xid
--xid=
xid
Вывести только записи, относящиеся к указанной транзакции.
-z
--stats[=record]
Вывести общую статистику (число и размер записей и образов полных страниц) вместо отдельных записей. Возможен вариант получения статистики по записям, а не по менеджерам ресурсов.
Если программа pg_waldump прерывается сигналом SIGINT (Control+C), она выдаёт сводку по данным, которые были обработаны к моменту прерывания. Эта операция не поддерживается в Windows.
-?
--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
нужно убрать из их имён.