Как я могу динамически определить текущий файл журнала Postgres? - PullRequest
4 голосов
/ 12 сентября 2010

Есть ли стандартный способ выяснить, какой самый последний файл журнала запущенного экземпляра Postgres?

pg_config, к сожалению, даже не дает информацию о каталоге журнала.

1 Ответ

3 голосов
/ 12 сентября 2010

Журналы находятся в каталоге данных, в каталоге pg_log. Вы можете попросить базу данных получить эту информацию для вас:

SELECT  
    pg_ls_dir AS filename,
    pg_size_pretty((pg_stat_file('pg_log/' || pg_ls_dir)).size),
    (pg_stat_file('pg_log/' || pg_ls_dir)).access,
    (pg_stat_file('pg_log/' || pg_ls_dir)).modification,
    (pg_stat_file('pg_log/' || pg_ls_dir)).creation -- Windows only
FROM
    pg_ls_dir('pg_log')
WHERE
    (pg_stat_file('pg_log/' || pg_ls_dir)).isdir = false
ORDER BY
    modification DESC
LIMIT 1;

Если вы хотите прочитать содержимое файла журнала, вы можете использовать pg_read_file () .

Вы должны быть суперпользователем , чтобы получить информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...