1 Nexus备份
nexus完整的备份需要执行如下备份步骤:
1、Blob文件的备份
2、数据库备份
Blob文件备份:
可以直接使用tar命令将$data-dir/blobs
目录下的所有目录打包进行备份。$data-dir
缺省在sonatype-work/nexus3
目录。
数据库备份:
1、在管理页面中新建Tasks,创建定时备份任务。配置Admin - Export databases for backup
。
2、填入备份文件的存放路径和执行频率。
2 nexus恢复
1、停止nexus服务:service nexus stop
2、移除$data-dir/db
中的下列目录:
。accesslog
。analytics
。audit
。component
。config
。security
3、将备份目录中的所有.bak文件拷贝到$data-dir/restore-from-backup
。
4、删除$data-dir/blobs下的所有文件,然后将备份的Blob文件解压到$data-dir/blobs。
5、重启nexus。
3 记录一次nexus异常停机造成OrientDB数据库损坏处理
描述:
启动报错:unable to read database frozen state marker file
- nexus无法启动,日志报错如上。
- 备份的文件无法正常恢复数据库
3.1 尝试修复数据库
参考:https://blog.csdn.net/qq_27384769/article/details/114671745
https://blog.csdn.net/mutian6655/article/details/112758278
停止服务
1 | # 停止nexus |
使用自带的jar包工具连接数据库
1 | # 到Nexus安装目录下/lib/support下,运行nexus-orient-console.jar |
数据库的相关操作命令
1 | # 连接出错的数据库(注意出错的库不见得与笔者一致,注意查看出错日志) |
连接数据库后,尝试修复数据库
备注:修复前,请删除对应数据库目录下的
*.wal
文件
1 | # 尝试修复数据库,重建索引等信息 |
3.2 本次出问题的数据库如下
问题数据库: component config 2个数据库,component 经过修复恢复,config无法修复。
解决办法:
- 通过上面步骤尝试修复数据库
- 重新解压缩neuxs安装包文件,并启动服务进行初始化
- 关闭nexus服务
- 删除 db目录下的component conf securtiy 数据目录
- 拷贝G:/backup下的2020年的备份文件到
新$data-dir/restore-from-backup
目录 - 拷贝blobs下的数据到
新$data-dir/blobs
下 - 启动nexus,恢复数据成功
- 关闭nexus
- 拷贝旧版本下的数据库目录component和securtiy到
新$data-dir/db
下 - 启动nexus成功,出现新问题(com.orientechnologies.orient.core.exception.OCommandExecutionException: Target index ‘BROWSE_NODE_REPOSITORY_NAME_PARENT_PATH_NAME_IDX’ not found
DB name="component")造成Browse浏览数据都为空![image-20221008165046779](https://operationman-1258630122.cos.ap-nanjing.myqcloud.com/images-master/image-20221008165046779.png)
- 通过数据库连接工具,删除browse_node及浏览器索引(参考https://issues.sonatype.org/browse/NEXUS-16419处理)
1 | # 执行此命令,将路径的 nexus-3.9.0-01 部分替换为您的 nexus 安装路径: |
- 启动nexus,数据自动重建,可正常浏览数据。
备注:根据这次处理,说明服务的自动备份存在一定问题,一定要定期做数据恢复测试