Установите время ожидания запроса на 60 минут для всей базы данных postgres

#postgresql #devops #postgresql-9.1

#postgresql #devops #postgresql-9.1

Вопрос:

Я должен установить время ожидания запроса для базы данных Postgres на 60 минут. Ниже приведены файлы конфигурации для базы данных Postgres.

  1. pg_ctl.conf
  2. pg_hba.conf
  3. pg_ident.conf
  4. postgresql.conf
  5. 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 в каждой базе данных.