原文:https://help.sonatype.com/repomanager3/backup-and-restore/prepare-a-backup
开始备份
NXRM将数据存储在blob存储中。元数据和配置信息在数据库中分开存储。必须同时备份blob存储和元数据数据库,否则在恢复时可能导致错误。您的备份策略应该包括将数据库和blob存储一起备份到一个新位置,以保持数据的完整性。
Blob存储备份
包含blob的文件存储或对象存储必须在NXRM外部进行备份。
- 对于文件存储,blobs的存储目录必须要备份。默认配置是
$data-dir/blobs
- 对于S3 blob存储,可以使用桶版本控制作为备份的替代方案,或者可以将桶镜像到另一个S3存储桶。
Node ID备份
每一个nexus repo实例都包含一个与他相关的唯一性ID。这个id需要进行备份以便在恢复时让nexus埋点,以及nexus防火墙报告功能可以正常使用。需要备份的node Id 位于:
$data-dir/keystores/node/
Database备份
导出的数据库里包含多个repositories的components以及assets对于blob存储的指针。如果不一起备份它们,component metadata可能指向不存在的blob存储,或当你试图恢复备份时发生一些错误。所以为了数据的正确性,你的备份策略必须包含database以及blob存储,并将他们报错到一个新的地址。
下面是custom configurations以及database一起备份的一个事例:
- 配置
Admin - Export databases for backup
以导出databases。 - 运行定时任务以导出databases
- 在运行导出databases任务的同时,备份你在安装目录以及数据目录下的configurations文件。
- 备份所有blob存储。
- 将上面所有的数据统一存储在一起以用作备份。
在备份期间,对于database的访问将被挂起。建议在非工作时间安排备份任务。
原文:https://help.sonatype.com/repomanager3/backup-and-restore/configure-and-run-the-backup-task
配置以及运行备份任务
为了配置和运行一个新的database备份任务,需要回顾 Configuring and Executing Tasks章节的内容。back任务的表单里包含一个额外的字段叫Backup location
,这个字段用来指定你备份需要保存的目录,如下图
当任务运行时,备份产物将输出到
Backup location
字段所指定的目录。目录下将包含许多.bak
文件,这些文件对应以下database:Component
在repository manager中组成components的所有相关数据。
Configuration
通用配置,例如 scheduled tasks, email server configuration
** Security**
所有用户和访问权限管理内容
根据任务启动的时间,所有备份文件都以时间戳格式显示。
原文:https://help.sonatype.com/repomanager3/backup-and-restore/restore-exported-databases
恢复备份文件
你可以用备份文件将你的databases文件恢复到你执行备份任务时的状态,要求你这么做:
- 进入
Backup location field from the Admin - Export databases for backup
配置中指定的导出目录 - 删除所有的databases目录以便将他们恢复到之前的状态。
恢复应该包括备份过程中导出的所有数据库,不应该单独的恢复某次备份的某个文件,而是应该整体恢复(即具有相同时间戳的文件)。
恢复database遵循以下步骤:
- 关闭Nexus Repository Manager
- 删除
$data-dir/db
目录下的以下文件夹
component
config
security
- 进入你存放备份文件的目录
- 将相关的
.bak
文件拷贝到$data-dir/restore-from-backup
用于恢复(注意:对于3.10.0或更早的版本,使用$data-dir/backup
作为恢复位置) - 恢复database相关联的blob存储的备份
- 重启 Nexus Repository Manager
- 确认NXRM运作正常
- 从
restore-from-backup
目录中删除.bak
文件。
你可以通过查看前一次完全恢复的database文件从$data-dir/nexus3/db
中删除来确定本次恢复已经完成。
如上所述,在恢复component数据库时,还必须恢复包含组件的相应blob存储。不这样做将导致blob和数据库之间的同步问题。
如果blob存储和数据库备份不是在完全相同的时间进行的,那么它们可能在恢复之后导致数据不同步。可以通过以下方式解决这个问题:
Repair - Reconcile component database from blob store task under System → Tasks in the Adminitration UI.