ActiveMQ升级实战:将ActiveMQ升级到最新版本,保留关键数据

当前的ActiveMQ在使用中经常触发已知BUG导致应用系统出现故障,需要升级已修复的最新版本。本文主要记录如何更新升级ActiveMQ到最新版本并且保留持久化数据,以下所有操作需要在全部主机节点上执行。 当前生产使用的ActiveMQ版本为5.17.2并有持久化数据若干,如下图所示:ActiveMQ升级实战:将ActiveMQ升级到最新版本,保留关键数据ActiveMQ升级实战:将ActiveMQ升级到最新版本,保留关键数据

解决方案

1.关闭当前ActiveMQ

我们首先要关闭所有节点上的ActiveMQ应用。

[root@yunweixia.com ~]# ps aux|grep activemq
root       2502  0.2  0.0  17864   700 ?        Sl   06:35   0:01 /root/activemq/bin/linux-x86-64/wrapper /root/activemq/bin/linux-x86-64/wrapper.conf wrapper.syslog.ident=ActiveMQ wrapper.pidfile=/root/activemq/bin/linux-x86-64/./ActiveMQ.pid wrapper.daemonize=TRUE wrapper.lockfile=/var/lock/subsys/ActiveMQ
root       2504  5.4  2.3 4932112 375300 ?      Sl   06:35   0:33 java -Dactivemq.home=../.. -Dactivemq.base=../.. -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStorePassword=password -Djavax.net.ssl.keyStore=../../conf/broker.ks -Djavax.net.ssl.trustStore=../../conf/broker.ts -Dcom.sun.management.jmxremote -Dorg.apache.activemq.UseDedicatedTaskRunner=false -Djava.util.logging.config.file=logging.properties -Dactivemq.conf=../../conf -Dactivemq.data=../../data -Djava.security.auth.login.config=../../conf/login.config -Xms1024m -Xmx1024m -Djava.library.path=../../bin/linux-x86-64/ -classpath ../../bin/wrapper.jar:../../bin/activemq.jar -Dwrapper.key=wEVJiZv2mxAloU0Z -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=2502 -Dwrapper.version=3.2.3 -Dwrapper.native_library=wrapper -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1 org.tanukisoftware.wrapper.WrapperSimpleApp org.apache.activemq.console.Main start
root       2714  0.0  0.0 112808   964 pts/1    S+   06:46   0:00 grep --color=auto activemq
[root@yunweixia.com ~]# cd /root/activemq/bin/linux-x86-64/
[root@yunweixia.com linux-x86-64]# ./activemq stop
Stopping ActiveMQ Broker...
Stopped ActiveMQ Broker.

2.备份当前ActiveMQ

[root@yunweixia.com ~]# mv  /root/activemq/  /root/activemq-202309/

3.上传最新版本ActiveMQ

访问https://activemq.apache.org/components/classic/download/页面,记录本文时最新版本为ActiveMQ 5.17.5,下载该版本并上传到所有服务器节点。

[root@yunweixia.com ~]# ll 
total 2566272
-rw-r--r--.  1 root root 2578473406 Sep 13 05:17 activemq100-20230912.tar.gz
drwxr-xr-x. 11 root root        204 Nov 29  2022 activemq-202309
-rw-------.  1 root root       1549 Sep  9 04:16 anaconda-ks.cfg
-rw-r--r--.  1 root root   49380448 Sep 13 06:55 apache-activemq-5.17.5-bin.tar.gz

4.解压最新版本

将最新版本解压后,修改为和备份前旧版本ActiveMQ相同的路径,减少修改环境变量的步骤。

[root@yunweixia.com ~]# tar -xzvf apache-activemq-5.17.5-bin.tar.gz
[root@yunweixia.com ~]# mv apache-activemq-5.17.5 activemq

5.替换和更新

(1)替换/conf目录中的文件

将新上传解压的ActiveMQ目录中的/conf目录内文件全部删除。

[root@yunweixia.com ~]# rm -rf activemq/conf/*

拷贝旧版本/conf目录中所有内容到新上传解压的ActiveMQ软件的相同目录。

[root@yunweixia.com ~]# cp -arf /root/activemq-202309/conf/* /root/activemq/conf/

(2)更新持久化数据

拷贝旧版本/data/kahadb目录到新上传解压的ActiveMQ软件的/data目录。

[root@yunweixia.com ~]# cp -arf /root/activemq-202309/data/kahadb/ /root/activemq/data/

6.启动ActiveMQ

[root@yunweixia.com ~]# cd /root/activemq/bin/linux-x86-64/
[root@yunweixia.com linux-x86-64]# ./activemq start 
Starting ActiveMQ Broker...

7.访问验证

访问http://ip:8161,账号密码记录在/conf/jetty-realm.properties文件。登录后可见ActiveMQ版本已升级为5.17.5并且保留持久化数据。如下所示:ActiveMQ升级实战:将ActiveMQ升级到最新版本,保留关键数据ActiveMQ升级实战:将ActiveMQ升级到最新版本,保留关键数据

全文总结

本文仅适用于小版本升级,如果需要跨版本升级,例如从5.17.5升级到5.18.2可能存在启动失败的情况,需要调整/conf/activemq.xml文件。

原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/activemq-upgrade-retain-critical-data-guide.html

(0)
运维侠的头像运维侠共建用户
上一篇 2025年8月4日 18:11
下一篇 2025年8月6日 18:11

相关推荐

发表回复

登录后才能评论