MQ双版本共存与QMGR迁移

本文详细介绍了在Linux环境下,如何实现WebSphereMQ7.0和7.5两个版本的共存,并且详细阐述了队列管理器(QMGR)从7.0迁移到7.5的步骤,包括环境准备、安装过程、补丁应用和验证等关键环节。多版本共存有助于简化升级流程,减少系统停机时间,并便于测试不同版本的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MQ双版本共存与QMGR迁移

一、环境准备

1. MQ7.0环境

确保7.0版本的补丁版本不低于7.0.1.6,本次安装实施的MQ环境如下:

类别

参数或值

InstPath

/opt/mqm/

DataPath

/var/mqm

Version

7.0.1.6

Platform

WebSphere MQ for Linux (x86-64 platform)

OS

Centos 6.5

qmgrs

QMTEST1

2. 软件包准备

对于Linux平台,多版本安装需要如下软件包,请从系统供应商处获取:

rpm

说明

pax

抽取以及写归档文件的成员文件

rpm-build

用来指示转换的源码不定编译成二进制文件的包

3. 介质准备

  1. 执行以下命令创建相关介质存放文件夹。

mkdir -p /tmp/mq75

mkdir -p /tmp/mq75fix

  1. 上传介质到存放路径。

文件名

中间件

路径

WS_MQ_LINUX_ON_X86_64_7.5.0.2_IMG.tar.gz

IBM WebSphere MQ

/tmp/mq75

7.5.0-WS-MQ-LinuxX64-FP0003.tar.gz

IBM WebSphere MQ Fix

/tmp/mq75fix

二、实施步骤

备份队列管理器对象定义(可选)。

./saveqmgr64.linux –m QMTEST1 –f  /home/mqm/QMTEST1.mqsc20150709

切换到root用户。

su - root

创建mq7.0的软链接。

ln -s /opt/mqm/ /opt/mqm7.0

创建mq7.5安装路径。

mkdir  -p  /opt/mqm7.5

chown  -R  mqm:mqm  /opt/mqm7.5

解压安装介质与补丁

cd /tmp/mq75

nohup  zxvf  WS_MQ_LINUX_ON_X86_64_7.5.0.2_IMG.tar.gz  &

cd /tmp/mq75fix

nohup  zxvf  7.5.0-WS-MQ-LinuxX64-FP0003.tar.gz  &

由于mq已安装在Linux上,将mq7.5的rpm包重建为独特的包,避免与mq7.0的rpm冲突。

解压后的有生成crtmqpkg文件与mq的rpm包,执行crtmqpkg,指定suffix参数为7502。

cd /tmp/mq75

./crtmqpkg 7502

命令执行正确输出如下:

------------------------------------------------------------------------------------

Repackaging WebSphere MQ for "x86_64" using suffix "7502"

###############################################################

Repackaging complete  - rpms are at "/var/tmp/mq_rpms/7502/x86_64"

------------------------------------------------------------------------------------

停掉队列管理器,并确认是否残留mq进程。

dspmq

endmqm –i QMTEST1

ps –ef  | grep –i mq

备份mq数据文件。

cd  /var/mqm

tar  –cvf  /home/mqm/mqvar.tar  ./*

安装MQ7.5。

查看重建的rpm包。

cd  /var/tmp/mq_rpms/7502/x86_64

ls

查看到带有suffix(7502)的rpm。

MQSeriesAMS_7502-7.5.0-2.x86_64.rpm     

MQSeriesMsg_hu_7502-7.5.0-2.x86_64.rpm

MQSeriesClient_7502-7.5.0-2.x86_64.rpm     

……

MQSeriesMsg_es_7502-7.5.0-2.x86_64.rpm    

MQSeriesXRService_7502-7.5.0-2.x86_64.rpm

MQSeriesMsg_fr_7502-7.5.0-2.x86_64.rpm

MQ服务端建议安装的包如下表:

MQSeriesRuntime-7.5.0-2.x86_64.rpm

MQSeriesServer-7.5.0-2.x86_64.rpm

MQSeriesJRE-7.5.0-2.x86_64.rpm

MQSeriesJava-7.5.0-2.x86_64.rpm

MQSeriesSDK-7.5.0-2.x86_64.rpm

MQSeriesClient-7.5.0-2.x86_64.rpm

MQSeriesSamples-7.5.0-2.x86_64.rpm

MQSeriesMan-7.5.0-2.x86_64.rpm

MQSeriesMsg_Zh_CN-7.5.0-2.x86_64.rpm

安装mq7.5的rpm包,指定安装路径/opt/mqm7.5

rpm --prefix /opt/mqm7.5 -ivh MQSeriesRuntime_7502-7.5.0-2.x86_64.rpm 

rpm --prefix /opt/mqm7.5 -ivh MQSeriesServer_7502-7.5.0-2.x86_64.rpm  

rpm --prefix /opt/mqm7.5 -ivh MQSeriesJRE_7502-7.5.0-2.x86_64.rpm          

rpm --prefix /opt/mqm7.5 -ivh MQSeriesJava_7502-7.5.0-2.x86_64.rpm      

rpm --prefix /opt/mqm7.5 -ivh MQSeriesSDK_7502-7.5.0-2.x86_64.rpm

rpm --prefix /opt/mqm7.5 -ivh MQSeriesClient_7502-7.5.0-2.x86_64.rpm 

rpm --prefix /opt/mqm7.5 -ivh MQSeriesMan_7502-7.5.0-2.x86_64.rpm         

rpm --prefix /opt/mqm7.5 -ivh MQSeriesMsg_Zh_CN_7502-7.5.0-2.x86_64.rpm

rpm --prefix /opt/mqm7.5 -ivh MQSeriesSamples_7502-7.5.0-2.x86_64.rpm  

正常安装上,将输出:

rpm --prefix /opt/mqm7.5 -ivh MQSeriesRuntime_7502-7.5.0-2.x86_64.rpm 

Preparing...                ########################################### [100%]

   1: MQSeriesRuntime_7502       ########################################### [100%]

rpm --prefix /opt/mqm7.5 -ivh MQSeriesServer_7502-7.5.0-2.x86_64.rpm   

Preparing...                ########################################### [100%]

   1: MQSeriesServer_7502       ########################################### [100%]

……

rpm --prefix /opt/mqm7.5 -ivh MQSeriesMsg_Zh_CN_7502-7.5.0-2.x86_64.rpm

Preparing...                ########################################### [100%]

1: MQSeriesMsg_Zh_CN_7502       ########################################### [100%]

验证mq7.5是否安装成功

检查MQ7.5的rpm包是否装上。

rpm -qa | grep -i mq | grep 7.5

已安装上的MQ7.5的rpm包如下。

MQSeriesSDK_7502-7.5.0-2.x86_64

MQSeriesRuntime_7502-7.5.0-2.x86_64

MQSeriesSamples_7502-7.5.0-2.x86_64

MQSeriesServer_7502-7.5.0-2.x86_64

MQSeriesJava_7502-7.5.0-2.x86_64

MQSeriesMsg_ja_7502-7.5.0-2.x86_64

MQSeriesJRE_7502-7.5.0-2.x86_64

MQSeriesMan_7502-7.5.0-2.x86_64

MQSeriesMsg_Zh_CN_7502-7.5.0-2.x86_64

MQSeriesClient_7502-7.5.0-2.x86_64

切换到MQ7.5的环境,查看版本信息。

su - mqm

source /opt/mqm7.5/bin/setmqenv –s

dspmqver

已安装成功的版本信息如下。

Name:        WebSphere MQ

Version:     7.5.0.2

Level:       p750-005-150424

BuildType:   IKAP - (Production)

Platform:    WebSphere MQ for Linux (x86-64 platform)

Mode:        64-bit

O/S:         Linux 2.6.32-431.el6.x86_64

InstName:    Installation1

InstDesc:   

Primary:     No

InstPath:    /opt/mqm7.5

DataPath:    /var/mqm

MaxCmdLevel: 750

LicenseType: Production

安装mq7.5补丁。

移走或清空crtmqpkg生成的rpm包。

su - root

cd  /var/tmp/

rm  –rf  mq_rpms

解压后的有生成crtmqfp文件与mq补丁的rpm包,执行crtmqfp,指定suffix参数为7502,与运行crtmqpkg命令指定的一致。

./crtmqfp 7502

补丁rpm重建后输出日志。

Repackaging WebSphere MQ for "x86_64" using suffix "7502"

###############################################################

Repackaging complete  - rpms are at "/var/tmp/mq_rpms/7502/x86_64"

查看重建的rpm包。

cd  /var/tmp/mq_rpms/7502/x86_64

ls

查看到带有suffix(7502)的rpm已生成。

MQSeriesAMS_7502-U200533-7.5.0-5.x86_64.rpm

MQSeriesClient_7502-U200533-7.5.0-5.x86_64.rpm

MQSeriesExplorer_7502-U200533-7.5.0-5.x86_64.rpm

MQSeriesFTAgent_7502-U200533-7.5.0-5.x86_64.rpm

……

MQSeriesXRClients_7502-U200533-7.5.0-5.x86_64.rpm

MQSeriesXRService_7502-U200533-7.5.0-5.x86_64.rpm

给已安装上mq7.5的组件升级补丁

rpm --prefix /opt/mqm7.5 -ivh MQSeriesRuntime -U200533 _7502-7.5.0-5.x86_64.rpm 

rpm --prefix /opt/mqm7.5 -ivh MQSeriesServer -U200533 _7502-7.5.0-5.x86_64.rpm  

rpm --prefix /opt/mqm7.5 -ivh MQSeriesJRE -U200533 _7502-7.5.0-5.x86_64.rpm          

rpm --prefix /opt/mqm7.5 -ivh MQSeriesJava -U200533 _7502-7.5.0-5.x86_64.rpm      

rpm --prefix /opt/mqm7.5 -ivh MQSeriesSDK -U200533 _7502-7.5.0-5.x86_64.rpm

rpm --prefix /opt/mqm7.5 -ivh MQSeriesClient -U200533 _7502-7.5.0-5.x86_64.rpm 

rpm --prefix /opt/mqm7.5 -ivh MQSeriesMan -U200533 _7502-7.5.0-5.x86_64.rpm         

rpm --prefix /opt/mqm7.5 -ivh MQSeriesMsg_Zh_CN -U200533 _7502-7.5.0-5.x86_64.rpm

rpm --prefix /opt/mqm7.5 -ivh MQSeriesSamples -U200533 _7502-7.5.0-5.x86_64.rpm 

正常安装上,将输出:

rpm --prefix /opt/mqm7.5 -ivh MQSeriesRuntime -U200533_7505-7.5.0-2.x86_64.rpm 

Preparing...                ########################################### [100%]

   1: MQSeriesRuntime-U200533_7502       ########################################### [100%]

rpm --prefix /opt/mqm7.5 -ivh MQSeriesServer -U200533_7505-7.5.0-2.x86_64.rpm   

Preparing...                ########################################### [100%]

   1: MQSeriesServer-U200533_7502       ########################################### [100%]

……

rpm --prefix /opt/mqm7.5 -ivh MQSeriesMsg_Zh_CN -U200533_7505-7.5.0-2.x86_64.rpm

Preparing...                ########################################### [100%]

1: MQSeriesMsg_Zh_CN-U200533_7502       ########################################### [100%]

验证mq7.5补丁是否安装成功

检查MQ7.5的rpm包是否装上。

rpm -qa | grep -i mq | grep 7.5 | grep U

已安装上的MQ7.5的rpm包如下。

MQSeriesSDK_7502 -U200533-7.5.0-2.x86_64

MQSeriesRuntime_7502 -U200533-7.5.0-2.x86_64

MQSeriesSamples_7502 -U200533-7.5.0-2.x86_64

MQSeriesServer_7502 -U200533-7.5.0-2.x86_64

MQSeriesJava_7502 -U200533-7.5.0-2.x86_64

MQSeriesJRE_7502 -U200533-7.5.0-2.x86_64

MQSeriesMan_7502 -U200533-7.5.0-2.x86_64

MQSeriesMsg_Zh_CN_7502 -U200533-7.5.0-2.x86_64

MQSeriesClient_7502 -U200533-7.5.0-2.x86_64

切换到MQ7.5的环境,查看版本信息。

su – mqm

source /opt/mqm7.5/bin/setmqenv –s

dspmqver

已安装成功的版本如下。

Name:        WebSphere MQ

Version:     7.5.0.5

Level:       p750-005-150424

BuildType:   IKAP - (Production)

Platform:    WebSphere MQ for Linux (x86-64 platform)

Mode:        64-bit

O/S:         Linux 2.6.32-431.el6.x86_64

InstName:    Installation1

InstDesc:   

Primary:     No

InstPath:    /opt/mqm7.5

DataPath:    /var/mqm

MaxCmdLevel: 750

LicenseType: Production

验证mq的多版本共存

dspmqinst         #或dspmqver -i

查看到mq7.0与7.5已共存。根据参数“Primary”的值,可以看出 MQ V7.0 为主安装版本。那么,在默认情况下,将运行 MQ 7.0。

InstName:      Installation0

InstDesc:      IBM WebSphere MQ Installation

Identifier:    0

InstPath:      /opt/mqm

Version:       7.0.1.6

Primary:       Yes

State:         Available

InstName:      Installation1

InstDesc:                                                                     

Identifier:    1

InstPath:      /opt/mqm7.5

Version:       7.5.0.5

Primary:       No

State:         Available

设置mqm用户的mq运行环境变量为7.5版本。

cd

vi .bash_profile

追加如下。

source /opt/mqm7.5/bin/setmqenv -s

迁移队列管理器(qmgr)。

查看运行的qmgr版本与状态。

dspmq -o all

查看到qmgr版本是7.0.1.6。

QMNAME(QMTEST1)  STATUS(Ended immediately) DEFAULT(no) STANDBY(Not applicable) INSTNAME(Installation0) INSTPATH(/opt/mqm) INSTVER(7.0.1.6)

切回7.0环境。

. /opt/mqm7.5/bin/setmqenv –n Installation0

MQ7.5的InstName是Installation1。

cd /opt/mqm7.5/bin/

setmqm -m QMTEST1 -n Installation1

setmqm成功运行后,输出:

The setmqm command completed successfully.

检查迁移后的qmgr

dspmq -o all

输出如下:

QMNAME(QMTEST1)  STATUS(Ended immediately) DEFAULT(no) STANDBY(Not applicable) INSTNAME(Installation1) INSTPATH(/opt/mqm7.5) INSTVER(7.5.0.5)

启动qmgr。

strmqm QMTEST1

启动后日志如下。

WebSphere MQ queue manager 'QMTEST1' starting.

The queue manager is associated with installation 'Installation1'.

5 log records accessed on queue manager 'QMTEST1' during the log replay phase.

Log replay for queue manager 'QMTEST1' complete.

Transaction manager state recovered for queue manager 'QMTEST1'.

Migrating objects for queue manager 'QMTEST1'.

Default objects statistics : 9 created. 0 replaced. 0 failed.

WebSphere MQ queue manager 'QMTEST1' started using V7.5.0.5.

三、实施结论

1. paxrpm-build(Linux平台)

对于Linux平台上MQ多版本安装,需要安装pax,rpm-build,避免MQ的rpm包冲突,而AIX平台不需要。

2. 多版本安装的优点

使用多版本,可以快速升级到一个新版本。在多版本特性出现之前,为了升级,用户必须先卸载旧的版本,完成后才能安装新的版本。这个流程有两个缺点:一是队列管理器停止工作时间比较长,二是升级出现问题难以回归到旧的版本。多版本特性的出现,轻松解决了这些问题。在升级过程中,不必先卸载旧版本,这就缩短了队列管理器停止工作时间。并且,在安装好新版本后可以先进行测试,在测试通过的前提下才去卸载旧版本,提高了安全性。

使用多版本,减少了对系统资源的需求,使测试更加方便快捷。在多版本环境下,可以将不同版本的 MQ 安装到单一系统中,从而在一台机器上就可以完成对不同版本的测试。所以,在系统资源有限的条件下,多版本提供了很大的灵活性。

3. 多版本相关的新命令和参数

setmqenv:该命令用于设置 MQ V7.1 运行所需的环境变量,使用户在多版本环境中,可以快速切换到 MQ V7.1 或者 MQ V7.5。

setmqm:该命令可以将队列管理器关联到不同的安装版本上,通常用于将队列管理器迁移到新版本上。具体使用如下:setmqm -m QmgrName -n InstallationName。

dspmqinst:用于显示本系统上安装的所有 MQ 版本。

dspmqver:这是 MQ 最常用的显示版本信息的命令。在 MQ V7.1 中,增加了参数“-i”用于显示多版本安装信息。其输出结果和 dspmqinst 命令的输出结果基本相同。

dspmq:对于该命令,增加了参数“-o”,用于显示队列管理器的安装版本。

4. 多版本使用注意事项

每个版本的命令只能操作自身的对象,不能操作其它版本的对象。例如:不能使用 MQ V7.1 命令去启动或者停止 MQ V7.0 或者 MQ7.5 的队列管理器,反之亦然。

5.  MQ程序引用包

注意程序MQ引用包,由版本变化而需要更新,否则可能程序端报出找不到队列管理器的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值