Процедура обновления ПО
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>/webapps/ и <TOMCAT_HOME>/lib/ (WAR-файлы приложения, библиотеки) из установочного пакета:
cp <UNIVERSE_PACKAGE>/Tomcat/lib/ <TOMCAT_HOME>/lib/ # Заменить новыми версиями cp <UNIVERSE_PACKAGE>/Tomcat/webapps/universe-.war <TOMCAT_HOME>/webapps/
Обновите конфигурационные файлы:
Файл /opt/tomcat-9/bin/setenv.sh, с настроенными ранее переменными для backend.properties, не изменяется.
Замените папку с конфигурациями, необходимые правки из прошлой версии backend.properties перенесите в новую:
cp -f <UNIVERSE_PACKAGE_DIR>/conf/ <TOMCAT_HOME>
Обновите права:
chown -RL tomcat:tomcat /opt/tomcat-9
Убедитесь, что все требуемые для проекта файлы интеграции в <TOMCAT_HOME>/universe_integration актуальны.
Скопируйте в <TOMCAT_HOME>/webapps/universe-frontend кастомизации UI (при наличии).
в файле <TOMCAT_HOME>/webapps/universe-frontend/customer.json проверьте достоверность указания всех переданных файлов для UI.
Перезапустите Tomcat:
systemctl restart tomcat
Примечание
Процедуру обновления программных компонентов необходимо выполнить на каждом узле кластера, если Юниверс DG установлена в кластерной конфигурации
Apache Tomcat
Для обновления Tomcat с версии 7 до версии 9:
Скопируйте содержимое tomcat, установленного по инструкции, в новую директорию и замените ссылку:
ln -sTfb /Путь/к/новой/версии/ /opt/tomcat-9
База данных
Обновление базы данных:
Скопируйте директорию 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 новой версии.
Индексы и их данные из старой версии остаются совместимы с новой.