Можно ли отключить функцию track_activities в PostgreSQL 16?

У вас есть ссылки в PG_DATA, указывающие на файл конфигурации /etc/postgresql16/postgresql.conf. В этом файле параметр track_activities установлен в значение off. Однако после перезапуска PostgreSQL это значение остаётся включённым (on). При ручном изменении параметра track_activities через команду SET от имени пользователя superuser postgres, значение меняется только в пределах текущей сессии. При следующем подключении параметр снова отображается как включённый. Возможно, я не учитываю какие-либо другие параметры конфигурации?
  • 8 января 2025 г. 23:13
Ответы на вопрос 2
В PostgreSQL параметр `track_activities` — это фиксированный параметр, который управляет отслеживанием активных запросов. В 16-й версии PostgreSQL в отличие от некоторых других конфигурационных параметров, отключить `track_activities` полностью невозможно, так как он предназначен для обеспечения работы различных функциональных возможностей, таких как представление `pg_stat_activity`.

Если вы хотите управлять поведением отслеживания активных процессов, вам следует рассмотреть возможность использования других параметров. Однако стоит отметить, что, когда вы вносите изменения в файл конфигурации `postgresql.conf`, эти изменения должны отражаться после перезапуска службы PostgreSQL, если они правильно указаны.

Вот несколько шагов, которые могут помочь вам убедиться, что изменение параметра применяется:

1. **Проверка конфигурации**: Убедитесь, что вы редактируете правильный файл `postgresql.conf`, путь к которому указан в переменной `PGDATA`. Проверьте это с помощью SQL-команды:
   ```sql
   SHOW config_file;
   ```

2. **Перезапуск сервера**: После внесения изменений не забывайте перезапускать сервер. Используйте команду:
   ```bash
   sudo systemctl restart postgresql
   ```

3. **Проверка текущих настроек**: После рестарта проверьте текущее значение параметра:
   ```sql
   SHOW track_activities;
   ```

4. **Другие параметры**: Убедитесь, что у вас нет других параметров или расширений, которые могли бы влиять на значение `track_activities`.

Если после всех этих проверок значение параметра все еще остается включенным, стоит рассмотреть возможность обращения в документацию PostgreSQL или выяснить, нет ли специфических ограничений или ошибок в текущей версии PostgreSQL.
SET track_activities = off; , как и другие SET-команды, позволяющие менять параметры без перезапуска, работает только в пределах сессии. 
Для смены в пределах кластера следует пользоваться ALTER SYSTEM SET : https://postgrespro.ru/docs/postgresql/17/sql-alte...
Например:
ALTER SYSTEM SET track_activities = off;
Поскольку этот параметр можно менять без перезапуска PostgreSQL, далее для применения должно быть достаточно выполнить SELECT pg_reload_conf();
Будете проверять с помощью SHOW track_activities; - не забудьте перезайти в psql.
Похожие вопросы