Процедура обновления ПО

PostgreSQL

Примечание

Ниже приведен пример обновления PostgreSQL с версии 12 на версию 16.3. Вы также можете воспользоваться официальной документацией PostgreSQL.

Совет

Рекомендуется использовать программы pg_dump и pg_dumpall из более новой версии PostgreSQL

Настоящая инструкция предполагает, что текущая установка находится в каталоге /usr/local/pgsql, а область данных – в /usr/local/pgsql/data. Замените пути соответствующим образом.

Пример обновления PostgreSQL с помощью pg_dump:

  1. Создайте резервную копию базы данных (шаг можно пропустить, если резервная копия была сделана ранее):

    $ pg_dump -U postgres -d your_database_name -F c -b -v -f backup.dump
    
  2. Создайте копию в формате 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 — имя файла дампа.
    
  3. Добавьте репозиторий 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
    
  4. Установите PostgreSQL 16.3:

    $ sudo apt-get install postgresql-16
    
  5. Остановите службу PostgreSQL 12:

    $ sudo systemctl stop postgresql@12-main
    
  6. Инициализируйте новый кластер PostgreSQL 16.3:

    $ sudo systemctl stop postgresql@12-main
    
  7. Запустите службу PostgreSQL 16.3:

    $ sudo systemctl start postgresql-16
    
  8. Удалите старый том:

    $ psql -U postgres -c "DROP DATABASE IF EXISTS postgres;"
    
  9. Восстановите базу данных - создайте новую базу данных:

    $ createdb -U postgres postgres
    
  10. Восстановите дамп:

    $ pg_restore -U postgres -d postgres -v backup.dump
    
  11. Обновите файлы конфигурации - создайте резервные копии старых файлов конфигурации:

    $ 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
    
  12. Откройте новые файлы конфигурации:

    $ sudo vim /etc/postgresql/16/main/postgresql.conf
    $ sudo vim /etc/postgresql/16/main/pg_hba.conf
    
  13. Найдите пользовательские параметры, установленные в старом postgresql.conf, и скопируйте их в новый postgresql.conf.

  14. Скопируйте пользовательские правила доступа из старого pg_hba.conf в новый pg_hba.conf.

  15. После объединения конфигураций сохраните и закройте новые файлы конфигурации.

  16. Перезапустите PostgreSQL:

    $ sudo systemctl restart postgresql-16
    
  17. Проверьте конфигурацию:

    $ sudo tail -f /var/log/postgresql/postgresql-16-main.log
    
  18. Удалите старую версию PostgreSQL:

    $ sudo apt-get remove postgresql-12
    $ sudo apt-get autoremove
    
  19. Удалите старый каталог данных:

    $ sudo rm -rf /var/lib/postgresql/12/main
    

Файлы приложения и конфигурации

Предварительно: убедитесь, что созданы все требуемые резервные копии конфигурации.

Примечание

При копировании новых библиотек необходимо удалять старые, т.к в некоторых случаях при обновлении системы используется не новая, а старая версия библиотеки, вследствие чего в работе системы возникают ошибки

  1. Удалите все файлы из директорий:

    • <TOMCAT_HOME>/work;

    • <TOMCAT_HOME>/temp;

    • <TOMCAT_HOME>/webapps;

  2. Скопируйте содержимое директории <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/
    
  3. Обновите конфигурационные файлы:

    • Файл /opt/tomcat-9/bin/setenv.sh, с настроенными ранее переменными для backend.properties, не изменяется.

    • Замените папку с конфигурациями, необходимые правки из прошлой версии backend.properties перенесите в новую:

      cp -f <UNIVERSE_PACKAGE_DIR>/conf/ <TOMCAT_HOME>
      
  4. Обновите права:

    chown -RL tomcat:tomcat /opt/tomcat-9

  5. Убедитесь, что все требуемые для проекта файлы интеграции в <TOMCAT_HOME>/universe_integration актуальны.

  6. Скопируйте в <TOMCAT_HOME>/webapps/universe-frontend кастомизации UI (при наличии).

  7. в файле <TOMCAT_HOME>/webapps/universe-frontend/customer.json проверьте достоверность указания всех переданных файлов для UI.

  8. Перезапустите Tomcat:

    systemctl restart tomcat
    

Примечание

Процедуру обновления программных компонентов необходимо выполнить на каждом узле кластера, если Юниверс DG установлена в кластерной конфигурации

Apache Tomcat

Для обновления Tomcat с версии 7 до версии 9:

  • Скопируйте содержимое tomcat, установленного по инструкции, в новую директорию и замените ссылку:

    ln -sTfb /Путь/к/новой/версии/ /opt/tomcat-9
    

База данных

Обновление базы данных:

  1. Скопируйте директорию database из дистрибутива в любой подкаталог относительно конечного каталога установки дистрибутива Юниверс.

  2. Укажите требуемые параметры системы в файле init_env.sh (init_env.bat для Windows) из директории database.

  3. Запустите скрипт обновления схемы данных в БД:

    ./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 новой версии.

Индексы и их данные из старой версии остаются совместимы с новой.