Глава 31. Устранение неполадок

Postgres Pro предоставляет возможность выгружать состояние серверного процесса путём включения параметра конфигурации crash_info, что может быть полезно для диагностики и отладки. Затем можно сгенерировать файл состояния одним из следующих способов:

  • Отправив сигнал 40 (также называемый сигналом выгрузки для диагностики):

    kill -40 идентификатор_процесса
  • Используя функцию pg_diagdump():

    SELECT pg_diagdump(идентификатор_процесса);

Здесь идентификатор_процесса — идентификатор серверного процесса, для которого нужно выгрузить состояние.

В результате Postgres Pro выгрузит состояние в файл в каталоге $PGDATA/crash_info по умолчанию или в каталоге, указанном в параметре конфигурации crash_info_location. Имя файла генерируется по следующему шаблону: crash_ид_файла_pidид_процесса.state. Источники данных для выгрузки состояния можно задать в параметре конфигурации crash_info_dump.

В примере ниже показано, как создать и просмотреть файл состояния для серверного процесса с PID 23111:

-- Создание файла состояния
SELECT pg_diagdump(23111);

-- Исследование каталога crash_info и его содержимого
SELECT pg_ls_dir('crash_info');

-- Чтение содержимого файла состояния
SELECT pg_read_file('crash_info/crash_1722943138419104_pid23111.state');