nexus3 数据迁移及升级3.71+
转载请注明出处: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
文件夹,推荐直接压缩文件夹放到其它地方。
官方提供的升级流程:
- 必须先升级到
3.70
- 使用提供的工具迁移数据库到
H2
- 升级到3.71+
二、迁移数据库到H2
首先需要下载两个程序nexus-3.70.3-01-java11
及 nexus-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
是不能成功的,因为之后的版本未提供OrientDB
→ H2
的选项,只有h2_to_postgres
和postgres_to_h2
。
1. 解压nexus-3.70.3
下载nexus-3.70.3-01-java11
后,解压到任意新位置。主要不要覆盖到之前的nexus
。
2. 复制sonatype-work
复制之前的sonatype-work
文件夹到3.70的同级目录下,覆盖新目录下的sonatype-work
。
3.运行并导出数据库
直接在新的3.70.3
下找到bin目录,执行nexus.exe /run
运行新的nexus3.70
eg.
\nexus-3.70.3-01\bin\nexus.exe /run
由于低版本升级到3.70
会自动处理数据库,所以相比之前的启动会慢些。
-
待系统启动完毕,进入默认的
http://127.0.0.1:8081/
,输入旧系统(3.36.0)中之前的管理员用户名及密码(因为sonatype-work
已覆盖,所以其实是使用的旧版本的数据),然后依次点击顶部齿轮
→System
→Tasks
→Create task
新建一个任务。
-
任务选择
Admin-Export databases for backup
,依次填入任务名称,备份地址(不会的可按下图填写),最后点击Create task
创建任务。
-
点击刚才创建的任务进入任务详情,点击顶部
Run
手动执行一次备份(导出)操作,一般很快,几秒就可以完成。由于不会自动刷新,所以可以F5刷新页面查看任务状态,等待Status Running
变为Status Waiting
及Last result Ok
的出现。
-
停止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
文件,这个就是迁移后的数据库文件,后面会需要。
三、升级到最新版本
下载最新版本的nexus3(当前nexus-3.73.0-12
),解压后把刚才3.70.3
中整个sonatype-work
又复制到nexus-3.73.0-12
同级目录下,覆盖3.73的sonatype-work
。
- 进入3.73的
sonatype-work\sonatype-work\nexus3\db
,删除之前的database数据文件,放入新的nexus.mv.db
(也就是db目录下只有一个nexus.mv.db文件)
- 修改
sonatype-work\nexus3\etc\nexus.properties
文件,新增一行
nexus.datastore.enabled=true
注意是sonatype-work
下的etc,不是nexus-3.xx\etc
,不要找错目录。
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
- 如果完整测试没问题,可以删除备份的
sonatype-work\nexus3\exportFile
,可以保留也不影响。 - 老版本的nexus推荐整体打一个压缩包备份(
nexus-3.36.0-01 + sonatype-work
)保留一段时间。
四、总结与注意事项
- 注意:备份!备份!备份!从第一步开始的时候,一定要备份原始的
sonatype-work
文件夹,推荐直接压缩文件夹放到其它地方。 - 迁移+升级流程
如果不涉及数据库升级流程(eg.
OrientDB
→H2
),大部分情况只需下载最新的nexus,然后复制sonatype-work
目录覆盖新版本的目录即可,nexus首次启动系统会自动操作数据的升级。 - 小内存机器可以设置
nexus3\nexus-3.73.0-12\bin\nexus.vmoptions
文件,修改默认内存分配大小。但是网页内会弹出警告
-Xms512m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m
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