Ручной перенос базы данных экземпляра ПО
Введение
Здесь представлена инструкция по переносу копии кэша Apache Ignite (далее «Снимки») в новый экземпляр ПО Comindware Platform под управлением ОС Linux. Снимки можно создавать онлайн, под пользовательской нагрузкой.
Для примера мы рассмотрим перенос базы данных из снимка, созданного на одной машине, в экземпляр ПО, развёрнутый на другой машине.
На обеих машинах ПО установлено по умолчанию в папке /var/www/comindware/
Снимок базы данных Apache Ignite будет создан в папке /var/lib/comindware/<instanceName>/Database/snapshots/
Внимание!
Перенос базы данных можно осуществить только посредством создания снимка Apache Ignite! Не пытайтесь создавать копию базы данных на файловом уровне — это приведёт к утрате её работоспособности.
Примечание
Рекомендуется предварительно прочесть всю инструкцию для понимания процедуры в целом.
Создание снимка базы данных
-
Все последующие команды следует выполнять от имени суперпользователя
root
. Для этого введите команду:sudo -s
или
su -
-
Перейдите в папку ПО:
cd /var/www/comindware/
-
Откройте файл
Ignite.config
в текстовом редакторе nano:nano -v Ignite.config
-
Проверьте содержимое директивы
<workDirectory>
:<workDirectory>/path/to/WorkDir</workDirectory>
Путь к рабочей папке в файле конфигурации Apache Ignite Если директива
<workDirectory>
имеется, она содержит путь к рабочей папке базы данных экземпляра ПО.Если директива
<workDirectory>
отсутствует, база данных экземпляра ПО хранится в папкеvar/www/comindware/data/Database/
Путь к базе данных экземпляра ПО:
/var/lib/comindware/<instanceName>/Database/db
. См. «Пути и содержимое папок экземпляра ПО». -
Закройте nano:
ctrl+X
-
Перейдите в папку с базой данных экземпляра ПО в рабочей папке и выведите на экран её содержимое:
cd /var/lib/comindware/<instanceName>/Database/dbdb/ && ll
Просмотр содержимого папки с базой данных экземпляра ПО -
Проверьте актуальность данных по дате последней записи — она должна совпадать с датой последней активности платформы. В примере на иллюстрации видно, что содержимое папок
/marshaller
и/node-29690-2969e7d-e435-43b4-983a-7979ccec12c7/
изменялось 21 октября. -
Перейдите в папку
/tmp/
:cd /tmp/
-
Создайте с помощью nano скрипт
snapshot.sh
:nano snapshot.sh
Создание скрипта с помощью nano -
Введите скрипт создания снимка, например:
now=$(date +%Y_%m_%d)
/usr/share/ignite/bin/control.sh --snapshot create snapshot_$now
-
Сохраните скрипт:
ctrl+O
и закройте nano:ctrl+X
. -
Запустите созданный скрипт из папки
/tmp/
:sh snapshot.sh
Запуск скрипта создания снимка -
Просмотрите содержимое папки со снимками Apache Ignite:
cd /var/lib/comindware/<instanceName>/Database/snapshots/ && ll
Содержимое папки со снимками Apache Ignite -
Создайте архив папки снимка, например, /snapshot_2022_10_21/, и перенесите его на внешнее хранилище.
Важно!
При перезапуске ОС содержимое папки /tmp/
удаляется. Поэтому при необходимости перенесите созданный скрипт в личную папку пользователя.
Восстановление базы данных экземпляра ПО из снимка на новой машине
- На чистой машине установите ОС Linux и Comindware Platform последней версии согласно инструкции в статье «Проверка и настройка конфигурации экземпляра ПО после восстановления из резервной копии».
-
Все последующие команды следует выполнять от имени суперпользователя
root
. Для этого введите команду:sudo -s
или
su -
-
Создайте папку для базы данных экземпляра ПО (например,
/cmw-db/
):mkdir /var/www/cmw-db/
Примечание
Любые операции копирования в папку базы данных экземпляра ПО и из неё следует выполнять только после отключения сервисов Elasticsearch, comindware (где
<instanceName>
— имя экземпляра ПО), NGINX, Kafka и Zookeeper. -
Остановите сервисы:
systemctl stop elasticsearch.service comindware<instanceName>.service nginx.service kafka.service zookeeper.service
-
Убедитесь, что сервисы остановлены. Статус должен быть
Active: inactive (dead)
:systemctl status zookeeper.service kafka.service nginx.service comindware<instanceName>.service elasticsearch.service
Проверка остановки сервисов Elasticsearch, comindware, NGINX, Kafka и Zookeeper -
Скопируйте архив со снимком базы данных экземпляра ПО в папку
/tmp/
. - Распакуйте архив в текущую папку.
-
Перенесите содержимое папки снимка (например,
/tmp/snapshot_2022_10_21
) в папку базы данных экземпляра ПО:/var/www/cmw-db/
Содержимое папки снимка -
Перейдите в папку с ПО:
cd /var/www/comindware/
-
Откройте файл
Ignite.config
в текстовом редакторе nano:nano Ignite.config
-
Найдите директиву
<workDirectory>
и укажите в ней путь папке базы данных экземпляра ПО:<workDirectory>/var/www/cmw-db</workDirectory>
Путь к новой папке базы данных в файле конфигурации Apache Ignite -
Проверьте наличие, а также дату и время создания файлов и папок в папке с базой данных экземпляра ПО:
cd /var/www/cmw-db/ && ll
cd /var/www/cmw-db/db/ && ll
Должны быть указаны дата и время создания снимка, если дата и время не совпадают с временем создания снимка, необходимо повторить перенос базы данных.
Проверка наличия, даты и времени создания файлов и папок в папке базы данных экземпляра ПО -
Замените права доступа и владельцев папок:
cd /var/www/
chmod -R 777 cmw-db/
sudo chown -R www-data:www-data cmw-db/
-
Проверьте права доступа и владельцев папок:
ll
Проверка прав доступа и владельцев папок
Запуск и проверка конфигурации экземпляра ПО
-
Запустите необходимые службы и проверьте их статус. Статус должен быть
Active: running
:systemctl start elasticsearch kafka nginx comindware<instanceName>
systemctl status elasticsearch kafka nginx comindware<instanceName>
Проверка активного состояния сервисов -
Перезапустите машину.
- Откройте в браузере веб-сайт с экземпляром ПО, например
localhost
. -
Дождитесь инициализации экземпляра ПО после перезапуска. Этот процесс может занять некоторое время. Может потребоваться обновить страницу браузера.
- Если загрузка веб-страницы экземпляра ПО завершается ошибкой, заново выполните перенос базы данных с полным удалением всего содержимого папки базы данных экземпляра ПО и использованием предыдущей резервной копии.
-
Проверьте и исправьте конфигурацию экземпляра ПО, как указано в статье «Проверка и настройка конфигурации экземпляра ПО после восстановления из резервной копии».