Midvision服务器MQ 8.0升级至9.3:求最小停机分步指南
Midvision MQ 8.0 → 9.3 最小停机升级分步指南
前提说明
以下流程基于多实例高可用集群部署(这是实现最小停机的核心架构),单实例场景的简化方案会单独列出。
一、升级前准备
- 全量备份MQ数据
- 导出队列管理器配置:
dmpmqcfg -m <QM_NAME> -o xml > qm_backup.xml - 备份消息数据:通过
runmqsc执行DISPLAY QL(*)确认队列状态,对关键队列执行SAVE QL(<QUEUE_NAME>),同时备份MQ安装目录(默认/var/mqm)及配置文件
- 导出队列管理器配置:
- 兼容性验证
- 确认所有连接MQ的应用客户端版本与9.3兼容(MQ 8.0客户端可兼容9.3服务端,但建议提前测试)
- 检查自定义脚本、监控工具是否适配9.3的命令行接口变化
- 预准备安装包
- 下载MQ 9.3官方安装包,解压到服务器临时目录,确保安装文件权限为
root或MQ管理员用户可执行
- 下载MQ 9.3官方安装包,解压到服务器临时目录,确保安装文件权限为
二、集群滚动升级(最小停机核心流程)
假设集群包含主实例(Node A)和备实例(Node B)
升级备实例(Node B)
- 停止备机队列管理器:
endmqm -w <QM_NAME>(等待所有进程结束) - 卸载MQ 8.0:执行系统包管理命令(如
rpm -ivh --erase <mq-packages>),注意保留/var/mqm配置数据目录 - 安装MQ 9.3:运行安装程序,选择"保留现有配置"选项,完成后执行
setmqinst -i -p <MQ_INSTALL_PATH>设置默认实例 - 启动备机队列管理器:
strmqm <QM_NAME>,用dspmq确认状态为STANDBY - 验证同步状态:通过
runmqsc <QM_NAME>执行DISPLAY CLUSQMGR,确认备机与主机配置同步
- 停止备机队列管理器:
触发主备切换
- 执行集群切换命令:
rsmqm -s <QM_NAME>(不同集群部署工具可能命令不同,如使用HADR则对应HADR切换命令) - 验证切换结果:
dspmq确认Node B变为RUNNING(主实例),Node A变为STANDBY(备实例) - 业务验证:检查应用日志,确认消息收发正常,无连接中断或报错
- 执行集群切换命令:
升级原主实例(Node A)
- 停止Node A的队列管理器:
endmqm -w <QM_NAME> - 卸载MQ 8.0,重复安装MQ 9.3的步骤
- 启动Node A队列管理器:
strmqm <QM_NAME>,确认状态为STANDBY - 最终集群验证:
dspmq查看两个实例均为9.3版本,且集群同步正常
- 停止Node A的队列管理器:
三、单实例场景最小停机方案
若为单实例部署,需通过"并行实例切换"实现最小停机:
- 新建一台服务器安装MQ 9.3,导入备份的队列管理器配置:
crtmqm <QM_NAME> && dmpmqcfg -m <QM_NAME> -i xml < qm_backup.xml - 逐步修改应用客户端的连接地址,将流量切换到新实例
- 待所有流量迁移完成后,停止旧8.0实例,清理旧服务器资源
四、升级后验证
- 检查所有队列管理器状态:
dspmq,确保均为RUNNING或STANDBY状态 - 消息收发测试:发送测试消息至关键队列,确认能正常生产、消费
- 日志检查:查看
/var/mqm/log/<QM_NAME>/AMQERR01.LOG,确保无升级相关错误 - 客户端连接验证:确认所有应用客户端稳定连接9.3实例,无频繁重连情况
注意事项
- 升级前必须在测试环境完整演练流程,确认无兼容性问题
- 升级过程中禁止修改队列管理器配置,避免同步异常
- 若升级后出现异常,立即回滚到备份的8.0环境
内容的提问来源于stack exchange,提问作者Hareesh Dasari
相关产品推荐
相关产品推荐

