gpconfig

1 Описание

Утилита gpconfig позволяет пользователям устанавливать, сбрасывать или просматривать параметры конфигурации в файлах postgresql.conf на всех экземплярах кластера YMatrix (Master, Segments и Mirrors). При установке параметра можно дополнительно указать отдельное значение для Master. Например, параметр max_connections требует разного значения на Master и на Segments. Используйте опцию --masteronly, чтобы задать или сбросить глобальные параметры либо параметры, применяемые только к Master.

Не все параметры могут быть настроены с помощью gpconfig. Например, нельзя использовать её для установки параметра port, который различается для каждого экземпляра Segment. Воспользуйтесь опцией -l, чтобы отобразить полный список поддерживаемых параметров конфигурации.

Когда параметр устанавливается с помощью gpconfig, его значение добавляется в конец файла postgresql.conf. Когда параметр удаляется с помощью gpconfig, он комментируется в файле postgresql.conf, и используется значение по умолчанию. Если вы удалите параметр, а затем позже снова добавите его с новым значением, в файле postgresql.conf будет существовать две записи: одна закомментированная, другая — активная в конце файла.

После установки параметра может потребоваться перезапуск кластера или перезагрузка файла postgresql.conf, чтобы изменения вступили в силу. Требуется ли перезапуск, зависит от конкретного параметра.

Чтобы отобразить текущее значение параметра в системе, используйте опцию -s.

Если при изменении параметра с помощью gpconfig вы получаете следующую ошибку:

GUC Validation Failed: mars3.degrade_min_run_size cannot be changed under normal conditions. Please refer to gpconfig documentation.

это означает, что параметр защищён. Чтобы изменение вступило в силу, необходимо добавить опцию --skipvalidation. Например:

gpconfig -c optimizer_force_multistage_agg -v false --skipvalidation

Для подключения к экземпляру MXMaster и получения конфигурации системы gpconfig использует следующие переменные окружения:

  • PGHOST
  • PGPORT
  • PGUSER
  • PGPASSWORD
  • PGDATABASE

2. Опции

Опция Описание
-c param_name или --change param_name Изменяет параметр конфигурации, добавляя новую запись в конец файла postgresql.conf
-v value или --value value Задаёт значение параметра, указанного опцией -c. По умолчанию это значение применяется ко всем Segments, Mirrors, Master и Standby.
Значения параметров, не являющиеся одиночными символами или цифрами, должны быть заключены в одинарные кавычки (''). Для строк, содержащих пробелы или специальные символы, используйте двойные одинарные кавычки или обратный слеш для экранирования ('' или \')
-m master_value или --mastervalue master_value Устанавливает отдельное значение для Master и Standby при настройке параметра, отличное от значения, используемого на Segments
--masteronly Если указано, gpconfig изменяет только файл postgresql.conf на Master
-r param_name или --remove param_name Удаляет параметр конфигурации, комментируя его в файле postgresql.conf
-l или --list Отображает все параметры конфигурации, которые можно изменить с помощью gpconfig
-s param_name или --show param_name Показывает текущее значение указанного параметра конфигурации на всех экземплярах (Master и Segments) в кластере YMatrix. Отображаемое значение отражает текущую активную настройку; если кластер не был перезапущен после изменения, показывается старое значение
--file Отображает значение параметра, как оно определено в файле postgresql.conf на всех экземплярах (Master и Segments). Эти значения могут быть ещё неактивны, если кластер не был перезапущен.
Нельзя использовать вместе с опцией --file-compare
--file-compare Сравнивает текущее активное значение параметра в кластере YMatrix (Master и Segments) со значением в файле postgresql.conf.
Если значения различаются, отображаются значения со всех хостов. Если совпадают — выводится сводный отчёт.
Нельзя использовать вместе с опцией --file
--skipvalidation Пропускает проверки корректности при установке параметра.
Используйте эту опцию с осторожностью
--verbose Отображает дополнительную информацию в логах во время выполнения команды
--debug Устанавливает уровень вывода логов в режим отладки
? или -h или --help Отображает справочную информацию

3. Примеры

Просмотр конфигурации shared_buffers:

gpconfig -s shared_buffers

Установка gp_resource_manager в значение queue:

gpconfig -c gp_resource_manager -v queue

Установка max_connections в 180 на Segments и 60 на Master:

gpconfig -c max_connections -v 180 -m 60