Featured image of post Nexus的数据备份迁移与还原

Nexus的数据备份迁移与还原

Nexus 要迁移到新的服务器或者 docker 上,就涉及到数据的备份和还原。下面是一次完整的备份还原工程:…

Nexus 要迁移到新的服务器或者 docker 上,就涉及到数据的备份和还原。下面是一次完整的备份还原工程:

备份

Nexus 仓库将数据存储在 blob 存储中,并将部分元数据和配置信息分别存储在数据库中。您必须一起备份 blob 存储和元数据数据库。备份策略应涉及同时备份数据库和 blob 存储到新位置以保持数据完整。

执行以下步骤进行备份:

1.Blob 存储备份

必须单独备份包含 blobs 的文件系统或对象存储。

对于文件型 Blob 存储,请备份存储 blobs 的目录。对于典型配置,这将是 $data-dir/blobs。

nexus 的 bin/nexus.vmoptions 可以看到 data 数据目录的存放位置

进入 data 目录进行打包命令  tar -czvf  blobs.tar.gz blobs

对于 S3 Blob 存储,您可以使用存储桶版本控制作为备份的替代方案。您也可以将存储桶镜像到另一个 S3 存储桶中。

2.Node ID 备份

每个 Nexus 仓库实例都与唯一的 ID 相关联。您必须备份此 ID,以便在还原 / 将 Nexus 仓库从一台服务器移动到另一台服务器时,blob 存储度量(磁盘上 blobs 的大小和数量)和 Nexus 防火墙报告能够正常运行。要保留节点 ID 的文件位于以下位置(也请参阅目录):

$data-dir/keystores/node/

进入 keystores 目录进行 node 节点的打包 cd keystores && tar -czvf node.tar.gz node

为了使用此备份,在启动 Nexus 仓库之前,请将这些文件放置在相同的位置。

3. 数据库备份

数据库的备份需要再 nexu 后台创建 Task 进行。

路径为:Nexus Repository Manager –> System –> Tasks –> Create task –> “Admin – Export databases for backup”

Nexus 的数据备份迁移与还原

选择 Create task 按钮进入如下界面↓

Nexus 的数据备份迁移与还原

按照上图填写内容带有红字的地方

Nexus 的数据备份迁移与还原

完成之后点击刚才创建的 task 然后点击 run 按钮运行备份。

当任务运行时,它会将备份数据导出到 Backup location 字段中指定的路径。将包含以下数据库的 .bak 文件:

Component – 组件,构成存储库管理器中组件的所有相关数据

Configuration – 配置,常规管理配置,例如计划任务和电子邮件服务器配置

Security – 安全,所有用户和访问权限管理内容

所有备份文件都以基于任务开始时间的时间戳格式显示。

在备份任务运行时,存储库将暂时进入只读状态。这个时候不要进行任何的操作,等待即可。 Nexus 还原

当我们在旧服务器上备份完成之后,把备份的 blobs、node ID、数据库拷贝到新的服务器上进行还原。

这里以 Docker 环境下的 Nexus 为还原做演示。Docker 下安装 Nexus 教程

因为做了 nexus-data 目录的映射,我们直接把数据放在母机的映射目录即可。

1. 还原 Blob 存储

进入到 docker 映射的 nexus-data 目录,然后进入到 blobs 目录删除原来的 default。

执行解压命令:tar -zxvf blobs.tar.gz

2. 还原 Node ID

进入 keystores 目录进行 node 目录 cd keystores && tar -zxvf node.tar.gz

Nexus 的数据备份迁移与还原

3. 还原数据库

停止 Nexus 存储库

删除目录 $data-dir/db 中的 component、config、security 目录

将相应的数据库备份 .bak 文件复制到 $data-dir/restore-from-backup 进行恢复(注意:对于版本 3.10.0 或更早版本,恢复目录位置 $data-dir/backup)

还原与 DB 备份对应的 Blob Store 备份 和 Node ID 文件

重新启动 Nexus 存储库,并验证 Nexus 存储库是否正常运行

从 restore-from-backup 目录中删除.bak 文件

4. 执行数据修复

恢复完成之后再界面上是无法进行搜索看到的。需要进行数据修复。

4.1 通过 blob store 恢复数据库中的组件元数据

Nexus Repository Manager –> System –> Tasks –> Create task –> “Repair – Reconcile component database from blob store”

Nexus 的数据备份迁移与还原

4.2 重建 Browse

Nexus Repository Manager –> System –> Tasks –> Create task –> “Repair – Rebuild repository browse”

Nexus 的数据备份迁移与还原

Nexus Repository Manager –> System –> Tasks –> Create task –> “Repair – Rebuild repository search”

Nexus 的数据备份迁移与还原

至此迁移完成。

转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
使用 Hugo 构建
主题 StackJimmy 设计