Утилита 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 использует следующие переменные окружения:
| Опция | Описание |
|---|---|
| -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 | Отображает справочную информацию |
Просмотр конфигурации 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