MQ故障诊断及解决:[5]WMQ集群冷启动

2025-11-07 05:39:11

1、1、前提准备

完全仓储库(FR)队列管理器处于停止状态下,备份其队列SYSTEM.CLUSTER.REPOSITORY.QUEUE的物理文件。

a)停止完全仓储库上的有关WMQ应用

b)停止完全仓储库队列管理器

#endmqm -i QMTESTA

c)备份由于SYSTEM.CLUSTER.REPOSITORY.QUEUE的文件

#cd /var/mqm/test/qmgrs/QMTESTA/queues/SYSTEM!CLUSTER!REPOSITORY!QUEUE

#cp -p q q.bk20140304

d)启动完全仓储库队列管理器

#strmqm -i QMTESTA

2、2、非完全仓储库队列管理器上步骤

1)确认完全仓储库(FR)工作正常(完全仓储库之间的集群通道正常)

2)如果存在定义错误,删除错误或不再使用的集群通道

3)确认应用队列没有消息(处理完毕),没有应用连接到队列管理器

   停止MQ相关的应用

4)停止完全仓储库之间的集群发送与接收通道,隔离完全仓储库之间的通讯,并等待2-3分钟

stop chl(TO.QMTESTA)

5)手工杀掉'amqrrmfa'进程(集群管理进程)

ps -ef | grep amqrrmfa  得到PID

kill -9 PID

等待2-3分钟。

6)使用runmqsc 顺序清除相关的系统队列的消息

 CLEAR QL(SYSTEM.CLUSTER.TRANSMIT.QUEUE)

 CLEAR QL(SYSTEM.CLUSTER.COMMAND.QUEUE)

 CLEAR QL(SYSTEM.CLUSTER.REPOSITORY.QUEUE)

并确认队列深度为0

7)停止队列管理器

endmqm -i <QMGR>

3、3、完全仓储库所在队列管理器上步骤

1)在完全仓储库QMTESTA上重复上述1~7上的所有操作

2)启动完全仓储库之间的集群通道

start chl(TO.QMTESTA)

确认完全仓储库之前的集群通道已经处于RUNNING状态

4)在两个完全仓储队列管理器上分别执行REFRESH CLUSTER命令

REFRESH CLUSTER(*)

5)收集相关的集群信息

runmqras -section defs,cluster -qmlist QMHVPSA

runmqras -section defs,cluster -qmlist QMCCPB

ps -ef > /tmp/mqpslist.out

备份SYSTEM.CLUSTER.REPOSITORY.QUEUE的q文件,操作方法同前期准备工作中的复制方法(需要停止队列管理后,对该文件进行备份),备份完成后,重新启动队列管理器

6)上述工作完成后,即集群信息被重建完毕

7)在所有的非完全仓储队列管理器(PR)分别执行集群刷新操作

REFRESH CLUSTER(*) REPOS(YES)

4、4、执行情况确认

检查是否执行成功,需要注意是否有通道处于STOP还是RETRYING的状态。

在完全仓储库上执行集群收集操作

runmqras -section defs,cluster -qmlist QMTESTA

并选取几个非完全仓储库执行相同的操作

runmqras -section defs,cluster -qmlist XXX

打开相关的runmqras.zip文件,检查amqrfdm_XXXXX.stdout的输出是否正确。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢