Процедура обновления ПО
PostgreSQL
Примечание
Ниже приведен пример обновления PostgreSQL с версии 12 на версию 16.3. Вы также можете воспользоваться официальной документацией PostgreSQL.
Совет
Рекомендуется использовать программы pg_dump и pg_dumpall из более новой версии PostgreSQL
Настоящая инструкция предполагает, что текущая установка находится в каталоге /usr/local/pgsql, а область данных – в /usr/local/pgsql/data. Замените пути соответствующим образом.
Пример обновления PostgreSQL с помощью pg_dump:
- Создайте резервную копию базы данных (шаг можно пропустить, если резервная копия была сделана ранее): - $ pg_dump -U postgres -d your_database_name -F c -b -v -f backup.dump 
- Создайте копию в формате sql (на всякий случай): - $ pg_dump -U postgres -d your_database_name > backup.sql - где: - -U postgres — пользователь базы данных; -d your_database_name — имя базы данных; -F c — формат дампа (custom); -b — включает большие объекты в дамп; -v — включает подробный вывод; -f backup.dump — имя файла дампа. 
- Добавьте репозиторий PostgreSQL: - $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update 
- Установите PostgreSQL 16.3: - $ sudo apt-get install postgresql-16 
- Остановите службу PostgreSQL 12: - $ sudo systemctl stop postgresql@12-main 
- Инициализируйте новый кластер PostgreSQL 16.3: - $ sudo systemctl stop postgresql@12-main 
- Запустите службу PostgreSQL 16.3: - $ sudo systemctl start postgresql-16 
- Удалите старый том: - $ psql -U postgres -c "DROP DATABASE IF EXISTS postgres;" 
- Восстановите базу данных - создайте новую базу данных: - $ createdb -U postgres postgres 
- Восстановите дамп: - $ pg_restore -U postgres -d postgres -v backup.dump 
- Обновите файлы конфигурации - создайте резервные копии старых файлов конфигурации: - $ cp /etc/postgresql/12/main/postgresql.conf /etc/postgresql/12/main/postgresql.conf.backup $ cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.backup 
- Откройте новые файлы конфигурации: - $ sudo vim /etc/postgresql/16/main/postgresql.conf $ sudo vim /etc/postgresql/16/main/pg_hba.conf 
- Найдите пользовательские параметры, установленные в старом postgresql.conf, и скопируйте их в новый postgresql.conf. 
- Скопируйте пользовательские правила доступа из старого pg_hba.conf в новый pg_hba.conf. 
- После объединения конфигураций сохраните и закройте новые файлы конфигурации. 
- Перезапустите PostgreSQL: - $ sudo systemctl restart postgresql-16 
- Проверьте конфигурацию: - $ sudo tail -f /var/log/postgresql/postgresql-16-main.log 
- Удалите старую версию PostgreSQL: - $ sudo apt-get remove postgresql-12 $ sudo apt-get autoremove 
- Удалите старый каталог данных: - $ sudo rm -rf /var/lib/postgresql/12/main 
Файлы приложения и конфигурации
Предварительно: убедитесь, что созданы все требуемые резервные копии конфигурации.
Примечание
При копировании новых библиотек необходимо удалять старые, т.к в некоторых случаях при обновлении системы используется не новая, а старая версия библиотеки, вследствие чего в работе системы возникают ошибки
- Удалите все файлы из директорий: - <TOMCAT_HOME>/work;
- <TOMCAT_HOME>/temp;
- <TOMCAT_HOME>/webapps;
 
- Обновите конфигурационные файлы: 
- Скопируйте из - <TOMCAT_HOME>/conf/Catalina/localhostдистрибутива в директорию- <UNIVERSE_CONF_DIR>ранее созданную резервную копию файла universe-backend.xml. Пример команды:- cp <UNIVERSE_PACKAGE_DIR>/conf/Catalina/localhost/universe-backend.xml <TOMCAT_HOME>/conf/Catalina/localhost/ 
- Скопируйте из - <TOMCAT_HOME>/conf/universe/дистрибутива в директорию- <UNIVERSE_CONF_DIR>/ранее созданную резервную копию файла backend.properties. Пример команды:- cp <UNIVERSE_PACKAGE_DIR>/conf/universe/backend.properties <TOMCAT_HOME>/conf/universe/ 
- В файле backend.properties закомментируйте параметр - universe.licensing.gpg.license.fileдля корректного обновления лицензии через интерфейс системы. После запуска обновленной системы необходимо активировать действующую лицензию повторно.
- Скопируйте из дистрибутива в директорию - <TOMCAT_HOME>/conf/universe/актуальный файл external-routing.xml, либо внесите в него актуальные изменения:- cp <UNIVERSE_PACKAGE_DIR>/conf/universe/external-routing.xml <TOMCAT_HOME>/conf/universe/ 
- При необходимости восстановите из резервных копий файлов персональные параметры конфигурации. 
- Скопируйте содержимое директории - <TOMCAT_HOME>/webapps/и- <TOMCAT_HOME>/lib/(WAR-файлы приложения, библиотеки) из установочного пакета при помощи команд:- cp <UNIVERSE_PACKAGE>/Tomcat/lib/* <TOMCAT_HOME>/lib/ cp <UNIVERSE_PACKAGE>/Tomcat/webapps/universe-*.war <TOMCAT_HOME>/webapps/ 
- Убедитесь, что все требуемые для проекта файлы интеграции в - <TOMCAT_HOME>/universe_integrationактуальны. При необходимости воспользуйтесь резервной копией каталога, созданной ранее.
- При переходе на новую версию PostgreSQL удалите устаревшие стандартные .lib- файлы. Пример файла: - postgresql-13-1200.jdbc41.lib.
- Создайте резервные копии конфигурационных файлов (если они изменялись, например, изменения могли быть внесены в файл - <TOMCAT_HOME>/webapps/universe-frontend/customer.json), которые расположены по адресам:- <TOMCAT_HOME>/webapps/universe-backend;
- <TOMCAT_HOME>/webapps/universe-frontend.
 
- Удалите индексы Elasticsearch: - $ curl -XDELETE 'http://localhost:9200/_all' 
- Перезапустите Tomcat: - systemctl restart tomcat 
Примечание
Процедуру обновления программных компонентов необходимо выполнить на каждом узле кластера, если Юниверс DG установлена в кластерной конфигурации
Apache Tomcat
Для обновления Tomcat с версии 7 до версии 9:
- Остановите Tomcat 7 и удалите из автозагрузки: - systemctl stop tomcat && systemctl disable tomcat 
- Создайте системного пользователя: - useradd -m -U -d /opt/tomcat -s /bin/false tomcat 
- Скачайте и распакуйте архив (актуальную версию можно найти на официальном сайте). Пример команды (9.0.хх - номер версии Tomcat): - wget https://downloads.apache.org/tomcat/tomcat9/v9.0.хх/bin/apache-tomcat-9.0.хх.tar.gz tar -zxpvf apache-tomcat-9.0.хх.tar.gz -C /opt/(или другой необходимый каталог) 
- Переместите в каталог /opt/tomcat (или другой необходимый): - mv apache-tomcat-9.0.хх tomcat-9 
- Измените владельца каталога на tomcat: - chown -R tomcat: /opt/tomcat-9 
- Создайте файл системного модуля: - nano /etc/systemd/system/tomcat.service 
- Запишите в файл следующее: - [Unit] Description=Tomcat 9 servlet container After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/jre" Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom" Environment="CATALINA_BASE=/opt/tomcat-9" Environment="CATALINA_HOME=/opt/tomcat-9" Environment="CATALINA_PID=/opt/tomcat-9/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server - XX:+UseParallelGC" ExecStart=/opt/tomcat-9/bin/startup.sh ExecStop=/opt/tomcat-9/bin/shutdown.sh [Install] WantedBy=multi-user.target 
- Выполните перезагрузку для обновления конфигураций: - systemctl daemon-reload 
- Исправьте системные переменные. CATALINA_BASE=директория Tomcat 9 (экземпляры Tomcat), CATALINA_HOME=директория tomcat 9 (общие файлы Tomcat). 
- Перенесите содержимое каталогов из Tomcat 7 в Tomcat 9: 
TOMCAT7_HOME/conf/Catalina→TOMCAT9_HOME/conf/Catalina
TOMCAT7_HOME/conf/universe→TOMCAT9_HOME/conf/universe
TOMCAT7_HOME/bin/setenv.bat(sh)→TOMCAT9_HOME/bin/setenv.bat(sh)
TOMCAT7_HOME/lib/postgresql-x.x.x→TOMCAT9_HOME/lib/postgresqlx.x.x
- Пример команды: - cp <TOMCAT9_HOME>/conf/universe <TOMCAT7_HOME>/conf/universe/ 
- В файле <TOMCAT9_HOME>/conf/tomcat.conf укажите пути каталогов Tomcat 9 для: CATALINA_HOME, CATALINA_TMPDIR, Duniverse.conf, Dlogback.configurationFile. 
- Перенесите дополнительные*.jar файлы, добавленные в проект, если такие имеются: 
TOMCAT7_HOME/lib/*.jar→TOMCAT9_HOME/lib/
TOMCAT7_HOME/webapps/*.war→TOMCAT9_HOME/webapps/
TOMCAT7_HOME/universe-integration→TOMCAT9_HOME/universe-integration
- Пример команды: - cp <TOMCAT9_HOME>/lib/*.jar <TOMCAT7_HOME>/lib 
- Сделайте сценарии внутри bin исполняемыми: - sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh' 
- Добавьте Tomcat 9 в автозагрузку и запустите: - systemctl enable tomcat && systemctl start tomcat 
- Проверьте статус: - systemctl status tomcat 
База данных
Обновление базы данных:
- Скопируйте директорию database из дистрибутива в любой подкаталог относительно конечного каталога установки дистрибутива Юниверс. 
- Укажите требуемые параметры системы в файле init_env.sh (init_env.bat для Windows) из директории database. 
- Запустите скрипт обновления схемы данных в БД: - ./update_database.sh 
В случае возникновения проблем с обновлением используйте следующие скрипты:
- Для просмотра статуса миграций: ./check_database.sh (.bat для Windows). 
- Для устранения ошибок миграций: ./repair_database.sh (.bat для Windows). 
Если проблема сохраняется после выполнения repair_database.sh, то необходимо обратиться в техподдержку.
Поисковой индекс Opensearch
Примечание
В версии 2.10 произошло обновление Opensearch с версии 2.7.0 на версию 2.14.0. Используйте официальную документацию Opensearch 2.14.0 для установки новой версии.
Перед обновлением рекомендуется сохранить свой конфиг, файл синонимов config/synonyms, директорию config/hunspell и установить плагин analysis-icu новой версии.
Индексы и их данные из старой версии остаются совместимы с новой.