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. 介质准备

  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

查看到带有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. paxrpm-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引用包由版本变化而需要更新否则可能程序端报出找不到队列管理器的错误。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6