Подготовка к обновлению
Примечание
Перед началом резервного копирования экспортируйте модель данных и остановите сервер приложений Tomcat
Резервное копирование компонентов
Резервное копирование базы данных
Резервное копирование базы данных выполняется стандартными средствами СУБД (pg_dump, pg_restore, pg admin и т.п.). Пример создания резервной копии с помощью утилиты pg_dump:
Остановите сервер Tomcat:
systemctl stop tomcat
Уточните имя базы данных в файле настроек <TOMCAT_HOME>/conf/Catalina/localhost/universe-backend.xml. Имя содержится в строке вида (в примере указано имя universe):
Resource .... url="jdbc:postgresql://localhost:5432/universe" .../>Выполните команду:
pg_dump -U ${POSTGRES_USERNAME} -h ${POSTGRES_ADDRESS} -Fc ${DATABASE_NAME} > ./${DATABASE_NAME}$(date +%F_%H%M).dump
Узнать путь к БД можно в файле
./bin/setenv.shили с помощью команды:echo $POSTGRES_ADDRESS$DATABASE_NAME
Запустите сервер Tomcat:
systemctl start tomcat
Параметры команды могут отличаться. Необходимо убедиться, что в резервную копию были включены все схемы базы universe.
Резервное копирование поискового индекса
Резервное копирование поискового индекса осуществляется стандартными средствами Opensearch. Перед выполнением операции необходимо изменить настройки Opensearch в соответствии с конфигурацией целевой системы.
Примечание
Осуществлен переход с Elasticsearch на OpenSearch. Если вам необходимо осуществить резервное копирование для Elasticsearch, вы также можете воспользоваться текущей инструкцией, заменив opensearch на elasticsearch в соответствующих местах
Для создания резервной копии поискового индекса:
Укажите путь к репозиторию снапшотов в секции Paths (файла <OPENSEARCH_HOME>/config/opensearch.yml). Путь должен быть доступен всем узлам кластера:
path.repo : /mnt/backups/opensearch
Создайте каталог для репозитория:
mkdir -p /mnt/backups/opensearch
Измените владельца папки:
chown -R opensearch:opensearch /mnt/backups/opensearch
Перезапустите Opensearch. Пример команды:
systemctl restart opensearch
Зарегистрируйте репозиторий в конфигурации кластера. Пример выполнения из консоли с помощью утилиты curl:
$curl -X PUT "http://localhost:9200/_snapshot/universe_indices_backup" -H 'Content-Type:
application/json' -d' { "typ
Проверьте успешность выполнения предыдущего шага (в результате выполнения команды на экране должны отобразится текущие настройки репозитория):
$ curl -XGET 'localhost:9200/_snapshot/universe_indices_backup'
Создайте снапшот всех активных индексов кластера (в примере используется имя snapshot_1):
$ curl -XPUT 'localhost:9200/_snapshot/universe_indices_backup/snapshot_1?wait_for_completion=true'
В случае успешного завершения процедуры создания снапшота на экране отобразится сообщение вида
"state":"SUCCESS".
Для получения дополнительных сведений о состоянии снапшота выполните команду:
$ curl -XGET 'localhost:9200/_snapshot/universe_indices_backup/snapshot_1'
Резервное копирование файлов конфигурации
Скопируйте содержимое:
Каталога <TOMCAT_HOME>/webapps;
Каталога <TOMCAT_HOME>/universe-integration;
Каталога <TOMCAT_HOME>/conf.
Укажите путь к файлу logback.xml в <TOMCAT_HOME>/conf/tomcat.conf:
Dlogback.configurationFile=/opt/conf/universe/logback.xml в настройках $TOMCAT_HOME/conf/tomcat.conf
Если в файл universe-backend.xml, расположенный в <TOMCAT_HOME>/ conf/Catalina/localhost, вносились изменения - создайте его резервную копию для последующего обновления.
Восстановление резервных копий
Восстановление резервной копии базы данных
Восстановление резервной копии БД осуществляется стандартными средствами СУБД (pg_restore, pg admin и т.д.). Далее представлен пример восстановления резервной копии средствами pg_restore.
Остановите сервер Tomcat:
systemctl stop tomcat
Создайте пустую БД. Для этого используйте команды консоли:
su postgres psql -U postgres CREATE DATABASE <имя базы> WITH OWNER = postgres \q
В качестве альтернативы может быть выполнена очистка существующей БД.
Выполните команду:
$ pg_restore -d universe -p 5432 -h localhost -U <путь и имя файла>
Запустите сервер Tomcat:
systemctl start tomcat
Восстановление резервной копии поискового индекса
Восстановление резервных копий поискового индекса осуществляется стандартными средствами Opensearch.
Примечание
Осуществлен переход с Elasticsearch на OpenSearch. Если вам необходимо осуществить восстановление резервной копии Elasticsearch, вы также можете воспользоваться текущей инструкцией
Для восстановления резервной копии поискового индекса:
Закройте текущие индексы:
$ curl -XPOST 'localhost:9200/_all/_close'
Количество частей (Shards) индекса в снапшоте и в кластере должны совпадать, в противном случае восстановление завершится с ошибкой. Требование не распространяется на пустые кластеры.
В случае, если имя текущих снапшотов неизвестно, используйте команду:
$ curl -XGET 'localhost:9200/_snapshot/_all' curl -XGET 'localhost:9200/_snapshot/universe_indices_backup/_all?pretty'
Восстановите снапшот. Пример команды для снапшота с именем snapshot_1:
curl -X POST "http://localhost:9200/_snapshot/universe_indices_backup/snapshot_1/_restore" -H 'Content-Type: application/json' -d' { "indices": "default_default*", "ignore_unavailable": true, "include_global_state": false }'
Снапшот представляет собой слепок состояния поискового индекса. Таких снапшотов может быть несколько – для хранения нескольких состояний Opensearch.