#postgresql #devops #postgresql-9.1
#postgresql #devops #postgresql-9.1
Вопрос:
Я должен установить время ожидания запроса для базы данных Postgres на 60 минут. Ниже приведены файлы конфигурации для базы данных Postgres.
- pg_ctl.conf
- pg_hba.conf
- pg_ident.conf
- postgresql.conf
- start.conf
В файле postgresql.conf я вижу, что есть поля;
#statement_timeout = 0 # in milliseconds, 0 is disabled
#lock_timeout = 0 # in milliseconds, 0 is disabled
Мой вопрос в том, какое поле мне нужно раскомментировать / установить на 60 минут?
Кто-нибудь, пожалуйста, помогите в этом? Или мне нужно добавить что-то еще в файл конфигурации?
Заранее спасибо.
Комментарии:
1. Не имеет отношения к вашему вопросу, но: не имеет отношения к вашей проблеме, но: Postgres 9.1 больше не поддерживается вам следует запланировать обновление как можно скорее.
Ответ №1:
Чтобы установить глобальное значение по умолчанию для времени ожидания запроса, используйте statement_timeout
, например
statement_timeout = 60min
Прерывайте любую инструкцию, которая занимает больше указанного времени. […] Если это значение указано без единиц измерения, оно принимается за миллисекунды. Нулевое значение (по умолчанию) отключает время ожидания.
Время ожидания измеряется с момента поступления команды на сервер до ее завершения сервером.
Если вы хотите сделать это только для определенного пользователя, нет необходимости делать это глобально (для каждого пользователя):
alter user the_user_to_control
set statement_timeout = '60min';
Это изменит значение для указанного пользователя в текущей базе данных. Если вам действительно это нужно в каждой базе данных, вам нужно будет запустить этот оператор statement в каждой базе данных.