Изменения перечня конфигурационных параметров при обновлении
В данном разделе представлен список параметров по которым могут быть применены следующие действия при обновлении:
- удаление;
- изменение;
- добавление при отсутствии на стенде.
Параметры могут находиться в следующих конфигурационных файлах:
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 (формат -0х);{{ 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Разделение клиентской и серверной части и изменение пути до PGHOMEarchive_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_pathdynamic_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Изменен путь до PGDATAident_file{{ PGDATA }}/pg_ident.confТолько при обновлении с переносом данных. Изменен путь до PGDATApg_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_pathdynamic_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.pgpgbouncer.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: # Удаление параметра в связи с требованиями по безопасности подключения