MQ双版本共存与QMGR迁移
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
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. 介质准备
- 执行以下命令创建相关介质存放文件夹。
mkdir -p /tmp/mq75 mkdir -p /tmp/mq75fix |
- 上传介质到存放路径。
文件名 | 中间件 | 路径 |
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 |
查看到带有suffix7502的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 |
查看到带有suffix7502的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. pax与rpm-buildLinux平台
对于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引用包由版本变化而需要更新否则可能程序端报出找不到队列管理器的错误。