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
LSN LSN записи с этим образом, состоит из двух шестнадцатеричных чисел шириной 8 символов %08X-%08X
RELTABLESPACE OID табличного пространства, содержащего блок DATOID OID базы данных, содержащей блок 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
нужно убрать из их имён.