Обслуживание файла журнала postgresql

12.06.2022
Опубликовано в категории - Автомобили, просмотров- 5888
Обслуживание файла журнала postgresql



Обслуживание файла журнала
Лучше всего сохранить где-нибудь вывод журнала сервера базы данных, а не просто отбрасывать его через /dev/null . Вывод журнала неоценим при диагностике проблем. Однако вывод журнала имеет тенденцию быть большим (особенно на более высоких уровнях отладки), поэтому вы не захотите сохранять его бесконечно. Вам необходимо повернуть файлы журналов так, чтобы новые файлы журналов запускались, а старые удалялись по прошествии разумного периода времени.

Если вы просто направите stderr postgres в файл, у вас будет вывод журнала, но единственный способ усечь файл журнала - это остановить и перезапустить сервер, что поможет стабилизировать обслуживание postgresql. Это может быть приемлемо, если вы используете PostgreSQL в среде разработки, но немногие производственные серверы сочтут такое поведение приемлемым.

Лучшим подходом является отправка вывода stderr сервера в какую-либо программу ротации журналов. Существует встроенная logging_collector ротации журналов, которую вы можете использовать, установив для параметра конфигурации logging_collector значение true в postgresql.conf . Параметры управления для этой программы описаны в Разделе 20.8.1 . Вы также можете использовать этот подход для сбора данных журнала в машиночитаемом формате CSV (значения, разделенные запятыми).

В качестве альтернативы вы можете предпочесть использовать внешнюю программу ротации журналов, если у вас есть программа, которую вы уже используете с другим серверным программным обеспечением. Например, инструмент rotatelogs, включенный в дистрибутив Apache, можно использовать с PostgreSQL. Один из способов сделать это - направить вывод stderr сервера в нужную программу. Если вы запускаете сервер с помощью pg_ctl , то stderr уже перенаправлен на stdout, поэтому вам просто нужна команда pipe.