浅谈民航气象数据库MQ日志管理与维护

2016-11-16 12:42周健赵琪楼红波
电脑知识与技术 2016年25期

周健+赵琪+楼红波

摘要:民航气象数据库系统通讯方式依赖于IBM Websphere MQ 中间件技术,气象资料通过MQ通道进行交换。随着民航气象资料传输量的迅速增长,对气象数据的处理要求也不断增加,而MQ中日志为系统的稳定运行和消息的可靠传递提供了保障,在MQ中也扮演着不可缺少的角色。

关键词:MQ日志;日志缓冲区;日志备份;错误日志

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)25-0007-02

1 引言

MQ中日志为系统的稳定运行和消息的可靠传递提供了保障,在MQ中扮演着不可缺少的角色。基本上,MQ的对象操作及对持久消息的操作都会记入日志中,在系统故障时日志可以帮助MQ队列管理器在重启动后恢复到原来的状态,所有的持久消息仍然保留不丢失。日志也可以用来将整个MQ对象整体记录,以便日后进行对象整体恢复。因为日志极其重要,所以对日志文件的管理和维护就显得十分必要。

2 日志概述

2.1 日志文件

WebSphere MQ日志由两个组件组成:一个或多个日志数据的文件和日志控制文件。以南昌机场民航气象数据库备用服务器为例,MQ日志数据文件缺省在/var/mqm/log/DB01/active目录下,每个文件缺省大小为4MB。MQ日志控制文件为/var/mqm/log/DB01/amqhlctl.lfh,日志控制文件中记录了目前数据文件的主次分配、活动状态等信息。日志的空间是有限的,理论上最大占用空间为:(主日志数量+次日志数量)* 日志文件大小。如果有长交易占用了太多的日志空间,系统会将其强行回滚,以释放日志空间。在 WebSphere MQ中,系统所需的日志文件数取决于日志文件大小以及接收到的消息数和消息长度。

2.2 日志参数

LogPrimaryFiles = 3|2 – 62 主日志数据文件数量。缺省为3,最小为2,最大为62。主次日志文件之和不大于63,不小于3;

LogSecondaryFiles = 2|1 – 61 次日志数据文件数量。缺省为2,最小为1,最大为61。主次日志文件之和不大于63,不小于3;

LogFilePages = number 日志文件大小,以4KB为单位。AIX平台,缺省为1024,即4 MB。最小为64,最大为16384;

LogType = CIRCULAR | LINEAR 日志类型。缺省为循环日志,CIRCULAR

LogBufferPages = 0|0 – 512 日志缓冲区大小,以4KB为单位。最小为18,最大为512.缺省为0。如果值为0-17,MQ实值使用18,即72KB。

LogPath = dir 日志文件目录

LogWriteIntegrity = SingleWrite|DoubleWrite|TripleWrite 日志完整性

l SingleWrite 只写一次日志,在高可靠环境下,需要硬件保证,比如SSA Cache

l DoubleWrite 可能需要写两次

l TripleWrite 可能需要写三次。安全性高,效率较低

这些日志参数中,有些在队列管理器创建后就不能改动了。比如LogType、LogPath、LogFilePages等。有些则可以调整,在队列管理器重启后生效。比如LogPrimaryFiles、LogSecondaryFiles、LogBufferPages等。

3 日志管理

3.1 日志备份和恢复

日志记录的形式有两种:循环日志和线性日志。备份和恢复是通过文件拷贝备份的手段完成的,对循环日志和线性日志都有效。

3.1.1 日志备份

1) 首先,队列管理器处于停止状态。

2) 拷贝备份相关的目录及文件,包括:

/QMgrs/ (包括所有的目录和文件)

/log (包括数据文件和控制文件)

3.1.2 日志恢复

1) 首先,队列管理器处于停止状态。

2) 删除原来的相关目录及文件,再拷贝恢复相关的目录及文件,包括:

/QMgrs/ (包括所有的目录和文件)

/log (包括数据文件和控制文件)

3.2 导出日志

用dmpmqlog命令可以将队列管理器的日志内容输出成文本。dmpmqlog只有在队列管理器停止的时候可以执行,缺省为输出上一个检查点以来的内容。由于在队列管理器停止的时候,会写入检查点,所以dmpmqlog通常只会输出较少的日志内容,当然也可以将指定一段日志的所有内容都输出。下面是dmpmqlog命令的使用方法。

格式 dmpmqlog [ - b | -s StartLSN ] [ -e EndLSN ] [ -f LogFilePath ] [ - m QMgrName ]

说明 - b表示从第一个日志开始,StartLSN表示开始的日志号,EndLSN表示结束的日志号,它们都用来指定一段日志文件。LogFilePath指定日志文件所在的目录,QMgrName为队列管理器名。

以南昌机场为例:dmpmqlog – m DB01 > DB01Log.dmp

4 日志维护

4.1 查看文件系统使用率

我们在做日常维护时应当首先保证文件系统/var/mqm的使用率不要超过80%,这个我们可以通过如下命令查看:# df -k

4.2 检查日志个数

我们需要检查日志个数是否增长,日志目录为:/var/mqm/log/QMgrName/active/,我们可以通过如下命令查看:#ls -l /var/mqm/log/QMgrName/active/ | wc,以南昌机场为例,如图1所示:

4.3 查看错误日志

在MQ产品安装时,在qmgrs路径下会建立@SYSTEM的子目录,在errors子目录下会产生三个日志文件:AMQERR01.LOG,AMQERR02.LOG,AMQERR03.LOG。当建立了队列管理器以后,该队列管理器所需的日志文件随之产生。在mqm\qmgr\QMgrName\errors子目录下会产生三个日志文件:AMQERR01.LOG,AMQERR02.LOG,AMQERR03.LOG,每个文件的大小为:256KB。当错误信息产生后,被放在AMQERR01.LOG中。当AMQERR01.LOG大于256KB时,AMQERR01.LOG中的信息被拷贝到AMQERR02.LOG中,新的错误信息又放在AMQERR01.LOG文件中,依此类推。

MQ系统错误日志位置:/var/mqm/errors,队列管理器错误日志:若队列管理器名称已知位置在/var/mqm/qmgrs/QMgrName/errors,若队列管理器未运行或名称未知位置则在/var/mqm/qmgrs/@SYSTEM/errors。

4.4 调整日志缓冲区大小

在队列管理器qm.ini配置文件中,有一小节为LogBufferPages,它代表日志缓冲区的大小,增大它的数值,也可以提高MQ性能。以南昌机场民航气象数据库备用服务器为例,调整步骤如下:

a)停止队列管理器和任何关联的应用程序。

b)备份文件 /var/mqm/qmgrs/DB01/qm.ini。

c)编辑文件 /var/mqm/qmgrs/DB01/qm.ini。

d)将 LogBufferPages 条目修改为所需的值,以指定要分配的页数量。

e)保存该文件。

f)重新启动队列管理器。

图2是将 LogBufferPages 值更改为 4096 后 Log 节的内容。

5 结论

MQ日志为民航气象数据库系统的稳定运行和气象信息快速可靠传递提供了有力的保障。在日常维护过程中,系统管理员应当积累一定的经验和技巧对MQ日志进行管理和维护,确保气象资料交换的可靠性、稳定性、实时性,进而提升民航气象数据库系统的运行效率。

参考文献:

[1] 甘荃,娄丽军. IBM WebSphere MQ 基础教程[M]. 电子工业出版社,2004.

[2] 民航气象数据库运行维护高级培训班讲义.太极计算机股份有限公司,2013.

[3] 陈宇翔.精通WebSphere MQ[M].合肥,安徽科学技术出版社,2004.