Инструкции по использованию параметров конфигурации серверной системы (обязательно к прочтению)

Документ описывает использование параметров конфигурации серверной системы, включая пояснения по типам и значениям параметров, классификациям настроек и другим аспектам.


Типы и значения параметров

Все имена параметров не чувствительны к регистру.

Каждый параметр относится к одному из типов, перечисленных в следующей таблице:

Тип данных Описание Чувствителен к регистру
boolean Поддерживаемые значения: on / off / true / false / yes / no / 1 / 0 Нет
enum Перечисляемый тип. Допустимы только строковые значения из заданного набора Нет
int Целое число
floating point Число с плавающей точкой
string Строка Да

Некоторые значения параметров связаны с размером памяти или продолжительностью времени. Для таких значений, если вы не используете единицу по умолчанию, необходимо явно указать единицу при задании значения. Например, единицы памяти KB, MB, GB; единицы времени ms, s, min, h, d, m, y и т.д. Обратите внимание, что единицы памяти используют множитель 1024, а не 1000.

Примеры:

=# SET statement_mem TO '200MB';
=# SET idle_in_transaction_session_timeout TO '1s';

Примечание!

  1. Корректное выражение времени включает число и его единицу; то же относится и к выражениям памяти.
  2. При использовании единицы по умолчанию её можно опустить.
  3. Между числом и единицей не должно быть пробелов.
  4. INT_MAX обозначает максимальное константное значение типа int, равное 2147483647.

Классификация настроек

Многие параметры конфигурации системы имеют ограничения по правам на изменение, методам установки и моменту применения изменений. Например, только суперпользователи базы данных YMatrix могут изменять некоторые критические параметры. Некоторые параметры требуют перезапуска системы управления базой данных для вступления изменений в силу.

В YMatrix каждый экземпляр MXMaster и каждый MXSegment имеет собственный файл postgresql.conf (расположенный в соответствующей директории данных). Некоторые параметры классифицируются как segments, что означает, что каждый экземпляр MXSegment считывает значение параметра из своего локального файла postgresql.conf. Следовательно, вы должны вручную настроить эти параметры как на MXMaster, так и на каждом MXSegment. В противоположном случае, если параметр относится к типу master, его необходимо задать только на MXMaster — MXMaster автоматически синхронизирует настройку со всеми MXSegment, либо MXSegment игнорируют свои локальные значения.

В итоге, следующая таблица и приведённые выше пояснения призваны чётко описать, как интерпретировать столбец 设置分类 в индивидуальных таблицах справки по параметрам.

Классификация настройки Описание
master / segments master означает, что параметр можно изменять на MXMaster кластера YMatrix с помощью команды gpconfig в файле postgresql.conf. После изменения значение автоматически распространяется на MXSegment во время работы или игнорируется ими.
segments означает, что параметр необходимо изменять как на MXMaster, так и на каждом MXSegment (при необходимости). Каждый MXSegment использует собственное значение конфигурации. Эти параметры часто требуют перезагрузки системы для вступления изменений в силу.
session / system session указывает, что параметр имеет сеансовый уровень; system — системный уровень.
Порядок приоритета параметров YMatrix: сеансовый (SET) > база данных и роль (ALTER ROLE...IN DATABASE...SET) > роль (ALTER ROLE...SET) > база данных (ALTER DATABASE...SET) > системный (postgresql.conf). Параметры системного уровня можно изменять только через команду gpconfig в этом файле.
restart / reload restart означает, что изменение вступает в силу только после перезапуска системы базы данных YMatrix.
reload означает, что изменение вступает в силу после перезагрузки файла конфигурации сервера (mxstop -u) без остановки системы базы данных.
table table означает, что параметр можно задавать только при создании таблицы с помощью ключевого слова WITH. Он применяется к одной таблице и не может быть изменён после установки.
superuser Параметр сеансового уровня, который может изменяться только суперпользователем базы данных.
read only Только для чтения параметр; изменять нельзя.