Процедура обновления ПО¶
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
Обновление OrientDB¶
Примечание
Рекомендуется выполнить экспорт БД перед обновлением.
Начиная с версии 2.10 обновлена версия OrientDB до 3.2.32.
Если OrientDB установлен локально без выделенной директории для хранения данных (данные хранятся в ${ORIENTDB_HOME}/databases), возможны два варианта обновления:
Восстановление данных через операцию переиндексации данных.
В параметрах операции должны быть включены следующие флаги: "Проиндексировать активы", "Обновить маппинги графа", "Проиндексировать связи".
Экспорт и импорт БД
Перед обновлением необходимо выполнить экспорт БД через консоль OrientDB.
Пример:
Запустите консоль OrientDB:
${ORIENTDB_HOME}/bin/orientdb-console.sh
Выполните подключение к БД:
connect remote:{host}:{port}/{db_name} {user} {password}
Пример:
connect remote:localhost:2424/dg root root
Запустите экспорт БД:
export database {path_to_export_file}
Пример:
export database dg.export
После установки новой версии OrientDB необходимо создать новую БД и выполнить импорт.
Пример:
Запустите консоль OrientDB:
${ORIENTDB_HOME}/bin/orientdb-console.sh
Выполните подключение к БД:
connect remote:{host}:{port}/{db_name} {user} {password}
Пример:
connect remote:localhost:2424/dg root root
Запустите импорт БД:
import database {path_to_export_file}
Пример:
import database dg.export
Файлы приложения и конфигурации¶
Предварительно: убедитесь, что созданы все требуемые резервные копии конфигурации.
Примечание
При копировании новых библиотек необходимо удалять старые, т.к в некоторых случаях при обновлении системы используется не новая, а старая версия библиотеки, вследствие чего в работе системы возникают ошибки
Удалите все файлы из директорий:
<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.5 был осуществлен переход с Elasticsearch на OpenSearch. Инструкцию по переходу см. по ссылке.
Примечание
В версии 2.10 произошло обновление Opensearch с версии 2.7.0 на версию 2.14.0. Используйте официальную документацию Opensearch 2.14.0 для установки новой версии.
Перед обновлением рекомендуется сохранить свой конфиг, файл синонимов config/synonyms, директорию config/hunspell и установить плагин analysis-icu новой версии.
Индексы и их данные из старой версии остаются совместимы с новой.