现象:
解决步骤:
1、停止nexus服务
bash /opt/nexus/bin/nexus stop
2、备份数据库
注意数据库库名,本例为component
bash cp -r /opt/sonatype-work/nexus3/db/component /data/backup/
3、启动nexus的jar包
代码语言:javascript复制cd /opt/nexus/lib/support/
java -jar nexus-orient-console.jar
# 如果nexus的数据库很大,在执行导出操作时可能会报heap OOM错误,可以在启动时调大内存
java -jar -Xms4g -Xmx4g nexus-orient-console.jar
4、连接数据库,修复数据库
代码语言:javascript复制# 连接有错误的数据库
orientdb> connect PLOCAL:/opt/sonatype-work/nexus3/db/component admin admin
# 导出
orientdb {db=component}> EXPORT DATABASE /data/backup/orientdb-component.export
# 关闭连接
orientdb {db=component}> DISCONNECT
# 删除有问题的库
orientdb> DROP DATABASE PLOCAL:/opt/sonatype-work/nexus3/db/component admin admin
# 重新创建有问题的库
orientdb> CREATE DATABASE PLOCAL:/opt/sonatype-work/nexus3/db/component admin admin
# 导入
orientdb {db=component}> IMPORT DATABASE /data/backup/orientdb-component.export.gz
# 关闭连接
orientdb {db=component}> DISCONNECT
# 退出控制台
orientdb> EXIT
5、启动nexus服务
bash /opt/nexus/bin/nexus start