目录
备份
Nexus Repository将组件存在blob store中,将组件元数据和配置信息存在数据库中(默认OrientDB)。所以备份的时候需要同时备份blob store和数据库,以确保数据的完整。
1.备份blob store
- 如果是文件存储,blob store目录位置在 $data-dir/blobs。
- 如果是使用S3。可以使用版本控制来代替备份,也可以将存储桶镜像到另一个S3。
2.备份Node ID
每个 Nexus Repository 实例都与一个不同的 ID 相关联。您必须备份此 ID,以便 Blob 存储指标(磁盘上 Blob 的大小和数量)和 Nexus Firewall 报告在还原时起作用。
- Node ID文件位置:$data-dir/keystores/node/
3.创建Task备份数据库(OrientDB)
Nexus Repository Manager --> System --> Tasks --> Create task --> "Admin - Export databases for backup"
当任务运行时,它会将备份数据导出到Backup location字段中指定的路径。将包含以下数据库的 .bak 文件:
- Component - 组件,构成存储库管理器中组件的所有相关数据
- Configuration - 配置,常规管理配置,例如计划任务和电子邮件服务器配置
- Security - 安全,所有用户和访问权限管理内容
所有备份文件都以基于任务开始时间的时间戳格式显示。
请注意,在备份任务运行时,存储库将暂时进入只读状态。
恢复
1.恢复blob store&Node ID
当Nexus发生故障,出现了需要重新搭建一台nexus是。在搭建新的nexus后,可以通过rsync备份、共享存储备份等方式,将blob store的数据拷贝或挂载到blobs目录。恢复blobs目录的数据后,启动nexus。
blob store目录位置:$data-dir/blobs
Node ID文件位置:$data-dir/keystores/node/
新的nexus启动后,虽然blobs中有我们备份的数据,但是在控制台的Search和Browse里看不到任何原有的组件信息。
2.恢复数据库数据
- 停止 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 文件
3.执行任务修复数据
3.1 通过blob store恢复数据库中的组件元数据
Nexus Repository Manager --> System --> Tasks --> Create task --> "Repair - Reconcile component database from blob store"
3.2 重建Browse
Nexus Repository Manager --> System --> Tasks --> Create task --> "Repair - Rebuild repository browse"
3.3 重建Search
Nexus Repository Manager --> System --> Tasks --> Create task --> "Repair - Rebuild repository search"
参考文档
备份操作
Taskshttps://help.sonatype.com/repomanager3/nexus-repository-administration/tasks