Ручное обновление исполняемых файлов СУБД Pangolin
Данный раздел рассматривает ручное обновление исполняемых файлов СУБД Pangolin.
Перед началом выполнения инструкции необходимо убедиться, что yum/dnf-репозитории настроены корректно. При обновлении пакетов, содержащих эпоху в номере версии, важно учитывать специфику работы пакетных менеджеров. При попытке обновить пакет на новую версию без эпохи, обновление не произойдет. Перед выполнением обновления данных компонентов необходимо предварительно удалить текущий установленный пакет компонента.
Поскольку инструкция является универсальной для standalone и cluster конфигураций, каждый пункт необходимо выполнить на всех узлах экземпляра СУБД. На узле арбитр производить обновление компонентов только по необходимости.
Обновление выполняется покомпонентно. Шаги, соответствующие компонентам, отсутствующим в конфигурации, следует пропустить.
Обновление СУБД может осуществляться пользователем с правами суперпользователя, а также пользователем postgres.
Все команды ниже являются примерами. Их необходимо отредактировать в соответствии с требуемыми параметрами и конфигурациями. В названиях rpm/deb-пакетов и в блоках кода, при необходимости, замените наименование ОС и пакетного менеджера. Также, в данной инструкции, распакованный дистрибутив находится в каталоге под названием pangolin.
Обозначения
В инструкции используются переменные для динамической настройки. Перед выполнением команд эти переменные будут экспортироваться. Скорректируйте значение относительно реализуемого сценария обновления:
PANGOLIN_VER– новая версия СУБД Pangolin (формат -х.х.х);PANGOLIN_VER_OLD– исходная версия СУБД Pangolin (формат -х.х.х);PANGOLIN_FULL_VER– новая версия СУБД Pangolin (формат -0х.00х.0х);PANGOLIN_FULL_VER_OLD– исходная версия СУБД Pangolin (формат -0х.00х.0х);PANGOLIN_DBMS_MAJOR– новая мажорная версия СУБД Pangolin (формат -х);PANGOLIN_DBMS_MAJOR_OLD– исходная мажорная версия СУБД Pangolin (формат -х);PANGOLIN_BACKUP_TOOLS– новая версия компонента Pangolin Backup Tools (формат -х.х.х);PANGOLIN_BACKUP_TOOLS_VENV– новая версия зависимостиpangolin-backup-tools-venv(формат -х.х.х);PANGOLIN_POOLER– новая версия компонента Pangolin Pooler (формат -х.х.х);PANGOLIN_MANAGER– новая версия компонента Pangolin Manager (формат -х.х.х);PANGOLIN_MANAGER_VENV– новая версия зависимостиpangolin-manager-venv(формат -х.х.х);PANGOLIN_MANAGER_OLD- исходная версия компонента Pangolin Manager (формат -х.х.х);PANGOLIN_TUNER– новая версия компонента Pangolin Tuner (формат -х.х.х);PANGOLIN_TIMESCALEDB– новая версия расширения timescaledb (формат -х.х.х);PANGOLIN_TIMESCALEDB_RELEASE– новая версия релиза пакета расширения timescaledb (формат -х.х.х);PANGOLIN_POSTGIS– новая версия пакета стороннего расширения postgis (формат -х.х.х);PANGOLIN_PGROUTING– новая версия пакета стороннего расширения pgrouting (формат -х.х.х);PANGOLIN_PG_BACKGROUND– новая версия пакета стороннего расширения pg_background (формат -х.х.х);PANGOLIN_POSTGIS_RELEASE– новая версия релиза пакета стороннего расширения postgis (формат -х.х.х);PANGOLIN_PGROUTING_RELEASE– новая версия релиза пакета стороннего расширения pgrouting (формат -х.х.х);PANGOLIN_PG_BACKGROUND_RELEASE– новая версия релиза пакета стороннего расширения pg_background (формат -х.х.х);PGPASSWORD- пароль от пользователя БД (по умолчанию пользовательpostgres);CLUSTERNAME- наименование кластера (по умолчаниюclustername).
Предусловие
Перед началом обновления необходимо выключить службу crond во избежание сторонних подключений на всех хостах СУБД.
В случае кластерной конфигурации дождитесь полного отсутствия задержки репликации между мастером и репликой. Перед началом процесса обновления узлы кластера должны быть синхронизированы.
Перед началом необходимо произвести проверку готовности СУБД к процессу обновления и устранить выявленные проблемы. Список необходимых проверок представлен в разделе «Проверка готовности к обновлению».
Проверка и устранение возможных ограничений происходит автоматически при выборе автоматизированного способа обновления.
В случае использования расширения timescaledb убедитесь, что обновляемая версия расширения поддерживается и подходит для запланированного сценария обновления. В противном случае необходимо сначала обновить расширение до допустимой версии. Если поднять версию расширения в рамках одной версии СУБД невозможно, следует произвести обновление СУБД на промежуточную, а затем на целевую версию. Уточнение по процессу обновления стендов с предустановленным расширением timescaledb указано в «Таблице поддерживаемых для обновления версий СУБД».
В случае использования расширения psql_rotate_password, необходимо обязательно добавить его в параметр shared_preload_libraries конфигурационного файла postgres.yml/postgresql.conf. Чтобы определить, используется ли psql_rotate_password, для каждой БД выполните запрос:
SELECT extname FROM pg_extension WHERE extname='psql_rotate_password';
Сценарий обновления
Сценарий обновления исполняемых файлов СУБД Pangolin состоит из следующих шагов:
- Шаг 1. Резервное копирование (обязательно);
- Шаг 2. Подготовка к обновлению (обязательно);
- Шаг 3. Остановка компонентов СУБД Pangolin (обязательно);
- Шаг 4. Обновление компонента pangolin-auth-reencrypt (опционально, выполните в случае использования компонента);
- Шаг 5. Обновление компонента pangolin-certs-rotate (опционально, выполните в случае использования компонента);
- Шаг 6. Обновление компонента безопасности pangolin-security-utilities (опционально, выполните в случае использования компонента);
- Шаг 7. Обновление компонента pangolin-diagnostic-tool (опционально, выполните в случае использования компонента);
- Шаг 8. Обновление компонента резервного копирования pangolin-backup-tools (опционально, выполните в случае использования компонента);
- Шаг 9. Обновление компонента Pangolin Pooler (опционально, выполните в случае использования компонента);
- Шаг 10. Обновление компонента Pangolin Manager (опционально, выполните в случае кластерной конфигурации);
- Шаг 11. Обновление компонента серверной части СУБД Pangolin (обязательно);
- Шаг 12. Обновление компонента клиентской части СУБД Pangolin (обязательно);
- Шаг 13. Обновление пакета расширения pangolin-timescaledb (опционально, выполните в случае использования расширения);
- Шаг 14. Обновление компонента pangolin-auth-password (опционально, выполните в случае использования компонента);
- Шаг 15. Обновление компонента Pangolin Tuner (опционально, выполните в случае использования компонента);
- Шаг 16. Обновление опциональных пакетов (опционально, выполните в случае использования libpq-части);
- Шаг 17. Обновление пакетов pangolin-untrusted расширений (опционально, выполните в случае использования untrusted-расширений);
- Шаг 18. Обновление пакетов сторонних расширений (опционально, выполните в случае использования сторонних расширений);
- Шаг 19. Дополнительные действия (обязательно);
- Шаг 20. Запуск утилиты обновления системных данных каталога СУБД Pangolin (обязательно);
- Шаг 21. Запуск компонентов СУБД Pangolin (обязательно);
- Шаг 22. Обновление расширений (опционально, в случае наличия расширений);
- Шаг 23. Обновление каталога безопасности (обязательно);
- Шаг 24. Завершающие действия (обязательно).
Шаг 1. Резервное копирование (обязательно)
Перед выполнением обновления выполните резервную копию рабочих файлов компонентов СУБД. Этот шаг обязателен для возможности восстановления в случае возникновения проблем.
Действия по резервному копированию компонентов СУБД
Сохраните рабочие файлы компонентов СУБД Pangolin:
-
general:(Обязательно) Действия по резервному копированию общих системных файлов
mkdir -p ~/pangolin/cache/backup/pangolin_general/{postgres,kmadmin_pg}sudo cp -ra /usr/local/sbin/dynmotd.sh ~/pangolin/cache/backup/pangolin_general/sudo cp -ra /etc/profile ~/pangolin/cache/backup/pangolin_general/sudo cp -ra /home/postgres/.bash_profile ~/pangolin/cache/backup/pangolin_general/postgressudo cp -ra /home/postgres/.bashrc ~/pangolin/cache/backup/pangolin_general/postgressudo cp -ra /home/kmadmin_pg/.bash_profile ~/pangolin/cache/backup/pangolin_general/kmadmin_pgsudo cp -ra /home/kmadmin_pg/.bashrc ~/pangolin/cache/backup/pangolin_general/kmadmin_pg -
pangolin-auth-reencrypt:(Опционально) Действия по резервному копированию компонента pangolin-auth-reencrypt
export PANGOLIN_VER_OLD=x.x.xmkdir -p ~/pangolin/cache/backup/pangolin_auth_reencryptsudo cp -ra {path_to_service}/pangolin-auth-reencrypt@.service ~/pangolin/cache/backup/pangolin_auth_reencrypt/sudo cp -ra {path_to_service}/pangolin-auth-reencrypt.service ~/pangolin/cache/backup/pangolin_auth_reencrypt/sudo cp -ra /etc/pangolin-auth-reencrypt/enc_util.cfg ~/pangolin/cache/backup/pangolin_auth_reencrypt/sudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_auth_reencrypt/ pangolin-auth-reencrypt-$PANGOLIN_VER_OLD -
pangolin-certs-rotate:(Опционально) Действия по резервному копированию компонента pangolin-certs-rotate
export PANGOLIN_VER_OLD=x.x.xmkdir -p ~/pangolin/cache/backup/pangolin_certs_rotatesudo cp -ra {path_to_service}/pangolin-certs-rotate.service ~/pangolin/cache/backup/pangolin_certs_rotate/sudo cp -ra /etc/pangolin-certs-rotate/pangolin-certs-rotate.yml ~/pangolin/cache/backup/pangolin_certs_rotate/sudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_certs_rotate/ pangolin-certs-rotate-$PANGOLIN_VER_OLD -
pangolin-security-utilities:(Опционально) Действия по резервному копированию компонента pangolin-security-utilities
export PANGOLIN_VER_OLD=x.x.xmkdir -p ~/pangolin/cache/backup/pangolin_security_utilitiessudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_security_utilities/ pangolin-security-utilities-$PANGOLIN_VER_OLD -
pangolin-backup-tools:(Опционально) Действия по резервному копированию компонента pangolin-backup-tools
export PANGOLIN_BACKUP_TOOLS_OLD=x.x.xexport PANGOLIN_BACKUP_TOOLS_VENV_OLD=x.x.xmkdir -p ~/pangolin/cache/backup/pangolin_backup_toolssudo cp -ra /etc/pangolin-backup-tools/backup-tools-env ~/pangolin/cache/backup/pangolin_backup_tools/sudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_backup_tools/ pangolin-backup-tools-$PANGOLIN_BACKUP_TOOLS_OLDsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_backup_tools/ pangolin-backup-tools-venv-$PANGOLIN_BACKUP_TOOLS_VENV_OLD -
Pangolin Pooler:
(Опционально) Действия по резервному копированию компонента Pangolin Pooler
export PANGOLIN_POOLER_OLD=x.x.xmkdir -p ~/pangolin/cache/backup/pangolin_poolersudo cp -ra {path_to_service}/pangolin-pooler.service ~/pangolin/cache/backup/pangolin_pooler/sudo cp -ra /etc/pangolin-pooler/pangolin-pooler.ini ~/pangolin/cache/backup/pangolin_pooler/sudo cp -ra /etc/pangolin-pooler/userlist.txt ~/pangolin/cache/backup/pangolin_pooler/sudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_pooler/ pangolin-pooler-$PANGOLIN_POOLER_OLD -
Pangolin Manager:
(Опционально) Действия по резервному копированию компонента Pangolin Manager
export PANGOLIN_MANAGER_OLD=x.x.xexport PANGOLIN_MANAGER_VENV_OLD=x.x.xexport PGDATA=/pgdata/xxmkdir -p ~/pangolin/cache/backup/pangolin_managersudo cp -ra {path_to_service}/pangolin-manager.service ~/pangolin/cache/backup/pangolin_manager/sudo cp -ra /etc/pangolin-manager/postgres.yml ~/pangolin/cache/backup/pangolin_manager/sudo cp -ra $PGDATA/data/patroni.dynamic.json ~/pangolin/cache/backup/pangolin_manager/sudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_manager/ pangolin-manager-$PANGOLIN_MANAGER_OLDsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_manager/ pangolin-manager-venv-$PANGOLIN_MANAGER_VENV_OLD -
pangolin-dbms:(Обязательно) Действия по резервному копированию основного компонента СУБД
export PANGOLIN_VER_OLD=x.x.xexport PGDATA=/pgdata/xxexport PANGOLIN_DBMS_MAJOR_OLD=xmkdir -p ~/pangolin/cache/backup/pangolin_dbmssudo cp -ra {path_to_service}/pangolin-dbms.service ~/pangolin/cache/backup/pangolin_dbms/ # для конфигурации без Pangolin Managersudo cp -ra $PGDATA/data/*.conf ~/pangolin/cache/backup/pangolin_dbms/sudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_dbms/ pangolin-dbms-$PANGOLIN_DBMS_MAJOR_OLD-$PANGOLIN_VER_OLDsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_dbms/ pangolin-dbms-$PANGOLIN_DBMS_MAJOR_OLD-client-$PANGOLIN_VER_OLD -
pangolin-timescaledb:(Опционально) Действия по резервному копированию расширения timescaledb
export PANGOLIN_TIMESCALEDB_OLD=x.x.xexport PANGOLIN_DBMS_MAJOR_OLD=xmkdir -p ~/pangolin/cache/backup/pangolin_timescaledbsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_timescaledb/ pangolin-timescaledb-$PANGOLIN_DBMS_MAJOR_OLD-apache-$PANGOLIN_TIMESCALEDB_OLD -
pangolin-auth-password:(Опционально) Действия по резервному копированию компонента pangolin-auth-password
export PANGOLIN_VER_OLD=x.x.xmkdir -p ~/pangolin/cache/backup/pangolin_auth_passwordsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_auth_password/ pangolin-auth-password-$PANGOLIN_VER_OLD -
pangolin-tuner:(Опционально) Действия по резервному копированию компонента Pangolin Tuner
export PANGOLIN_TUNER_OLD=x.x.xmkdir -p ~/pangolin/cache/backup/pangolin_tunersudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_tuner/ pangolin-tuner-$PANGOLIN_TUNER_OLD -
pangolin-diagnostic-tool:(Опционально) Действия по резервному копированию компонента pangolin-diagnostic-tool
export PANGOLIN_VER_OLD=x.x.xmkdir -p ~/pangolin/cache/backup/pangolin_diagnostic_toolsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_diagnostic_tool/ pangolin-diagnostic-tool-$PANGOLIN_VER_OLD -
Опциональные компоненты:
(Опционально) Действия по резервному копированию компонентов libpq
export PANGOLIN_VER_OLD=x.x.xexport PANGOLIN_DBMS_MAJOR_OLD=xsudo mkdir -p ~/pangolin/cache/backup/pangolin_dbms_libpq ~/pangolin/cache/backup/pangolin_dbms_libpq_devsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_dbms_libpq/ pangolin-dbms-$PANGOLIN_DBMS_MAJOR_OLD-libpq-$PANGOLIN_VER_OLDsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_dbms_libpq_dev/ pangolin-dbms-$PANGOLIN_DBMS_MAJOR_OLD-libpq-dev-$PANGOLIN_VER_OLD -
pangolin-untrustedрасширения:(Опционально) Действия по резервному копированию Untrusted-расширений
export PANGOLIN_VER_OLD=x.x.xexport PANGOLIN_DBMS_MAJOR_OLD=xsudo mkdir -p ~/pangolin/cache/backup/pangolin_untrustedsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_untrusted/ pangolin-dbms-$PANGOLIN_DBMS_MAJOR_OLD-<ext_name>-$PANGOLIN_VER_OLDГде
ext_name- название untrusted-расширения. -
pangolin-externalрасширения:(Опционально) Действия по резервному копированию сторонних расширений
export PANGOLIN_DBMS_MAJOR_OLD=xexport PANGOLIN_POSTGIS_OLD=x.x.xexport PANGOLIN_PGROUTING_OLD=x.x.xexport PANGOLIN_PG_BACKGROUND_OLD=x.xsudo mkdir -p ~/pangolin/cache/backup/pangolin_externalsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_external/ {postgis_pkg_name}-$PANGOLIN_POSTGIS_OLDsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_external/ {pgrouting_pkg_name}-$PANGOLIN_PGROUTING_OLDsudo dnf download --downloadonly --destdir=~/pangolin/cache/backup/pangolin_external/ {pg_background_pkg_name}-$PANGOLIN_PG_BACKGROUND_OLDГде:
{postgis_pkg_name}– наименование исходного пакета стороннего расширенияPostGIS(формат:pangolin-postgisилиpangolin-postgis-$PANGOLIN_DBMS_MAJOR_OLD);{pgrouting_pkg_name}– наименование исходного пакета стороннего расширенияpgrouting(формат: pangolin-pgrouting илиpangolin-pgrouting-$PANGOLIN_DBMS_MAJOR_OLD);{pg_background_pkg_name}– наименование исходного пакета стороннего расширенияpg_background(формат:pangolin-pg-backgroundилиpangolin-pg-background-$PANGOLIN_DBMS_MAJOR_OLD).
Где {path_to_service} – актуальный путь до service-файла компонента. В случае наличия функциональности «Отказ от root» это может быть путь /home/postgres/.config/systemd/user/. В случае отсутствия такой функциональности это может быть /usr/lib/systemd/system/, /lib/systemd/system/ или /etc/systemd/system/.
Шаг 2. Подготовка к обновлению (обязательно)
Подготовьте дистрибутив и проверьте необходимость обновления системных данных каталога. Корректное выполнение этого этапа определяет необходимость последующих действий по обновлению.
Действия по подготовке СУБД
-
Скачайте дистрибутив в рабочий каталог и распакуйте его. Далее по инструкции путь к компонентам дистрибутива будет формироваться по
~/pangolin:mkdir -p ~/pangolintar -xzvf pangolin.tar.gz -C ~/pangolin -
Перед началом обновления убедитесь, в необходимости обновления системных данных каталога. Запустите команду из примера ниже на узлах с СУБД:
СведенияКлючи
-tи-T, в режимеinfo, следует использовать с директорией/директориями старой версии. Подробнее о ключах, смотрите в справке к утилитеinplace_upgradeexport PANGOLIN_VER=x.x.xsudo mkdir -p /opt/pangolin-cache/pg_inplace_upgrade/{backup,log,dump}sudo chmod 700 -R /opt/pangolin-cachesudo chown postgres:postgres -R /opt/pangolin-cachesudo dnf install ~/pangolin/utilities/pangolin-inplace-upgrade-$PANGOLIN_VER-sberlinux9.x86_64.rpmsudo -iu postgresexport PANGOLIN_VER=x.x.xexport PANGOLIN_VER_OLD=x.x.xexport PGPASSWORD=<password for db user>cd /opt/pangolin-utilities/bin/pg_inplace_upgrade./inplace_upgrade.sh info -n $PANGOLIN_VER_OLD -N $PANGOLIN_VER -s /opt/pangolin-utilities/bin/pg_inplace_upgrade -B /opt/pangolin-cache/pg_inplace_upgrade/backup -d $PGDATA -l /opt/pangolin-cache/pg_inplace_upgrade/log -p $PGPORT -h 127.0.0.1 -u postgres -b postgres -m /opt/pangolin-cache/pg_inplace_upgrade/dump -t $PGHOME/bin -T $PGHOME_CLIENT/bin -P $PGPASSWORDВ случае, если необходимо произвести обновление системных данных каталога, будет выведено сообщение:
INFO: Location of update_catalog_version utility: /opt/pangolin-utilities/bin/pg_inplace_upgrade/update_catalog_versionINFO: The log-file containing postgresql logs produced during catalog update: /pgarclogs/pg_inplace_upgrade/log/postgres_updade.logINFO: The summarized catalog update report: /pgarclogs/pg_inplace_upgrade/log/report.logINFO: ======= START INPLACE_UPGRADE IN INFO MODE =======INFO: ----------- Checking for the absence of previous launches -----------INFO: Checking for the absence of previous launches..... OKINFO: ----------- Initial update analysis -----------INFO: CATALOG_VERSION_NO_OLD: 202310091INFO: Following directories will be searched to find sql-scripts applicable in this run:INFO: /opt/pangolin-utilities/bin/pg_inplace_upgrade/update_catalog_version/sql_upgrade_6xx/6.4.0/INFO: Version: 6.4.0 CATALOG_VERSION_NO_NEW: 202409231INFO: Initial update analysis........................... OKINFO: ----------- Update CATALOG_VERSION_NO -----------INFO: update_catalog_version: The new catalog version is the same as the current one.INFO: Update CATALOG_VERSION_NO......................... OKINFO: ----------- Read all catalog update SQL-scripts -----------INFO: Read all catalog update SQL-scripts............... OKINFO: ----------- Extract info about users tablespaces -----------INFO: paths: /opt/pangolin-utilities/bin/pg_inplace_upgrade/tmp_check/test_dbINFO: version: PostgreSQL 18.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Platform V SberLinux 9), 64-bitINFO: Extract info about users tablespaces.............. OKINFO: Free space in folder /opt/pangolin_cache/pg_inplace_upgrade/log/backup: 41217445888INFO: Folder /opt/pangolin_cache/pg_inplace_upgrade/log/backup is located in filesystem /dev/mapper/vg_root-lv_rootINFO: Following databases are about to be upgraded: postgrestemplate1template0<Другие базы данных>INFO: The size of backup files for postgres: 9822208 bytesINFO: The size of backup files for template1: 9822208 bytesINFO: We assume the size of template0 to be equal to template1: 9822208 bytes<Оценка бэкапа других баз данных>INFO: The backup size of pg_wal files: 16777216 bytesINFO: The total estimated size for backup files in all databases: 46243840INFO: Free space in folder /opt/pangolin_cache/pg_inplace_upgrade: 41217208320INFO: Folder /opt/pangolin_cache/pg_inplace_upgrade is located in filesystem /dev/mapper/vg_root-lv_rootINFO: Make dump for postgresINFO: ----------- Dump check size_postgres -----------INFO: Estimated size of the pg_catalog sql-dump of postgres database: 6507317INFO: Dump check size_postgres.......................... OKINFO: Make dump for template1INFO: ----------- Dump check size_template1 -----------INFO: Estimated size of the pg_catalog sql-dump of template1 database: 6507317INFO: We assume the dump size of template0 to be equal to template1: 6507317 bytesINFO: Dump check size_template1......................... OKINFO: Make dump for template0INFO: ----------- Dump check size_template0 -----------INFO: The estimation of dump for template0 is skippedINFO: Dump check size_template0......................... OK<Оценка дампа других баз данных>INFO: The total estimated size required for dump files in all databases: 39043902INFO: Directories /opt/pangolin_cache/pg_inplace_upgrade/log/backup and /opt/pangolin_cache/pg_inplace_upgrade are in the same filesystem /dev/mapper/vg_root-lv_root. All backup and dumps size: 85287742INFO:INFO mode finished with Success. Update required.===================================================Если нет необходимости в обновлении системных данных каталога, будет выведено сообщение:
INFO: Location of update_catalog_version utility: /opt/pangolin-utilities/bin/pg_inplace_upgrade/update_catalog_versionINFO: The log-file containing postgresql logs produced during catalog update: /pgarclogs/pg_inplace_upgrade/log/postgres_updade.logINFO: The summarized catalog update report: /pgarclogs/pg_inplace_upgrade/log/report.logINFO: ======= START INPLACE_UPGRADE IN INFO MODE =======INFO: ----------- Initial update analysis -----------INFO: CATALOG_VERSION_NO_OLD: 202409231INFO: Following directories will be searched to find sql-scripts applicable in this run:INFO: /opt/pangolin-utilities/bin/pg_inplace_upgrade/sql_upgrade_6xx/6.4.0/INFO: Version: 6.4.0 CATALOG_VERSION_NO_NEW: 202409231INFO: Initial update analysis........................... OKINFO:INFO mode finished with Success. Update not required.===================================================Если в процессе работы утилиты что-то пошло не так, будет выведено сообщение:
INFO: Location of update_catalog_version utility: /opt/pangolin-utilities/bin/pg_inplace_upgrade/update_catalog_versionINFO: The log-file containing postgresql logs produced during catalog update: /pgarclogs/pg_inplace_upgrade/log/postgres_updade.logINFO: The summarized catalog update report: /pgarclogs/pg_inplace_upgrade/log/report.logINFO: ======= START INPLACE_UPGRADE IN INFO MODE =======INFO: ----------- Initial update analysis -----------INFO: CATALOG_VERSION_NO_OLD: 202310091INFO: Following directories will be searched to find sql-scripts applicable in this run:INFO: /opt/pangolin-utilities/bin/pg_inplace_upgrade/sql_upgrade_6xx/6.2.0/INFO: Version: 6.2.0 CATALOG_VERSION_NO_NEW: 202310091INFO: /opt/pangolin-utilities/bin/pg_inplace_upgrade/sql_upgrade_6xx/6.3.0/INFO: Version: 6.3.0 CATALOG_VERSION_NO_NEW: 202310091INFO: /opt/pangolin-utilities/bin/pg_inplace_upgrade/sql_upgrade_6xx/6.4.0/INFO: Version: 6.4.0 CATALOG_VERSION_NO_NEW: 202409231ERROR: File /opt/pangolin-utilities/bin/pg_inplace_upgrade/sql_upgrade_6xx/6.4.1/CATALOG_VERSION was not foundINFO: Initial update analysis........................... FAILINFO:INFO mode finished with Error.===================================================СведенияДалее по инструкции выполнение «Шаг 20» необходимо только в том случае, если утилита
inplace_upgrade.shвернула сообщение на данном шаге сообщение формата:«INFO mode finished with Success. Update required». -
Для конфигурации с Pangolin Manager. С помощью функции
edit-configпод пользователемpostgresпроизведите добавление временного слота репликацииtmp_update_slotв конфигурацию DCS:sudo -iu postgres/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml edit-config$PGHOME_CLIENT/bin/psql -c "SELECT * FROM pg_create_physical_replication_slot('tmp_update_slot', 'TRUE');"exitПример содержимого с временным слотом репликации:
ignore_slots:- name: tmp_update_slottype: physical
Шаг 3. Остановка компонентов СУБД Pangolin (обязательно)
Остановите все компоненты СУБД Pangolin перед обновлением. Этот шаг обязателен для предотвращения повреждения данных и корректного выполнения процесса обновления.
Действия по остановке компонентов СУБД
-
В случае конфигурации с Pangolin Manager введите компонент в режим паузы на мастере:
sudo -iu postgres/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml edit-config --set 'pause=true' --forceexit -
Остановите все компоненты СУБД Pangolin. Перед остановкой необходимо выполнить команду
CHECKPOINTна мастере. В случае кластерной конфигурации действия по остановке произведите сначала на мастере, затем на реплике, после на арбитре:- Без функциональности «Отказ от
root» - С включенной функциональностью «Отказ от
root»
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
- Для конфигурации без Pangolin Manager
-
на мастере и реплике:
sudo systemctl stop pangolin-poolersudo systemctl stop pangolin-certs-rotatesudo systemctl stop pangolin-auth-reencrypt@postgressudo systemctl stop pangolin-auth-reencrypt@kmadmin_pgsudo systemctl stop pangolin-managersudo -iu postgres$PGHOME/bin/pg_ctl stop -D $PGDATAexit -
на арбитре:
sudo systemctl stop pangolin-certs-rotatesudo systemctl stop pangolin-auth-reencrypt@postgressudo systemctl stop pangolin-auth-reencrypt@kmadmin_pgsudo systemctl stop pangolin-manager
-
на мастере и реплике:
sudo systemctl stop pangolin-poolersudo systemctl stop pangolin-certs-rotatesudo systemctl stop pangolin-auth-reencrypt@postgressudo systemctl stop pangolin-auth-reencrypt@kmadmin_pgsudo systemctl stop pangolin-managersudo systemctl stop etcdsudo -iu postgres$PGHOME/bin/pg_ctl stop -D $PGDATAexit -
на арбитре:
sudo systemctl stop etcd
-
на мастере:
sudo systemctl stop pangolin-poolersudo systemctl stop pangolin-certs-rotatesudo systemctl stop pangolin-auth-reencrypt@postgressudo systemctl stop pangolin-auth-reencrypt@kmadmin_pg# в случае наличия файла `pangolin-dbms.service`:sudo systemctl stop pangolin-dbms# в случае отсутствия файла `pangolin-dbms.service`:sudo -iu postgres$PGHOME/bin/pg_ctl stop -D $PGDATAexit
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
- Для конфигурации без Pangolin Manager
-
на мастере и реплике:
sudo -iu postgressystemctl --user stop pangolin-poolersystemctl --user stop pangolin-certs-rotatesystemctl --user stop pangolin-auth-reencryptsystemctl --user stop pangolin-manager$PGHOME/bin/pg_ctl stop -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user stop pangolin-auth-reencryptexit -
на арбитре:
sudo -iu postgressystemctl --user stop pangolin-certs-rotatesystemctl --user stop pangolin-auth-reencryptsystemctl --user stop pangolin-managerexitsudo -iu kmadmin_pgXDG_RUNTIME_DIR=/run/user/$(id -u) DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user stop pangolin-auth-reencryptexit
-
на мастере и реплике:
sudo -iu postgressystemctl --user stop pangolin-poolersystemctl --user stop pangolin-certs-rotatesystemctl --user stop pangolin-auth-reencryptsystemctl --user stop pangolin-managersystemctl --user stop etcd$PGHOME/bin/pg_ctl stop -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user stop pangolin-auth-reencryptexit -
на арбитре:
sudo -iu postgressystemctl --user stop etcdexit
-
на мастере:
sudo -iu postgressystemctl --user stop pangolin-poolersystemctl --user stop pangolin-certs-rotatesystemctl --user stop pangolin-auth-reencrypt# в случае наличия файла `pangolin-dbms.service`:systemctl --user stop pangolin-dbms# в случае отсутствия файла `pangolin-dbms.service`:$PGHOME/bin/pg_ctl stop -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user stop pangolin-auth-reencryptexit
- Без функциональности «Отказ от
-
Проверьте, что все компоненты корректно остановлены:
sudo ps aux | grep -E "pangolin-pooler|pangolin-manager|pangolin-dbms|pangolin-certs-rotate|pangolin-auth-reencrypt|etcd" | grep -v grepЕсли команда в пункте 3 вернула не пустой результат, то выполните следующее:
sudo kill -9 <pid>sudo ps aux | grep -E "pangolin-pooler|pangolin-manager|pangolin-dbms|pangolin-certs-rotate|pangolin-auth-reencrypt|etcd" | grep -v grep
Шаг 4. Обновление компонента pangolin-auth-reencrypt (опционально)
Действия по обновлению компонента pangolin-auth-reencrypt
Произведите обновление пакета компонента:
export PANGOLIN_VER=x.x.x
sudo dnf update -y ~/pangolin/utilities/pangolin-auth-reencrypt-$PANGOLIN_VER-sberlinux9.x86_64.rpm
В случае конфигурации с DCS, произведите дополнительно обновление на узле арбитр.
Шаг 5. Обновление компонента pangolin-certs-rotate (опционально)
Действия по обновлению компонента pangolin-certs-rotate
Произведите обновление пакета компонента:
export PANGOLIN_VER=x.x.x
sudo dnf update -y ~/pangolin/utilities/pangolin-certs-rotate-$PANGOLIN_VER-sberlinux9.x86_64.rpm
В случае конфигурации с DCS, произведите дополнительно обновление на узле арбитр.
Шаг 6. Обновление компонента безопасности pangolin-security-utilities (опционально)
Действия по обновлению компонента pangolin-security-utilities
-
Произведите обновление пакета компонента:
export PANGOLIN_VER=x.x.xsudo dnf update -y ~/pangolin/utilities/pangolin-security-utilities-$PANGOLIN_VER-sberlinux9.x86_64.rpmВнимание!В случае конфигурации с DCS, произведите дополнительно обновление на узле арбитр.
-
Произведите проверку файла
secret_dump_key.binна мастере и на реплике:sudo ls -la /etc/pangolin-security-utilities/secret_dump_key.binВнимание!Выполните следующие шаги только при отсутствии файла
secret_dump_key.bin. При наличии — повторное создание не требуется и дальнейшие действия не выполняются, переходите к шагу 7.При отсутствии файла
secret_dump_key.binвыполните:- Для конфигурации без Pangolin Manager
- Для конфигурации с Pangolin Manager
-
С помощью утилиты
pg_dump_generate_secret_fileсоздайте файл для хранения ключа засекречивания:sudo /opt/pangolin-security-utilities/bin/pg_dump_generate_secret_file
-
С помощью утилиты
generate_encryption_keyсоздайте ключ засекречивания, который далее будет использоваться для создания файла с ключом засекречивания:sudo /opt/pangolin-security-utilities/bin/generate_encryption_key -
Создайте файл для хранения ключа засекречивания:
sudo /opt/pangolin-security-utilities/bin/pg_dump_generate_secret_file -t BASE64 -m -
На запрос
Enter secret keyвведите сгенерированный в пункте 1 ключ.
Шаг 7. Обновление компонента pangolin-diagnostic-tool (опционально)
Действия по обновлению компонента pangolin-diagnostic-tool
Произведите обновление пакета компонента:
export PANGOLIN_VER=x.x.x
sudo dnf update -y ~/pangolin/utilities/pangolin-diagnostic-tool-$PANGOLIN_VER-sberlinux9.x86_64.rpm
Шаг 8. Обновление компонента резервного копирования pangolin-backup-tools (опционально)
Действия по обновлению компонента pangolin-backup-tools
-
Произведите обновление обязательной зависимости (
pangolin-backup-tools-venv) компонента:tar -xzf ~/pangolin/3rdparty/3rdparty.tar.gz -C ~/pangolin/3rdparty/export PANGOLIN_BACKUP_TOOLS_VENV=x.x.xsudo dnf update -y ~/pangolin/3rdparty/pangolin-backup-tools-venv/pangolin-backup-tools-venv-$PANGOLIN_BACKUP_TOOLS_VENV-sberlinux9.x86_64.rpm -
Произведите обновление компонента:
export PANGOLIN_BACKUP_TOOLS=x.x.xsudo dnf update -y ~/pangolin/pangolin-backup-tools-$PANGOLIN_BACKUP_TOOLS-sberlinux9.x86_64.rpm -
Актуализируйте конфигурационный файл
backup-tools-envсогласно шаблону ниже:# PATH, used for access to required executable files, default value: "${PATH}:{PGHOME}/bin/"PATH="${PATH}:$PGHOME/bin/"# path to PGHOME, default value: "/opt/pangolin-backup-tools/bin"PGHOME="/opt/pangolin-backup-tools"# path to python libraries, required for manage_backup.bin, default value: "/opt/pangolin-backup-tools/lib/python3/site-packages"PYTHONPATH="/opt/pangolin-backup-tools/lib/python3/site-packages"# path to libraries, required for executable files, default value: "/opt/pangolin-backup-tools/lib"LD_LIBRARY_PATH="/opt/pangolin-backup-tools/lib"# path to plugins libraries, default value: "/opt/pangolin-backup-tools/lib"PG_PLUGINS_PATH="/opt/pangolin-backup-tools/lib"# Pangolin DBMS server IP, default value: "127.0.0.1"ARG_KEY_DBMS_SERVER_IP="127.0.0.1"# Pangolin DBMS port, default value: "5433"ARG_KEY_DBMS_SERVER_PORT="5433"# user used for access to database, default value: "backup_user"ARG_KEY_DBMS_CONNECT_USER="backup_user"# database to connect, default value: "postgres"ARG_KEY_DBMS_CONNECT_DATA_BASE="postgres"# path to backup storage, default value: "/pgarclogs"ARG_KEY_DBMS_CONNECT_BACKUP_DIR="/pgarclogs/07"# password to connect to Pangolin DBMS, default value: 'sample_password'# cluster name, default value: "clustername"PGINSTANCE="$CLUSTERNAME"# WAL archives listWALSTATE_FILE="$ARG_KEY_DBMS_CONNECT_BACKUP_DIR/wals_to_delete"# Log fileLOG_FILE="$ARG_KEY_DBMS_CONNECT_BACKUP_DIR/archive.log"# path to script, used for creating backup files, default value: "/opt/pangolin-backup-tools/bin/manage_backup.sh"MANAGE_BACKUP_SCRIPT="/opt/pangolin-backup-tools/bin/manage_backup.sh"# to checkpoint before backup DBPG_FAST_CHECKPOINT=False# setting up of connection stringPANGOLIN_BACKUP_TOOLS_ARGS="$PANGOLIN_BACKUP_TOOLS_ARGS --host $ARG_KEY_DBMS_SERVER_IP"PANGOLIN_BACKUP_TOOLS_ARGS="$PANGOLIN_BACKUP_TOOLS_ARGS -p $ARG_KEY_DBMS_SERVER_PORT"PANGOLIN_BACKUP_TOOLS_ARGS="$PANGOLIN_BACKUP_TOOLS_ARGS -U $ARG_KEY_DBMS_CONNECT_USER"PANGOLIN_BACKUP_TOOLS_ARGS="$PANGOLIN_BACKUP_TOOLS_ARGS -d $ARG_KEY_DBMS_CONNECT_DATA_BASE"PANGOLIN_BACKUP_TOOLS_ARGS="$PANGOLIN_BACKUP_TOOLS_ARGS -B $ARG_KEY_DBMS_CONNECT_BACKUP_DIR"# environment variables to launch manage backupexport PATHexport PGHOMEexport PYTHONPATHexport LD_LIBRARY_PATHexport PG_PLUGINS_PATHexport PG_FAST_CHECKPOINT
Шаг 9. Обновление компонента Pangolin Pooler (опционально)
Действия по обновлению компонента Pangolin Pooler
Произведите обновление пакета компонента:
export PANGOLIN_POOLER=x.x.x
sudo dnf update -y ~/pangolin/pangolin-pooler-$PANGOLIN_POOLER-sberlinux9.x86_64.rpm
Шаг 10. Обновление компонента Pangolin Manager (опционально)
Действия по обновлению компонента Pangolin Manager
-
Произведите обновление обязательной зависимости (
pangolin-manager-venv) компонента:tar -xzf ~/pangolin/3rdparty/3rdparty.tar.gz -C ~/pangolin/3rdparty/export PANGOLIN_MANAGER_VENV=x.x.xsudo dnf update -y ~/pangolin/3rdparty/pangolin-manager-venv/pangolin-manager-venv-$PANGOLIN_MANAGER_VENV-sberlinux9.x86_64.rpm -
Произведите обновление компонента:
export PANGOLIN_MANAGER=x.x.xsudo dnf update -y ~/pangolin/pangolin-manager-$PANGOLIN_MANAGER-sberlinux9.x86_64.rpm
В случае конфигурации с DCS, произведите дополнительно обновление на узле арбитр.
Шаг 11. Обновление компонента серверной части СУБД Pangolin (обязательно)
Действия по обновлению серверной части СУБД
Произведите обновление пакета компонента:
export PANGOLIN_VER=x.x.x
export PANGOLIN_VER_OLD=x.x.x
export PANGOLIN_DBMS_MAJOR=x
sudo dnf remove -y pangolin-dbms-$PANGOLIN_DBMS_MAJOR-$PANGOLIN_VER_OLD
sudo dnf install -y ~/pangolin/pangolin-dbms-$PANGOLIN_DBMS_MAJOR-$PANGOLIN_VER-sberlinux9.x86_64.rpm
Шаг 12. Обновление компонента клиентской части СУБД Pangolin (обязательно)
Действия по обновлению клиентской части СУБД
Произведите обновление пакета компонента:
export PANGOLIN_VER=x.x.x
export PANGOLIN_DBMS_MAJOR=x
sudo dnf update -y ~/pangolin/pangolin-dbms-$PANGOLIN_DBMS_MAJOR-client-$PANGOLIN_VER-sberlinux9.x86_64.rpm
Шаг 14. Обновление компонента pangolin-auth-password (опционально)
Действия по обновлению компонента pangolin-auth-password
Произведите обновление пакета компонента:
export PANGOLIN_VER=x.x.x
sudo dnf update -y ~/pangolin/utilities/pangolin-auth-password-$PANGOLIN_VER-sberlinux9.x86_64.rpm
Шаг 15. Обновление компонента Pangolin Tuner (опционально)
Действия по обновлению компонента Pangolin Tuner
Произведите обновление пакета компонента:
export PANGOLIN_TUNER=x.x.x
sudo dnf update -y ~/pangolin/utilities/pangolin-tuner-$PANGOLIN_TUNER-sberlinux9.x86_64.rpm
Шаг 16. Обновление опциональных пакетов (опционально)
Действия по обновлению пакетов libpq
Произведите обновление опциональных пакетов:
export PANGOLIN_DBMS_MAJOR=x
export PANGOLIN_VER=x.x.x
sudo dnf update -y ~/pangolin/pangolin-dbms-$PANGOLIN_DBMS_MAJOR-libpq-$PANGOLIN_VER-sberlinux9.x86_64.rpm
sudo dnf update -y ~/pangolin/pangolin-dbms-$PANGOLIN_DBMS_MAJOR-libpq-dev-$PANGOLIN_VER-sberlinux9.x86_64.rpm
Шаг 17. Обновление пакетов pangolin-untrusted расширений (опционально)
Выполните данный шаг, если в СУБД используются untrusted-расширения. Список данных расширений и подробную информацию о них можно прочитать в разделе «Информация по Untrusted-расширениям».
Действия по обновлению пакетов Untrusted-расширений
-
Распакуйте архив, содержащий untrusted-расширения:
tar -xzf ~/pangolin/untrusted/untrusted.tar.gz -C ~/pangolin/untrusted/ -
Произведите обновление пакетов расширений:
export PANGOLIN_DBMS_MAJOR=xexport PANGOLIN_VER=x.x.xsudo dnf install -y ~/pangolin/untrusted/pangolin-dbms-$PANGOLIN_DBMS_MAJOR-<ext_name>-$PANGOLIN_VER-sberlinux9.x86_64.rpmГде
ext_name- название untrusted-расширения.
Шаг 18. Обновление пакетов сторонних расширений (опционально)
Выполните данный шаг, если в СУБД используются сторонние расширения. Список данных расширений и подробную информацию о них можно прочитать в разделе postgis. Поддержка геоданных и pg_background. Запуск команд в фоновом режиме.
Действия по обновлению пакетов сторонних расширений
-
Произведите обновление пакетов сторонних расширений:
export PANGOLIN_POSTGIS=x.x.xexport PANGOLIN_PGROUTING=x.x.xexport PANGOLIN_PG_BACKGROUND=x.xexport PANGOLIN_POSTGIS_RELEASE=x.x.xexport PANGOLIN_PGROUTING_RELEASE=x.x.xexport PANGOLIN_PG_BACKGROUND_RELEASE=x.x.xexport PANGOLIN_DBMS_MAJOR=xsudo dnf install -y ~/pangolin/3rdparty/postgis/pangolin-postgis-$PANGOLIN_DBMS_MAJOR-$PANGOLIN_POSTGIS-$PANGOLIN_POSTGIS_RELEASE.sberlinux9.x86_64.rpmsudo dnf install -y ~/pangolin/3rdparty/pgrouting/pangolin-pgrouting-$PANGOLIN_DBMS_MAJOR-$PANGOLIN_PGROUTING.sberlinux9.x86_64.rpmsudo dnf install -y ~/pangolin/3rdparty/pg_background/pangolin-pg-background-$PANGOLIN_DBMS_MAJOR-$PANGOLIN_PG_BACKGROUND.sberlinux9.x86_64.rpm -
Актуализируйте путь в конфигурационном файле к динамическим библиотекам для корректной работы сторонних расширений.
dynamic_library_pathдолжен содержать обязательное значение/opt/pangolin-extensions/{base_version}/libв первом приоритете. При необходимости, добавить через знак:исходные значения параметра. Пример:-
Для конфигурации без Pangolin Manager. Отредактируйте конфигурационный файл
postgresql.conf:dynamic_library_path = '/opt/pangolin-extensions/{base_version}/lib:$libdir' -
Для конфигурации c Pangolin Manager. Отредактируйте конфигурационный файл
postgres.yml:postgresql:parameters:dynamic_library_path: "/opt/pangolin-extensions/{base_version}/lib:$libdir"
Где
{base_version}– базовая версия продукта (текущая: 8). -
-
Добавьте в конфигурационном файле параметр
extension_control_pathс путем до.controlфайлов для корректной работы сторонних расширений. Пример:-
Для конфигурации без Pangolin Manager. Отредактируйте конфигурационный файл
postgresql.conf:extension_control_path = '/opt/pangolin-extensions/{base_version}/share' -
Для конфигурации c Pangolin Manager. Отредактируйте конфигурационный файл
postgres.yml:postgresql:parameters:extension_control_path: "/opt/pangolin-extensions/{base_version}/share"
Где
{base_version}– базовая версия продукта (текущая: 8). -
Шаг 19. Дополнительные действия (обязательно)
Этот шаг обязателен для корректного выполнения процесса обновления.
Действия по подготовке к запуску утилиты обновления
Актуализируйте версии в файле dynmotd.sh:
export PANGOLIN_MANAGER=x.x.x
export PANGOLIN_MANAGER_OLD=x.x.x
export PANGOLIN_FULL_VER=0x.00x.0x
export PANGOLIN_FULL_VER_OLD=0x.00x.0x
sudo sed -i "s/$PANGOLIN_MANAGER_OLD/$PANGOLIN_MANAGER/g" /usr/local/sbin/dynmotd.sh
sudo sed -i "s/$PANGOLIN_FULL_VER_OLD/$PANGOLIN_FULL_VER/g" /usr/local/sbin/dynmotd.sh
Произведите дополнительно данные действия на узле арбитр.
Шаг 20. Запуск утилиты обновления системных данных каталога СУБД Pangolin (обязательно)
Выполните данный шаг, если утилита inplace_upgrade.sh вернула сообщение на «Шаге 2»: «INFO mode finished with Success. Update required».
Действия по запуску утилиты обновления системных данных каталога
-
Заблокируйте трафик на всех узлах СУБД, убедитесь в отсутствии активных внешних подключений, в течение всего процесса обновления.
-
При помощи текстового редактора добавьте в конец конфигурационного файла
$PGDATA/postgresql.confвременные значения на узлах с СУБД под пользователемpostgres:synchronous_commit = 'off' #tmp_lineautovacuum = 'off' #tmp_linecron.database_name = 'template1' #tmp_line -
Произведите запуск обновления системных данных на мастере:
sudo -iu postgresexport PANGOLIN_VER=x.x.xexport PANGOLIN_VER_OLD=x.x.xexport PGPASSWORD=<password for db user>cd /opt/pangolin-utilities/bin/pg_inplace_upgrade./inplace_upgrade.sh update -n $PANGOLIN_VER_OLD -N $PANGOLIN_VER -s /opt/pangolin-utilities/bin/pg_inplace_upgrade -B /opt/pangolin-cache/pg_inplace_upgrade/backup -d $PGDATA -l /opt/pangolin-cache/pg_inplace_upgrade/log -p $PGPORT -h 127.0.0.1 -u postgres -b postgres -m /opt/pangolin-cache/pg_inplace_upgrade/dump -t $PGHOME/bin -T $PGHOME_CLIENT/bin -D -k -P $PGPASSWORDexitОжидаемый успешный результат:
INFO: Update Complete!INFO: ----------- Finish upgrade -----------INFO: Finish upgrade.................................... OKINFO:UPDATE mode finished with Success.===================================================Внимание!В случае, если на мастере обновление прошло неуспешно, произведите восстановление по инструкции «Восстановление после неудачного обновления исполняемых файлов». Все дальнейшие шаги данной инструкции необходимо пропустить.
-
Произведите запуск обновления системных данных на реплике, если кластерная конфигурация и обновления на основном узле прошло успешно:
sudo -iu postgresexport PANGOLIN_VER=x.x.xexport PANGOLIN_VER_OLD=x.x.xexport PGPASSWORD=<password for db user>cd /opt/pangolin-utilities/bin/pg_inplace_upgrade./inplace_upgrade.sh update -n $PANGOLIN_VER_OLD -N $PANGOLIN_VER -s /opt/pangolin-utilities/bin/pg_inplace_upgrade -B /opt/pangolin-cache/pg_inplace_upgrade/backup -d $PGDATA -l /opt/pangolin-cache/pg_inplace_upgrade/log -p $PGPORT -h 127.0.0.1 -u postgres -b postgres -m /opt/pangolin-cache/pg_inplace_upgrade/dump -t $PGHOME/bin -T $PGHOME_CLIENT/bin -r -D -k -P $PGPASSWORDОжидаемый успешный результат:
INFO: Location of update_catalog_version utility: /opt/pangolin-utilities/bin/pg_inplace_upgrade/update_catalog_versionINFO: The log-file containing postgresql logs produced during catalog update: /pgarclogs/pg_inplace_upgrade/log/postgres_updade.logINFO: The summarized catalog update report: /pgarclogs/pg_inplace_upgrade/log/report.logINFO: ======= START INPLACE_UPGRADE IN UPDATE MODE =======INFO: ----------- Initial update analysis -----------INFO: CATALOG_VERSION_NO_OLD: 202310091INFO: Following directories will be searched to find sql-scripts applicable in this run:INFO: /opt/pangolin-utilities/bin/pg_inplace_upgrade/tmp_check/upgrade9/sql_upgrade_6xx/6.4.0/INFO: Version: 6.4.0 CATALOG_VERSION_NO_NEW: 202409231INFO: Initial update analysis........................... OKINFO: ----------- Update CATALOG_VERSION_NO -----------INFO: update_catalog_version: Catalog version has been successfully updated to 202409231.INFO: Update CATALOG_VERSION_NO......................... OKINFO: ----------- Read all catalog update SQL-scripts -----------INFO: Read all catalog update SQL-scripts............... OKINFO: ----------- Update user tablespaces -----------INFO: renamed '/tmp/WDfqY_1Ing/PG_15_202310091' -> '/tmp/WDfqY_1Ing/PG_15_202409231'INFO: Rename directories of user tablespacesINFO: Update user tablespaces........................... OKINFO: Replica is updatedINFO:UPDATE mode finished with Success.===================================================Внимание!В случае, если на реплике обновление прошло неуспешно, произведите восстановление по инструкции «Восстановление после неудачного обновления исполняемых файлов». Все дальнейшие шаги данной инструкции необходимо пропустить.
Шаг 13. Обновление пакета расширения pangolin-timescaledb (опционально)
Действия по обновлению расширения timescaledb
Обновлять расширение pangolin-timescaledb следует строго после «Шаг 20», если на «Шаге 2» потребовалось обновление системных данных каталога! В противном случае, в порядке следования документации.
-
Удалите расширение
timescaledbиз значения параметраshared_preload_librariesв$PGDATA/postgresql.conf -
Произведите обновление пакета расширения:
export PANGOLIN_TIMESCALEDB=x.x.x
export PANGOLIN_DBMS_MAJOR=x
export PANGOLIN_VER=x.x.x
sudo dnf update -y ~/pangolin/timescaledb/pangolin-timescaledb-$PANGOLIN_DBMS_MAJOR-apache-$PANGOLIN_TIMESCALEDB-$PANGOLIN_VER.sberlinux9-x86_64.rpm
Шаг 21. Запуск компонентов СУБД Pangolin (обязательно)
Запустите все компоненты СУБД Pangolin после завершения обновления. Этот шаг обязателен для возобновления работы СУБД и предоставления доступа к данным.
Действия по запуску компонентов СУБД Pangolin
-
Удалите временные переменные из
$PGDATA/postgresql.confна узлах с СУБД:synchronous_commit = 'off' #tmp_lineautovacuum = 'off' #tmp_linecron.database_name = 'template1' #tmp_line -
Запустите компоненты СУБД Pangolin:
- Без функциональности «Отказ от
root» - С включенной функциональностью «Отказ от
root»
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
- Для конфигурации без Pangolin Manager
-
на мастере:
sudo systemctl restart pangolin-poolersudo systemctl restart pangolin-certs-rotatesudo systemctl restart pangolin-auth-reencrypt@postgressudo systemctl restart pangolin-auth-reencrypt@kmadmin_pgsudo systemctl restart pangolin-managersudo -iu postgres$PGHOME/bin/pg_ctl restart -D $PGDATAexit -
на арбитре:
sudo systemctl restart pangolin-certs-rotatesudo systemctl restart pangolin-auth-reencrypt@postgressudo systemctl restart pangolin-auth-reencrypt@kmadmin_pgsudo systemctl restart pangolin-manager
-
на мастере:
sudo systemctl restart pangolin-poolersudo systemctl restart pangolin-certs-rotatesudo systemctl restart pangolin-auth-reencrypt@postgressudo systemctl restart pangolin-auth-reencrypt@kmadmin_pgsudo systemctl restart pangolin-managersudo systemctl restart etcdsudo -iu postgres$PGHOME/bin/pg_ctl restart -D $PGDATAexit -
на арбитре:
sudo systemctl restart etcd
-
на мастере:
sudo systemctl restart pangolin-poolersudo systemctl restart pangolin-certs-rotatesudo systemctl restart pangolin-auth-reencrypt@postgressudo systemctl restart pangolin-auth-reencrypt@kmadmin_pg# в случае наличия файла `pangolin-dbms.service`:sudo systemctl restart pangolin-dbms# в случае отсутствия файла `pangolin-dbms.service`:sudo -iu postgres$PGHOME/bin/pg_ctl restart -D $PGDATAexit
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
- Для конфигурации без Pangolin Manager
-
на мастере:
sudo -iu postgressystemctl --user restart pangolin-poolersystemctl --user restart pangolin-certs-rotatesystemctl --user restart pangolin-auth-reencryptsystemctl --user restart pangolin-manager$PGHOME/bin/pg_ctl restart -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user restart pangolin-auth-reencryptexit -
на арбитре:
sudo -iu postgressystemctl --user restart pangolin-certs-rotatesystemctl --user restart pangolin-auth-reencryptsystemctl --user restart pangolin-managerexitsudo -iu kmadmin_pgXDG_RUNTIME_DIR=/run/user/$(id -u) DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user restart pangolin-auth-reencryptexit
-
на мастере:
sudo -iu postgressystemctl --user restart pangolin-poolersystemctl --user restart pangolin-certs-rotatesystemctl --user restart pangolin-auth-reencryptsystemctl --user restart pangolin-managersystemctl --user restart etcd$PGHOME/bin/pg_ctl restart -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user restart pangolin-auth-reencryptexit -
на арбитре:
sudo -iu postgressystemctl --user restart etcdexit
-
на мастере:
sudo -iu postgressystemctl --user restart pangolin-poolersystemctl --user restart pangolin-certs-rotatesystemctl --user restart pangolin-auth-reencrypt# в случае наличия файла `pangolin-dbms.service`:systemctl --user restart pangolin-dbms# в случае отсутствия файла `pangolin-dbms.service`:$PGHOME/bin/pg_ctl restart -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user restart pangolin-auth-reencryptexit
- Без функциональности «Отказ от
-
Произведите проверку состояния служб:
- Без функциональности «Отказ от
root» - С включенной функциональностью «Отказ от
root»
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
- Для конфигурации без Pangolin Manager
-
на мастере:
sudo systemctl status pangolin-poolersudo systemctl status pangolin-certs-rotatesudo systemctl status pangolin-auth-reencrypt@postgressudo systemctl status pangolin-auth-reencrypt@kmadmin_pgsudo systemctl status pangolin-managersudo -iu postgres$PGHOME/bin/pg_ctl status -D $PGDATAexit -
на арбитре:
sudo systemctl status pangolin-certs-rotatesudo systemctl status pangolin-auth-reencrypt@postgressudo systemctl status pangolin-auth-reencrypt@kmadmin_pgsudo systemctl status pangolin-manager
-
на мастере:
sudo systemctl status pangolin-poolersudo systemctl status pangolin-certs-rotatesudo systemctl status pangolin-auth-reencrypt@postgressudo systemctl status pangolin-auth-reencrypt@kmadmin_pgsudo systemctl status pangolin-managersudo systemctl status etcdsudo -iu postgres$PGHOME/bin/pg_ctl status -D $PGDATAexit -
на арбитре:
sudo systemctl status etcd
-
на мастере:
sudo systemctl status pangolin-poolersudo systemctl status pangolin-certs-rotatesudo systemctl status pangolin-auth-reencrypt@postgressudo systemctl status pangolin-auth-reencrypt@kmadmin_pg# в случае наличия файла `pangolin-dbms.service`:sudo systemctl status pangolin-dbms# в случае отсутствия файла `pangolin-dbms.service`:sudo -iu postgres$PGHOME/bin/pg_ctl status -D $PGDATAexit
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
- Для конфигурации без Pangolin Manager
-
на мастере:
sudo -iu postgressystemctl --user status pangolin-poolersystemctl --user status pangolin-certs-rotatesystemctl --user status pangolin-auth-reencryptsystemctl --user status pangolin-manager$PGHOME/bin/pg_ctl status -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user status pangolin-auth-reencryptexit -
на арбитре:
sudo -iu postgressystemctl --user status pangolin-certs-rotatesystemctl --user status pangolin-auth-reencryptsystemctl --user status pangolin-managerexitsudo -iu kmadmin_pgXDG_RUNTIME_DIR=/run/user/$(id -u) DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status pangolin-auth-reencryptexit
-
на мастере:
sudo -iu postgressystemctl --user status pangolin-poolersystemctl --user status pangolin-certs-rotatesystemctl --user status pangolin-auth-reencryptsystemctl --user status pangolin-managersystemctl --user status etcd$PGHOME/bin/pg_ctl status -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user status pangolin-auth-reencryptexit -
на арбитре:
sudo -iu postgressystemctl --user status etcdexit
-
на мастере:
sudo -iu postgressystemctl --user status pangolin-poolersystemctl --user status pangolin-certs-rotatesystemctl --user status pangolin-auth-reencrypt# в случае наличия файла `pangolin-dbms.service`:systemctl --user status pangolin-dbms# в случае отсутствия файла `pangolin-dbms.service`:$PGHOME/bin/pg_ctl status -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user status pangolin-auth-reencryptexit
- Без функциональности «Отказ от
-
Для конфигурации с Pangolin Manager. Выведите компонент из режима паузы на мастере, дождитесь активного состояния и статуса основного узла (мастера) –
Leader:sudo -iu postgres/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml edit-config --set 'pause=false' --force/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml listexit -
Для конфигурации с Pangolin Manager на мастере включите синхронизацию:
sudo -iu postgres/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml show-config | grep synchronous > save_old_dcs_value.txt/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml edit-config --set 'synchronous_mode=true' --force/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml edit-config --set 'synchronous_mode_strict=true' --forceexit -
Для конфигурации с Pangolin Manager. Произведите запуск компонентов Pangolin на реплике:
- Без функциональности «Отказ от
root» - С включенной функциональностью «Отказ от
root»
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
-
на реплике:
sudo systemctl restart pangolin-poolersudo systemctl restart pangolin-certs-rotatesudo systemctl restart pangolin-auth-reencrypt@postgressudo systemctl restart pangolin-auth-reencrypt@kmadmin_pgsudo systemctl restart pangolin-managersudo -iu postgres$PGHOME/bin/pg_ctl restart -D $PGDATAexit
-
на реплике:
sudo systemctl restart pangolin-poolersudo systemctl restart pangolin-certs-rotatesudo systemctl restart pangolin-auth-reencrypt@postgressudo systemctl restart pangolin-auth-reencrypt@kmadmin_pgsudo systemctl restart pangolin-managersudo systemctl restart etcdsudo -iu postgres$PGHOME/bin/pg_ctl restart -D $PGDATAexit
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
-
на реплике:
sudo -iu postgressystemctl --user restart pangolin-poolersystemctl --user restart pangolin-certs-rotatesystemctl --user restart pangolin-auth-reencryptsystemctl --user restart pangolin-manager$PGHOME/bin/pg_ctl restart -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user restart pangolin-auth-reencryptexit
-
на реплике:
sudo -iu postgressystemctl --user restart pangolin-poolersystemctl --user restart pangolin-certs-rotatesystemctl --user restart pangolin-auth-reencryptsystemctl --user restart pangolin-managersystemctl --user restart etcd$PGHOME/bin/pg_ctl restart -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user restart pangolin-auth-reencryptexit
- Без функциональности «Отказ от
-
Для конфигурации с Pangolin Manager. Произведите проверку состояния служб на реплике:
- Без функциональности «Отказ от
root» - С включенной функциональностью «Отказ от
root»
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
-
на реплике:
sudo systemctl status pangolin-poolersudo systemctl status pangolin-certs-rotatesudo systemctl status pangolin-auth-reencrypt@postgressudo systemctl status pangolin-auth-reencrypt@kmadmin_pgsudo systemctl status pangolin-managersudo -iu postgres$PGHOME/bin/pg_ctl status -D $PGDATAexit
-
на реплике:
sudo systemctl status pangolin-poolersudo systemctl status pangolin-certs-rotatesudo systemctl status pangolin-auth-reencrypt@postgressudo systemctl status pangolin-auth-reencrypt@kmadmin_pgsudo systemctl status pangolin-managersudo systemctl status etcdsudo -iu postgres$PGHOME/bin/pg_ctl status -D $PGDATAexit
- Для конфигурации с Pangolin Manager и модулем Pangolin DCS
- Для конфигурации с Pangolin Manager и etcd
-
на реплике:
sudo -iu postgressystemctl --user status pangolin-poolersystemctl --user status pangolin-certs-rotatesystemctl --user status pangolin-auth-reencryptsystemctl --user status pangolin-manager$PGHOME/bin/pg_ctl status -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user status pangolin-auth-reencryptexit
-
на реплике:
sudo -iu postgressystemctl --user status pangolin-poolersystemctl --user status pangolin-certs-rotatesystemctl --user status pangolin-auth-reencryptsystemctl --user status pangolin-managersystemctl --user status etcd$PGHOME/bin/pg_ctl status -D $PGDATAexitsudo -iu kmadmin_pgsystemctl --user status pangolin-auth-reencryptexit
- Без функциональности «Отказ от
-
Для конфигурации с Pangolin Manager. Дождитесь статуса синхронизации на реплике –
sync_standby:sudo -iu postgres/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml listexit -
Для конфигурации с Pangolin Manager. Удалите временный физический слот репликации на мастера:
sudo -iu postgrespsql -c "SELECT * FROM pg_drop_replication_slot('tmp_update_slot');"/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml edit-config --replace /opt/pangolin-cache/patroni.dynamic.json --forceexit -
С помощью функции
edit-configпод пользователемpostgresпроизведите ручное восстановление исходных значений конфигурации DCS согласно информации из файлаsave_old_dcs_value.txt:sudo -iu postgres/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml edit-configexit
Шаг 22. Обновление расширений (опционально)
Действия по обновлению расширений
-
Создайте временный файл
ext_update.sqlпод пользователемpostgresи поместите его в/opt/pangolin-cache:\set ON_ERROR_STOP = true;DO $$DECLAREr text;dp_schema_name text;BEGINSELECT n.nspnameINTO dp_schema_nameFROM pg_catalog.pg_extension eJOIN pg_catalog.pg_namespace n ON e.extnamespace = n.oidWHERE e.extname = 'psql_diagpack';IF dp_schema_name IS NOT NULL THENRAISE NOTICE 'Drop extension psql_diagpack';EXECUTE format('DROP EXTENSION IF EXISTS %I', 'psql_diagpack');END IF;FOR r IN (SELECT extname FROM pg_catalog.pg_extension WHERE extname in ('amcheck', 'auth_delay', 'auto_explain', 'autoinc', 'bloom', 'btree_gin', 'btree_gist', 'citext', 'cube', 'dblink', 'dict_int', 'dict_xsyn', 'earthdistance', 'file_fdw', 'fuzzystrmatch', 'hstore', 'hstore_plperl', 'hstore_plperlu', 'hstore_plpython3u', 'insert_username', 'intagg', 'intarray', 'isn', 'jsonb_plperl', 'jsonb_plperlu', 'jsonb_plpython3u', 'lo', 'ltree', 'ltree_plpython3u', 'moddatetime', 'pageinspect', 'pg_buffercache', 'pg_freespacemap', 'pg_prewarm', 'pg_stat_statements', 'pg_variables', 'pg_trgm', 'pg_visibility', 'pgcrypto', 'pgrowlocks', 'pgstattuple', 'plperl', 'plperlu', 'plpgsql', 'pltcl', 'plpython3u', 'plan_cache_limit', 'pg_freeze_recovery', 'ptrack', 'old_snapshot', 'psql_license_info', 'pltclu', 'postgres_fdw', 'refint', 'seg', 'sslinfo', 'tablefunc', 'tcn', 'tsm_system_rows', 'tsm_system_time', 'unaccent', 'uuid-ossp', 'xml2', 'bool_plperlu', 'bool_plperl', 'rum', 'oid2name', 'online_analyze', 'pg_backup', 'pg_standby', 'protected_dump', 'pg_profile', 'orafce', 'pg_squeeze', 'pg_cron', 'pg_repack', 'pgse_backup', 'pg_hint_plan', 'pg_outline', 'oracle_fdw', 'tds_fdw', 'psql_lockmon', 'pg_stat_kcache', 'psql_rotate_password', 'fasttrun', 'fulleq', 'mchar', 'psql_diagpack', 'pg_store_plans', 'pg_orphaned', 'psql_resources_consumption_limits', 'vector', 'pg_surgery', 'pg_walinspect', 'anon', 'psql_data_lineage', 'psql_bfile', 'plantuner', 'postgis', 'postgis_raster', 'postgis_sfcgal', 'postgis_topology', 'address_standardizer', 'address_standardizer_data_us', 'postgis_tiger_geocoder', 'pg_background', 'pgrouting') and extname not in ('pg_repack', 'timescaledb'))LOOPRAISE NOTICE 'Update extension %', r;EXECUTE FORMAT('ALTER EXTENSION %I UPDATE;', r);END LOOP;FOR r IN (SELECT extname FROM pg_catalog.pg_extension WHERE extname = 'pg_repack')LOOPRAISE NOTICE 'Update extension %', r;EXECUTE FORMAT('DROP EXTENSION IF EXISTS %I;', r);EXECUTE FORMAT('CREATE EXTENSION IF NOT EXISTS %I WITH SCHEMA ext;', r);END LOOP;IF dp_schema_name IS NOT NULL THENRAISE NOTICE 'Restore extension psql_diagpack in schema %', dp_schema_name;EXECUTE format('CREATE EXTENSION %I WITH SCHEMA %I', 'psql_diagpack', dp_schema_name);END IF;END $$; -
Создайте временный файл
run_update_extentions.shпод пользователемpostgresи поместите его в/opt/pangolin-cache/:#!/bin/bashdatabases=($($PG_HOME/bin/psql -t --csv -c "SELECT datname FROM pg_database WHERE datname NOT LIKE 'template0';"))echo "databases: " $databasesfor ud in "${databases[@]}"; doecho "database: " $udecho "Run ALTER EXTENSION UPDATE"$PG_HOME/bin/psql -d $ud -f /opt/pangolin-cache/ext_update.sql -1doneif [ "$?" -eq 0 ]; thenecho "All extensions have updated on nodes"elseecho "There were some problems during process updating"exit 1fitimescale_databases=($($PG_HOME/bin/psql -t --csv -c "SELECT datname FROM pg_database WHERE datname NOT LIKE 'template0';"))SELECT extname, extversion FROM pg_extension WHERE extname = 'timescaledb' -
Запустите sh-скрипт
run_update_extentions.shпод пользователем postgres:sudo -iu postgreschmod 0700 /opt/pangolin-cache/run_update_extentions.sh /opt/pangolin-cache/ext_update.sqlcd /opt/pangolin-cache/export PGPASSWORD=<password for db user>PG_HOME=$PGHOME_CLIENT PGHOST=127.0.0.1 ./run_update_extentions.shexit -
Верните расширение
timescaledbв значение параметраshared_preload_librariesв$PGDATA/postgresql.conf. -
Выполните скрипт для обновления расширения.
<DB>- заменить на название базы данных:sudo -iu postgrespsql -d <DB> -c "ALTER EXTENSION timescaledb UPDATE;"exit
Шаг 23. Обновление каталога безопасности (обязательно)
Обновите каталог безопасности СУБД для применения новых механизмов защиты. Этот шаг обязателен для корректной работы функциональностей безопасности в новой версии СУБД.
В случае кластерной конфигурации произведите действия только на мастере.
Действия по обновлению каталога безопасности
-
Добавьте временный параметр
enable_protection_catalogs_upgradeпод пользователемpostgresв конец конфигурационного файла с помощью обычного текстового редактора:- Для конфигурации без Pangolin Manager
- Для конфигурации с Pangolin Manager
Отредактируйте конфигурационный файл
postgresql.conf:enable_protection_catalogs_upgrade = TrueОтредактируйте конфигурационный файл
postgres.yml:postgresql:parameters:enable_protection_catalogs_upgrade: True -
Произведите
reloadиrestartСУБД Pangolin:- Для конфигурации без Pangolin Manager
- Для конфигурации с Pangolin Manager
- В случае отсутствия
pangolin-dbms.service - С наличием файла
pangolin-dbms.service
sudo -iu postgres$PGHOME/bin/pg_ctl reload -D $PGDATA$PGHOME/bin/pg_ctl restart -D $PGDATAexitsudo systemctl reload pangolin-dbmssudo systemctl restart pangolin-dbmssudo -iu postgresexport CLUSTERNAME=clustername/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml reload $CLUSTERNAME/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml restart $CLUSTERNAMEexit -
Выполните следующую команду в каждой БД поочередно, кроме БД с включенным флагом
datallowconn.<DB>- заменить на название базы данных:sudo -iu postgrespsql -c "SELECT NOW()" -d <DB>exit -
Удалите временный параметр
enable_protection_catalogs_upgradeиз конфигурационного файла под пользователем postgres, с помощью обычного текстового редактора. И произведитеreloadиrestartСУБД в зависимости от конфигурации:- Для конфигурации без Pangolin Manager
- Для конфигурации с Pangolin Manager
- В случае отсутствия
pangolin-dbms.service - С наличием файла
pangolin-dbms.service
sudo -iu postgres$PGHOME/bin/pg_ctl reload -D $PGDATA$PGHOME/bin/pg_ctl restart -D $PGDATAexitsudo systemctl reload pangolin-dbmssudo systemctl restart pangolin-dbmssudo -iu postgresexport CLUSTERNAME=clustername/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml reload $CLUSTERNAME/opt/pangolin-manager/bin/pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml restart $CLUSTERNAMEexit
Шаг 24. Завершающие действия (обязательно)
Выполните завершающие действия: удалите временные файлы и параметры, актуализируйте конфигурацию. Этот шаг обязателен для приведения СУБД в рабочее состояние и удаления служебных данных, созданных в процессе обновления.
Завершающие действия по обновлению СУБД
- Произведите выключение блокировки трафика и запуск службы
crond, если ранее они были выключены. - В случае использования ОС Astra Linux «Смоленск» выполните действия описанные в разделе особенностей работы с данной ОС.