Sonatype nexus3 数据迁移及升级3.71+(迁移到H2数据库)

转载请注明出处:https://blog.csdn.net/hx7013/article/details/143499095

一、需求描述

现有一个nexus3的私有仓库,需要迁移到另一台新的服务器,同时由于之前架设的nexus比较早,版本也比较落后(OSS 3.36.0-01),想着迁移的时候顺便升级到最新版本(当下为3.73.0-12)。
看了下官方的说明,由于3.71.0+不再支持之前内置的OrientDB,所以迁移会涉及:

  • 迁移数据库到H2
  • 升级到3.73.0-12

升级是比较简单的,替换sonatype-work目录即可,但是由于内置数据库的不兼容,所以需要进行多步操作。

注意:备份!备份!备份!从第一步开始的时候,一定要备份原始的sonatype-work文件夹,推荐直接压缩文件夹放到其它地方。


官方提供的升级流程:

  1. 必须先升级到 3.70
  2. 使用提供的工具迁移数据库到H2
  3. 升级到3.71+

nexus3升级

二、迁移数据库到H2

首先需要下载两个程序nexus-3.70.3-01-java11nexus-db-migrator-3.70.3-01.jar(下载地址见文末),注意这里是对3.70进行操作,所以一定只能使用 nexus-db-migrator-3.70.3-01.jar,如果使用更高的版本,比如nexus-db-migrator-3.73.0-03.jar是不能成功的,因为之后的版本未提供OrientDBH2的选项,只有h2_to_postgrespostgres_to_h2

1. 解压nexus-3.70.3

下载nexus-3.70.3-01-java11后,解压到任意新位置。主要不要覆盖到之前的nexus
nexus3

2. 复制sonatype-work

复制之前的sonatype-work文件夹到3.70的同级目录下,覆盖新目录下的sonatype-work
nexus3

3.运行并导出数据库

直接在新的3.70.3下找到bin目录,执行nexus.exe /run运行新的nexus3.70

eg. \nexus-3.70.3-01\bin\nexus.exe /run

由于低版本升级到3.70会自动处理数据库,所以相比之前的启动会慢些。
nexus3

  1. 待系统启动完毕,进入默认的http://127.0.0.1:8081/,输入旧系统(3.36.0)中之前的管理员用户名及密码(因为sonatype-work已覆盖,所以其实是使用的旧版本的数据),然后依次点击顶部齿轮SystemTasksCreate task新建一个任务。
    nexues

  2. 任务选择Admin-Export databases for backup,依次填入任务名称,备份地址(不会的可按下图填写),最后点击Create task创建任务。
    nexus3

  3. 点击刚才创建的任务进入任务详情,点击顶部Run手动执行一次备份(导出)操作,一般很快,几秒就可以完成。由于不会自动刷新,所以可以F5刷新页面查看任务状态,等待Status Running变为Status WaitingLast result Ok的出现。
    nexus3

  4. 停止nexus run,进入新的3.70.3下的备份文件目录sonatype-work\nexus3\exportFile(其中exportFile为刚任务内输入的文件输出目录),复制刚下载的另一个文件nexus-db-migrator-3.70.3-01.jar到备份文件目录。
    然后执行java.exe -Xmx16G -Xms16G -XX:+UseG1GC -XX:MaxDirectMemorySize=28672M -jar nexus-db-migrator-3.70.3-01.jar --migration_type=h2(如果内存不够可减低Xmx及Xms)
    当提示 Do you want to continue [y/n]?是,输入y,然后等到数据库迁移完成。
    完成后在同目录会得到nexus.mv.db文件,这个就是迁移后的数据库文件,后面会需要。
    nexus3nexus3
    nexus3

三、升级到最新版本

下载最新版本的nexus3(当前nexus-3.73.0-12),解压后把刚才3.70.3中整个sonatype-work又复制到nexus-3.73.0-12同级目录下,覆盖3.73的sonatype-work

  1. 进入3.73的sonatype-work\sonatype-work\nexus3\db,删除之前的database数据文件,放入新的nexus.mv.db(也就是db目录下只有一个nexus.mv.db文件)
    nexus3
  2. 修改sonatype-work\nexus3\etc\nexus.properties文件,新增一行
nexus.datastore.enabled=true

注意是sonatype-work下的etc,不是nexus-3.xx\etc,不要找错目录。
nexus3
3. 使用最新的3.73测试运行

eg. \nexus3\nexus-3.73.0-12\bin>nexus.exe /run

由于同样涉及数据库迁移,所以启动还是会很慢,多等待。
启动后登录(旧系统的账户密码)、测试maven下载,测试上传都正常后,停止/run的执行,安装服务并启动。install后面可以赋服务名称,也可以不输入。

bin\nexus.exe /install nexus3
bin\nexus.exe /start
  1. 如果完整测试没问题,可以删除备份的sonatype-work\nexus3\exportFile,可以保留也不影响。
  2. 老版本的nexus推荐整体打一个压缩包备份(nexus-3.36.0-01 + sonatype-work)保留一段时间。

四、总结与注意事项

  1. 注意:备份!备份!备份!从第一步开始的时候,一定要备份原始的sonatype-work文件夹,推荐直接压缩文件夹放到其它地方。
  2. 迁移+升级流程
    nexues3如果不涉及数据库升级流程(eg. OrientDBH2),大部分情况只需下载最新的nexus,然后复制sonatype-work目录覆盖新版本的目录即可,nexus首次启动系统会自动操作数据的升级。
  3. 小内存机器可以设置nexus3\nexus-3.73.0-12\bin\nexus.vmoptions文件,修改默认内存分配大小。但是网页内会弹出警告
-Xms512m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m

nexus3
4.可在 nexus3\nexus-3.73.0-12\etc\nexus-default.properties修改默认端口等数据

转载请注明出处:https://blog.csdn.net/hx7013/article/details/143499095


官方升级文档: Migrating to a New Database

相关文件下载:
官方下载: nexus-db-migrator-3.70.3-01.jar
官方下载: nexus-3.70.3-01-java11-win64.zip
CSDN下载: nexus-db-migrator-3.70.3-01.jar + nexus-3.70.3-01-java11-win64.zip

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值