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

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

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

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

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

  • 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;
  • {{ CURRENT_SHARED_PRELOAD_LIBRARIES }} - значение параметра shared_preload_libraries до обновления;
  • {{ pangolin_major_old_version }} - исходная мажорная версия СУБД Pangolin (формат - );
  • {{ base_version }} - базовая версия продукта (текущая: 8).
Параметры с зависимостью от ядер 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' # Значение по умолчанию
    extension_control_path: {{ALTERNATIVE_EXTENSION_CONTROL_DIRECTORY_VALUE}}
    shared_preload_libraries: 'psql_rotate_password,{{ CURRENT_SHARED_PRELOAD_LIBRARIES }}'
    dynamic_library_path: '/opt/pangolin-extensions/{{ base_version }}/lib:/opt/pangolin-extensions/{{ pangolin_major_old_version }}/lib:$libdir'
    unix_socket_directories: '{{pid_path_dir}}/pangolin-dbms/'
    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Только при обновлении с переносом данных. Изменены требования по безопасности
    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 }}Изменены минимальные системные требования
    extension_control_path{{ALTERNATIVE_EXTENSION_CONTROL_DIRECTORY_VALUE}}Добавление/изменение параметра в связи с переходом от определения alternative_extension_control_directory к extension_control_path
    dynamic_library_path/opt/pangolin-extensions/{{ base_version }}/lib:/opt/pangolin-extensions/{{ pangolin_major_old_version }}/lib:$libdirДобавление/изменение параметра в связи с переходом на новое расположение сторонних расширений. Актуально только при их использовании
    shared_preload_librariespsql_rotate_password,{{ CURRENT_SHARED_PRELOAD_LIBRARIES }}Добавляются дополнительные расширения при использовании соответствующей функциональности
    unix_socket_directories{{pid_path_dir}}/pangolin-dbms/Изменен путь до каталога с Unix-сокетами
  • 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' # Значение по умолчанию
    extension_control_path: {{ALTERNATIVE_EXTENSION_CONTROL_DIRECTORY_VALUE}}
    dynamic_library_path: '/opt/pangolin-extensions/{{ base_version }}/lib:/opt/pangolin-extensions/{{ pangolin_major_old_version }}/lib:$libdir'
    shared_preload_libraries: 'psql_rotate_password,{{ CURRENT_SHARED_PRELOAD_LIBRARIES }}'
    unix_socket_directories: '{{pid_path_dir}}/pangolin-dbms/'
    ПараметрНовое значение / ФорматС чем связано обновление параметра
    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Только при обновлении с переносом данных. Изменены требования по безопасности
    extension_control_path{{ALTERNATIVE_EXTENSION_CONTROL_DIRECTORY_VALUE}}Добавление/изменение параметра в связи с переходом от определения alternative_extension_control_directory к extension_control_path
    dynamic_library_path/opt/pangolin-extensions/{{ base_version }}/lib:/opt/pangolin-extensions/{{ pangolin_major_old_version }}/lib:$libdirДобавление/изменение параметра в связи с переходом на новое расположение сторонних расширений. Актуально только при их использовании
    shared_preload_librariespsql_rotate_password,{{ CURRENT_SHARED_PRELOAD_LIBRARIES }}Добавляются дополнительные расширения при использовании соответствующей функциональности
    unix_socket_directories{{pid_path_dir}}/pangolin-dbms/Изменен путь до каталога с Unix-сокетами
  • 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Добавление нового параметра при возможном отсутствии

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

  • postgresql.conf:

    wal_keep_segments =                            # Удаление параметра ввиду перехода от определения 'wal_keep_segments' к 'wal_keep_size'
    vacuum_defer_cleanup_age = # Удаление в связи с прекращением поддержки параметра в СУБД
    promote_trigger_file = # Удаление в связи с прекращением поддержки параметра в СУБД
    lc_ctype = # Удаление в связи с прекращением поддержки параметра в качестве конфигурируемого параметра в postgres.yml
    lc_collate = # Удаление в связи с прекращением поддержки параметра в качестве конфигурируемого параметра в postgres.yml
    alternative_extension_control_directory = # Для конфигураций с использованием 3rd_party расширений, удаление параметра ввиду перехода от определения 'alternative_extension_control_directory' к 'extension_control_path'
  • postgres.yml:

    postgresql:
    authentication:
    replication.password: # Для конфигураций с включенным 'auth_reencrypt', удаление параметра в связи с требованиями по безопасности подключения
    superuser.password: # Для конфигураций с включенным 'auth_reencrypt', удаление параметра в связи с требованиями по безопасности подключения
    parameters:
    wal_keep_segments: # Удаление параметра ввиду перехода от определения 'wal_keep_segments' к 'wal_keep_size'
    lc_collate: # Удаление в связи с прекращением поддержки параметра в качестве конфигурируемого параметра в postgres.yml
    vacuum_defer_cleanup_age: # Удаление в связи с прекращением поддержки параметра в СУБД
    promote_trigger_file: # Удаление в связи с прекращением поддержки параметра в СУБД
    lc_ctype: # Удаление в связи с прекращением поддержки параметра в качестве конфигурируемого параметра в postgres.yml
    alternative_extension_control_directory: # Для конфигураций с использованием 3rd_party расширений, удаление параметра ввиду перехода от определения 'alternative_extension_control_directory' к 'extension_control_path'
  • pangolin-poller.ini:

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