Введение
Здесь представлены инструкции по созданию резервной копии базы данных экземпляра ПО Comindware Platform без его остановки.
Для создания полной резервной копии базы данных в ОС Linux необходимо с помощью терминала выполнить следующие действия:
- создать снимки состояния памяти Apache Ignite и Elasticsearch;
- скопировать содержимое папок со скриптами и вложенными файлами.
Сведения о последующем восстановлении данных см. в статье «Восстановление базы данных, вложенных файлов и журналов из полной резервной копии».
Сбор данных об экземпляре ПО
Для создания резервной копии соберите перечисленные ниже данные об экземпляре ПО.
-
Имя экземпляра ПО:
<instanceName>. Можно получить в ответе на запрос localhost:9200/_cat/indices, напримерcmw_cmw-study, как показано на следующей иллюстрации.
Определение имени экземпляра ПО -
Директория с базой данных экземпляра ПО:
/var/lib/comindware/<instanceName>/Database. Может быть задана другая директория с помощью директивы<workDirectory>в файле конфигурации/var/www/comindware/Ignite.config. Если в файле конфигурации директива<workDirectory>не содержит директории, используется директория по умолчанию. - Путь для сохранения снимков базы данных Apache Ignite, по умолчанию:
/var/lib/comindware/<instanceName>/Database/snapshots/ - Имя репозитория Elasticsearch, заданное при его регистрации, например:
elastic_search_repo_name -
Путь для сохранения резервных копий Elasticsearch:
- например,
/var/www/backups/elasticsearch - должен быть указан в директиве
path.repoв файле/etc/elasticsearch/elasticsearch.yml - должен ссылаться на существующий диск;
- должен находиться на отдельном диске, отдельно от базы данных.
Определение пути для резервных копий Elasticsearch - например,
-
Имя снимка, заданное администратором, например, в формате
<instanceName><Date><Time>
Установка и настройка исполняемых скриптов Apache Ignite
-
Для установки исполняемых скриптов перейдите в режим суперпользователя
root:sudo -iили
su - -
Проверьте наличие пакета
apache-igniteна машине:dpkg -s apache-igniteЕсли пакет имеется, пропустите шаги 3–7 и переходите к назначению прав директории.
-
Если пакета нет, загрузите zip-архив со скриптами:
wget -P /tmp/ https://archive.apache.org/dist/ignite/2.16.0/apache-ignite-2.16.0-bin.zip -
Если на машине ранее не был установлен пакет
zip, установите его:apt install zip -
Разархивируйте пакет в директорию
/var/www/:unzip /tmp/apache-ignite-2.16.0-bin.zip -d /var/www -
Переименуйте получившуюся директорию со скриптами
Apache Igniteвapache-ignite:mv /var/www/apache-ignite-2.16.0-bin /var/www/apache-ignite -
Прейдите в директорию
/var/www/:cd /var/www/ -
Назначьте папке
apache-igniteправа на чтение-записьrwxrwxrwx:chmod -R 777 apache-ignite/ -
Смените владельца директории
apache-ignite:Astra Linux, Ubuntu, Rocky
chown -R www-data:www-data apache-ignite/Альт Сервер
chown -R _nginx:_nginx apache-ignite/ -
Создайте директории для сохранения резервных копий:
mkdir /var/www/backups/ -
Создайте директорию репозитория Elasticsearch:
mkdir /var/www/backups/elasticsearch -
Присвойте директории
backupsправа на чтение-записьrwxrwxrwx:chmod -R 777 backups/ -
Смените владельца директории
backups:Astra Linux, Ubuntu, Rocky
chown -R www-data:www-data backups/Альт Сервер
chown -R _nginx:_nginx backups/
Создание резервной копии
Примечание
При создании снимка после перезагрузки машины необходимо убедиться в том, что экземпляр ПО запущен и Apache Ignite работает. Для этого достаточно в браузере открыть веб-сайт с экземпляром ПО.
-
Задайте переменную
now:now=$(date %Y_%m_%d_%H_%M) -
Проверьте окружение и создайте снимок состояния Apache Ignite:
bash /var/www/apache-ignite/bin/control.sh --baselinebash /var/www/apache-ignite/bin/control.sh --snapshot create snapshot_name_$now --sync -
Зарегистрируйте репозиторий Elasticsearch. Вместо
elasticsearch_repo_nameи/var/www/backups/elasticsearchподставьте своё имя репозитория и путь к его папке:curl -X PUT "localhost:9200/_snapshot/elasticsearch_repo_name?pretty" -H ’Content-Type: application/json’ -d’ {"type": "fs", "settings": {"location": "/var/www/backups/elasticsearch"}}’ -
Создайте снимок состояния Elasticsearch, заменив
elasticsearch_repo_name*,snapshot_name* иprefix_name(префикс индекса, указанный в конфигурации экземпляра ПО) на свои значения:curl -X PUT "localhost:9200/_snapshot/elasticsearch_repo_name/snapshot_name_$now?wait_for_completion=true&pretty" -H ’Content-Type: application/json’ -d’ {"indices": "cmw_prefix_name*", "ignore_unavailable": true, "include_global_state": false}’ -
Создайте директории для хранения компонентов резервной копии:
mkdir /var/www/backups/backup_$nowmkdir /var/www/backups/backup_$now/Databasemkdir /var/www/backups/backup_$now/elasticmkdir /var/www/backups/backup_$now/Streamsmkdir /var/www/backups/backup_$now/Scriptsmkdir /var/www/backups/backup_$now/wal -
Перенесите и скопируйте компоненты в директорию резервной копии:
mv /var/www/comindware/data/Database/snapshots/snapshot_name_$now /var/www/backups/backup_$now/Databasecp -r /var/www/backups/elasticsearch/* /var/www/backups/backup_$now/elasticcp -r /var/www/comindware/data/Database/wal/* /var/www/backups/backup_$now/walcp -r /var/www/comindware/data/Database/Scripts/* /var/www/backups/backup_$now/Scriptscp -r /var/www/comindware/data/Streams/* /var/www/backups/backup_$now/Streams -
Создайте архив с резервной копией:
tar -cvjf backup_$now.tar.bz2 /var/www/backups/backup_$now -
Перенесите архив с резервной копией во внешнее хранилище.