Featured image of post Миграция и восстановление данных Nexus

Миграция и восстановление данных Nexus

При миграции Nexus на новый сервер или в Docker необходимо обеспечить резервное копирование и восстановление данных. Ниже представлена полная процедура резервного копирования и восстановления:…

При миграции Nexus на новый сервер или в Docker необходимо провести резервное копирование и восстановление данных. Ниже представлена полная процедура резервного копирования и восстановления:

Резервное копирование

Репозиторий Nexus хранит данные в блоб-стораже и часть метаданных, а также конфигурационную информацию в базе данных. Необходимо одновременно резервировать как блоб-склад, так и базу данных метаданных. Стратегия резервного копирования должна предусматривать одновременное резервное копирование базы данных и блоб-стоража в новое место для обеспечения целостности данных.

Следуйте приведённым ниже шагам для выполнения резервного копирования:

  1. Резервное копирование блоб-стоража

Необходимо отдельно провести резервное копирование файловой системы или объектного хранилища, содержащего блобы.

Для блоб-стоража на основе файлов следует сделать резервную копию директории, где хранятся блобы. Для типовой конфигурации это будет $data-dir/blobs.

Расположение директории для данных можно найти в файле bin/nexus.vmoptions.

Перейдите в директорию данных и выполните команду для упаковки: tar -czvf blobs.tar.gz blobs.

Для блоб-стоража S3 можно использовать версионный контроль бакета в качестве альтернативы резервному копированию. Также можно сделать зеркальную копию бакета в другой S3 бакет.

  1. Резервное копирование идентификатора узла

Каждый экземпляр репозитория Nexus связан с уникальным идентификатором. Необходимо сохранить этот идентификатор, чтобы при восстановлении или перемещении Nexus с одного сервера на другой метрики блоб-стоража (размер и количество блобов на диске) и отчёты Nexus Firewall могли работать корректно. Файл для сохранения идентификатора узла находится по следующему пути (смотрите также директорию):

$data-dir/keystores/node/

Перейдите в директорию keystores и запакуйте идентификатор узла: cd keystores && tar -czvf node.tar.gz node.

Для использования этой резервной копии поместите файлы в то же место перед запуском Nexus.

  1. Резервное копирование базы данных

Резервное копирование базы данных необходимо создавать через интерфейс Nexus.

Путь: Nexus Repository Manager -> Система -> Задачи -> Создать задачу -> “Admin – Экспортировать базы данных для резервного копирования”.

Резервное копирование данных Nexus.

Выберите кнопку Создать задачу, чтобы перейти к следующему интерфейсу ↓

Резервное копирование данных Nexus.

Заполните поля, выделенные красным, согласно изображению выше.

Резервное копирование данных Nexus.

После завершения нажмите на только что созданную задачу и затем нажмите кнопку “Запустить” для выполнения резервного копирования.

Когда задача запущена, данные резервного копирования экспортируются по указанному в поле “Backup location” пути. В результате будут созданы .bak файлы, содержащие следующие базы данных:

  • Component – компоненты, все связанные данные о компонентах в системе управления репозиториями
  • Configuration – конфигурация, общая информация по управлению, такому как запланированные задачи и конфигурация почтового сервера
  • Security – безопасность, вся информация о пользователях и управлении доступом

Все файлы резервного копирования отображаются с временной меткой на основе времени начала задачи.

Во время выполнения задачи резервного копирования репозиторий временно перейдёт в режим только для чтения. В это время не производите никаких действий, просто ожидайте.

Восстановление Nexus

После завершения резервного копирования на старом сервере скопируйте резервные файлы блобов, идентификатор узла и базу данных на новый сервер для восстановления.

Здесь восстановление будет продемонстрировано в среде Docker. Инструкция по установке Nexus в Docker.

Поскольку была выполнена привязка директории nexus-data, мы можем просто разместить данные в родительском каталоге.

  1. Восстановление блоб-стоража

Перейдите в директорию, соответствующую привязке docker к nexus-data, затем войдите в директорию blobs и удалите прежний default.

Выполните команду распаковки: tar -zxvf blobs.tar.gz.

  1. Восстановление идентификатора узла

Перейдите в директорию keystores и разархивируйте содержимое node: cd keystores && tar -zxvf node.tar.gz.

Резервное копирование данных Nexus.

  1. Восстановление базы данных

Остановите репозиторий Nexus.
Удалите директории component, config, security в каталоге $data-dir/db.
Скопируйте соответствующие резервные .bak файлы баз данных в $data-dir/restore-from-backup для восстановления (Обратите внимание: для версии 3.10.0 и более ранних версий восстановление происходит в директории $data-dir/backup).
Восстановите резервные блоб-стораж и файлы идентификатора узла, соответствующие резервной копии базы данных.
Перезапустите репозиторий Nexus и проверьте его работу.
Удалите .bak файлы из директории restore-from-backup.

  1. Выполнение восстановления данных

После завершения восстановления интерфейс может не отображать возможные поисковые функции. Необходимо провести восстановление данных.

4.1 Восстановление метаданных компонентов в базе данных из блоб-стоража

Nexus Repository Manager -> Система -> Задачи -> Создать задачу -> “Repair – Согласование базы данных компонентов из блоб-стоража”.

Резервное копирование данных Nexus.

4.2 Восстановление просмотра

Nexus Repository Manager -> Система -> Задачи -> Создать задачу -> “Repair – Восстановление просмотра репозитория”.

Резервное копирование данных Nexus.

4.3 Восстановление поиска

Nexus Repository Manager -> Система -> Задачи -> Создать задачу -> “Repair – Восстановление поиска в репозитории”.

Резервное копирование данных Nexus.

На этом миграция завершена.

Licensed under CC BY-NC-SA 4.0
Создано при помощи Hugo
Тема Stack, дизайн Jimmy