Перейти к основному содержимому

Изменения перечня конфигурационных параметров при обновлении

В данном разделе представлен список параметров по которым могут быть применены следующие действия при обновлении:

  • удаление;
  • изменение;
  • добавление при отсутствии на стенде.

Параметры могут находиться в следующих конфигурационных файлах:

  • postgresql.conf (для standalone конфигурации): добавление новых параметров из новой версии, замена старых значений в соответствии с правилом замены параметров;
  • postgres.yml (для конфигурации cluster): добавление новых параметров из новой версии, замена старых значений в соответствии с правилом замены параметров;
  • pangolin-pooler.ini: добавление новых параметров из новой версии, замена старых значений в соответствии с правилом замены параметров;
  • postgresql.auto.conf: добавление новых параметров из новой версии без замены старых значений;
  • postgresql.base.conf: добавление новых параметров из новой версии без замены старых значений;
  • pg_hba.conf: добавление новых параметров из новой версии без замены старых значений, кроме параметров типа pghba_users (берутся из новой версии с заменой старых значений).

Правила замены параметров в файлах

Значение переменных

В разделе могут встречаться следующие переменные:

  • {{ PGHOME }} — путь до каталога PGHOME серверной части;
  • {{ PGHOME_CLIENT }} — путь до каталога клиентской части PGHOME_CLIENT;
  • {{ PGDATA }} — путь до директории данных PGDATA;
  • {{ PGBACKUP }} — путь до каталога для создания РК PGBACKUP;
  • {{ PGBACKUP_BIN }} — путь до pangolin_backup_files.bin_path (по умолчанию /opt/pangolin-backup-tools/bin);
  • {{ CLUSTER_NAME }} — имя кластера;
  • {{ POOLER_BIN }} — путь до каталога pangolin_pooler_files.bin_dir (по умолчанию /opt/pangolin-pooler/bin);
  • {{ USED_FQDN_HOST }} — адрес из переменной used_fqdn_host, если доступен;
  • {{ ANSIBLE_FQDN }} — адрес ansible_fqdn, если used_fqdn_host недоступен;
  • {{ PORTS_PG }} — значение переменной ports.pg;
  • {{ PORTS_PGBOUNCER_PG_AUTH }} — значение порта pgbouncer_pg_auth.
Параметры с зависимостью от ядер CPU

Значение параметровmax_parallel_workers и max_worker_processes автоматически рассчитывается исходя из количества ядер CPU сервера, однако максимальное значение ограничено 32 рабочими потоками.

Формула расчета:

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

  • Если предыдущее значение параметра больше или равно 32, оно сохраняется неизменным.
  • Если число физических или виртуальных процессоров менее 32, устанавливается фиксированное значение равное 32.
  • В любом другом случае используется фактическое количество процессоров на сервере.

Правила замены параметров в файлах конфигурации:

  • postgres.yml:

    postgresql:
    bin_dir: {{ PGHOME }}/bin
    bin_dir_client: {{ PGHOME_CLIENT }}/bin
    parameters:
    pg_plugins_path: {{ PGHOME }}/lib
    archive_command: {{ PGBACKUP_BIN }}/pg_probackup archive-push -B {{ PGBACKUP }} —instance {{ CLUSTER_NAME }} —wal-file-path=%p —wal-file-name=%f —compress —overwrite -j 4 —batch-size=100
    superuser_reserved_connections: 10 # Значение по умолчанию
    max_parallel_workers: {{ CPU <= x >= CPU_min & x <=32 }}
    max_worker_processes: {{ CPU <= x >= CPU_min & x <=32 }}
    enabled_extra_auth_methods: 'cert' # Значение по умолчанию
    wal_keep_size: {{WAL_KEEP_SEGMENT_VALUE}}
    callbacks:
    on_role_change: {{ POOLER_BIN }}/pangolin-pooler-restart.sh
    log:
    file_name: pangolin-manager-%Y-%m-%d_%H%M%S.log
    bootstrap.dcs.postgresql.parameters:
    max_worker_processes: {{ CPU <= x >= CPU_min & x <=32 }}
    ПараметрНовое значение / ФорматС чем связано обновление параметра
    bin_dir{{ PGHOME }}/binИзменен путь к серверной части (PGHOME)
    bin_dir_client{{ PGHOME_CLIENT }}/binРазделение клиентской и серверной части
    pg_plugins_path{{ PGHOME }}/libРазделение клиентской и серверной части и изменение пути до PGHOME
    archive_command{{ PGBACKUP_BIN }}/pg_probackup archive-push -B {{ PGBACKUP }} —instance {{ CLUSTER_NAME }} —wal-file-path=%p —wal-file-name=%f —compress —overwrite -j 4 —batch-size=100Возможны изменения путей по умолчанию в переменных команды
    superuser_reserved_connections10Изменены минимальные системные требования
    max_parallel_workers{{ CPU <= x >= CPU_min & x <=32 }}Изменены минимальные системные требования
    max_worker_processes{{ CPU <= x >= CPU_min & x <=32 }}Только для standalone-конфигураций. Изменены минимальные системные требования
    enabled_extra_auth_methodscertТолько при обновлении с переносом данных. Изменены требования по безопасности
    wal_keep_size{{WAL_KEEP_SEGMENT_VALUE}}Добавление/изменение параметра в связи с переходом от определения wal_keep_segments к wal_keep_size
    on_role_change{{ POOLER_BIN }}/pangolin-pooler-restart.shИзменение пути до каталога pangolin_pooler_files.bin_dir({{ POOLER_BIN }})
    log.file_namepangolin-manager-%Y-%m-%d_%H%M%S.logИзменено имя лог-файла
    bootstrap.dcs.postgresql.parameters.max_worker_processes{{ CPU <= x >= CPU_min & x <=32 }}Изменены минимальные системные требования
  • postgresql.conf:

    hba_file: {{ PGDATA }}/pg_hba.conf
    ident_file: < путь до папки 'PGDATA' >/pg_ident.conf
    pg_plugins_path: {{ PGHOME }}/lib
    archive_command: {{ PGBACKUP_BIN }}/pg_probackup archive-push -B {{ PGBACKUP }} —instance {{ CLUSTER_NAME }} —wal-file-path=%p —wal-file-name=%f —compress —overwrite -j 4 —batch-size=100
    superuser_reserved_connections: 10 # Значение по умолчанию
    max_parallel_workers: {{ CPU <= x >= CPU_min & x <=32 }}
    max_worker_processes: {{ CPU <= x >= CPU_min & x <=32 }}
    enabled_extra_auth_methods: 'cert' # Значение по умолчанию
    wal_keep_size: {{WAL_KEEP_SEGMENT_VALUE}}
    ПараметрНовое значение / ФорматС чем связано обновление параметра
    hba_file{{ PGDATA }}/pg_hba.confИзменен путь до PGDATA
    ident_file{{ PGDATA }}/pg_ident.confТолько при обновлении с переносом данных. Изменен путь до PGDATA
    pg_plugins_path{{ PGHOME }}/libИзменен путь до PGHOME в новой версии
    archive_command{{ PGBACKUP_BIN }}/pg_probackup archive-push -B {{ PGBACKUP }} —instance {{ CLUSTER_NAME }} —wal-file-path=%p —wal-file-name=%f —compress —overwrite -j 4 —batch-size=100Возможны изменения путей по умолчанию в переменных команды
    superuser_reserved_connections10Изменены минимальные системные требования
    max_parallel_workers{{ CPU <= x >= CPU_min & x <=32 }}Изменены минимальные системные требования
    max_worker_processes{{ CPU <= x >= CPU_min & x <=32 }}Только для standalone-конфигураций. Изменены минимальные системные требования
    enabled_extra_auth_methodscertТолько при обновлении с переносом данных. Изменены требования по безопасности
    wal_keep_size{{WAL_KEEP_SEGMENT_VALUE}}Добавление/изменение параметра в связи с переходом от определения wal_keep_segments к wal_keep_size
  • pangolin-poller.ini:

    databases:
    * = host={{ USED_FQDN_HOST or ANSIBLE_FQDN }} port={{ PORTS_PG }} auth_port={{ PORTS_PGBOUNCER_PG_AUTH }} auth_pool_size=1
    pgbouncer:
    admin_users: pgbouncer
    ПараметрНовое значение / ФорматС чем связано обновление параметра
    databases* = host={{ USED_FQDN_HOST or ANSIBLE_FQDN }} port={{ PORTS_PG }} auth_port={{ PORTS_PGBOUNCER_PG_AUTH }} auth_pool_size=1Обновление параметра связано с возможным изменением параметра ports.pg
    pgbouncer.admin_userspgbouncerДобавление нового параметра при возможном отсутствии

Удаляемые параметры в файлах:

  • postgres.yml:

    postgresql:
    authentication:
    replication.password: # Для конфигураций с включенным 'auth_reencrypt', удаление параметра в связи с требованиями по безопасности подключения
    superuser.password: # Для конфигураций с включенным 'auth_reencrypt', удаление параметра в связи с требованиями по безопасности подключения
    parameters:
    wal_keep_segments: # Удаление параметра ввиду перехода от определения 'wal_keep_segments' к 'wal_keep_size'
  • pangolin-poller.ini:

    auth_user:                       # Удаление параметра в связи с требованиями по безопасности подключения
    auth_query: # Удаление параметра в связи с требованиями по безопасности подключения