MQ把所有由队列管理器控制的数据的重要更改到日志中。这包括创建和删除对象(除了通道)、持久消息更新、事务状态、更改对象属性以及通道活动。通过以下操作,日志包含恢复所有消息队列更新所需的信息:
1、保留队列管理器更改的记录
2、保留重新启动进程所使用的队列更新的记录
3、能够在硬件和软件发生故障后重新恢复数据
日志是什么?
WebSphere MQ 日志包含两个组件:
1. 日志数据的一个或多个文件
2. 日志控制文件
存在包含要记录的数据的许多日志文件。您可以定义数量和大小,或者采用三个系统缺省文件。
在 WebSphere MQ Windows 版中,三个文件都缺省为 1MB。在 WebSphere MQ UNIX 中,三个文件都缺省为 4 MB。
创建队列管理器时,您定义的日志文件数是已分配的主日志文件数。如果不指定数,则使用缺省值。
在 WebSphere MQ Windows 版中,如果未更改日志路径,则在此目录中创建日志文件:
C:/Program Files/IBM/WebSphere MQ/log/<QMgrName>
在 WebSphere MQ UNIX 中,如果未更改日志路径,则在此目录中创建日志文件:
/var/mqm/log/QmName
WebSphere MQ 以这些主日志文件开始,但是日志填满了,则会分配次日志文件。它会动态完成此操作,并在发出日志空间减少的要求时除去它们。缺省情况下,最多可以分配两个次日志文件。
日志控制文件:
1、日志控制文件包含监控日志文件的使用所需的信息,如它们的大小和位置、下一个可用文件的名称等等。
note:确保启动队列管理器时创建的日志足够大,能够容纳应用程序要处理的消息的大小和量。您可能需要更改缺省日志数和大小以满足您的要求.
确定队列管理器应该使用循环还是线性日志记录后,您需要估计该队列管理器需要的日志大小。 日志大小是由以下日志配置参数确定的:
LogFilePages
4K 页面的单元中每个主和次日志文件的大小
LogPrimaryFiles
预分配的主日志文件数
LogSecondaryFiles
可创建的次日志文件数(主日志文件满时使用)
显示队列管理器为各种日志记录的数据量。大多数队列管理器操作需要最小量的日志空间。但是当持久消息放入队列时,所有消息数据必须写入日志,使它能够恢复此消息。通常,日志大小取决于队列管理器需要处理的持久消息的数量和大小。
操作 大小
放入持久消息 750 字节 + 消息长度
如果是大消息,则分隔成 15700 字节的段,每个段可以有 300 字节的开销。
获取消息 260 字节
同步点,提交 750 字节
同步点,回滚 1000 字节 + 12 字节(要回滚的每个获取或放入)
创建对象 1500 字节
删除对象 300 字节
改变属性 1024 字节
记录介质映象 800 字节 + 映象
映象分隔成 260 000 字节的段,每个段有 300 字节开销。
检查点 750 字节 + 200 字节(每个活动的工作单元)
可以为任何未提交的放入或取出(由于性能原因而进行了缓存)记录其它数据。
注:
1. 队列管理器每次启动时,您可以更改主和次日志文件数。
2. 您无法更改日志文件大小;必须在创建队列管理器前确定它。
3. 主日志文件的数量和日志文件大小确定创建队列管理器时预分配的日志空间的量。把空间组织成小数量的大日志文件而不是大数量的小日志文件。
4. 主和次日志文件的总量不能超过长期运行事务的中的 63,它限制了队列管理器重新启动恢复可用的日志空间量。队列管理器用于介质恢复所需的日志空间量不共享此极限。
5. 使用循环日志记录时,队列管理器重用主日志空间。这意味着队列管理器的日志可以比您估计的队列管理器需要记录的数据量要小。日志文件满时,队列管理器将分配一个次日志文件(最多到极限值),并且序列中的下一个主日志文件不可用。
6. 主日志文件可用于检查点期间的重用。由于日志空间量的减少,因此使用检查点前,队列管理器会考虑主和次日志空间。
如果您不定义比次日志文件更多的主日志文件,则队列管理器在采用检查点前可以分配次日志文件。 这使得主日志文件可以重用。
日志记录类型
在 WebSphere MQ 中,日志记录所要求的文件数取决于文件大小、您接收到的消息数和消息长度。有两种方法维护队列管理器活动的记录:循环日志记录和线性日志记录。
循环日志记录
如果您所要的只是重新启动恢复,则使用循环日志记录,使用日志回滚系统停止时正在进行的事务。
循环日志在日志文件环中保留所有重新启动数据。日志记录填充该环中的第一个文件,然后移动到下一个文件,依次类推,直到所有文件都满为止。然后它回到环中的第一个文件并再次开始日志记录。只要产品在使用中,就会一直继续下去,并且具有永远不会用完日志文件的优点。
WebSphere MQ 保留不丢失数据而重新启动队列管理器所需的日志条目,直到不再需要它们以确保队列管理器数据的恢复为止。
线性日志记录
如果您要重新启动恢复和介质或转发恢复(通过重播日志内容重新创建已丢失或已损坏的数据),则使用线性日志记录。
线性日志记录在连续的文件序列中保存日志数据。它不重用空间,因此,您可以总是从创建队列管理器的时间中检索任何已记录的记录。
由于磁盘空间是有限的,您可能需要考虑某种形式的归档。管理任务管理日志的磁盘空间,必要时重用或扩展现有的空间。
与线性日志记录一起使用的日志文件数可以非常大,这取决于您的消息流和您的队列管理器寿命。但是,有许多文件是活动的。活动文件包含重新启动队列管理器所需的日志条目。活动日志文件数通常与配置文件中定义的主日志文件数相同。
控制日志文件是否是活动的关键事件是检查点。WebSphere MQ 检查点是一组日志记录,包含启用队列管理器成功重新启动的信息。重新启动队列管理器不需要任何先前记录的信息,因此可以称为非活动的。
您必须确定何时不再需要非活动的日志文件。如果您的操作对它们不感兴趣了,则可以压缩或者删除它们。
如果新检查点记录到次日志文件中,或者以后记录到主日志文件中,则第一个文件成为非活动的,并且新的主文件格式化并添加到主池的结束部分, 恢复记录可用的主文件数。在这种方法中,主日志文件池可以看作是日志文件的扩展列表中的当前文件集。它还是根据您操作要求管理非活动文件的管理任务。
尽管次日志文件是为线性日志定义的,在正常操作中不使用它们。如果发生此情况(可能由于事务的寿命长所致),不可能从活动池中释放文件,因为,它可能仍需要重新启动,次文件格式化并添加到活动日志文件池中。
如果可用次文件数用完了,需要日志活动的大多数进一步操作的请求会被拒绝,并带有返回到应用程序的 MQRC_RESOURCE_PROBLEM 返回码。
两种类型的日志记录都可以应付意外的断电(假设没有硬件故障)。
队列管理器回滚消耗太多日志空间的事务。用此方法回滚其事务的应用程序无法执行后继的 MQPUT 或 MQGET 操作,这两个操作在相同事务下指定同步点。在此状态的同步点下尝试放入或取出消息返回 MQRC_BACKED_OUT。接着,此应用程序可以发出 MQCMIT,它返回 MQRC_BACKED_OUT 或 MQBACK,并启动一个新事务。已回滚消耗了太多的日志空间的事务,释放它的日志空间,并且队列管理器继续正常操作。
如果填充日志,则发出 AMQ7463 消息。另外,如果由于长期运行事务已保护要释放的空间而填充日志,则发出消息 AMQ7465。
最后,如果记录写入日志比异步内务处理进程处理它们的速度要快,则发出消息 AMQ7466。如果您看到此消息,则增加日志文件数或减少队列管理器要处理的数据量。
磁盘满时会发生什么
队列管理器日志记录组件可以应付磁盘满和日志文件满。如果包含日志的磁盘满了,则队列管理器发出 AMQ6708 消息,并产生一条错误记录。
日志文件是以其最大大小创建的,而不是当日志记录写入它们时再扩展。这意味着仅当创建新文件时 WebSphere MQ 可以用完磁盘空间;在把记录编写到日志时无法用完磁盘空间。WebSphere MQ 总会知道现有的日志文件中有多少可用的空间,并且管理这些文件中的空间。
如果您填充包含这些日志文件的驱动器,则可能会释放一些磁盘空间。如果您使用线性日志,则在此日志目录中可能有一些非活动的日志文件,并且可以把这些文件复制到另一个驱动器或设备。如果您仍用完了磁盘空间,则检查队列管理器配置文件中的日志配置是否正确。您可能可以减少主或次日志文件数,以使日志不会占用过多的可用空间。您无法改变现有队列管理器的日志文件大小。队列管理器假设所有的日志文件大小都相同。
管理日志文件
如果您使用循环日志记录,则确保配置系统时有足够的空间以保存这些日志文件(请参阅"WebSphere MQ 的日志缺省"和"队列管理器日志")。日志使用的磁盘空间量(包括要创建的次文件的空间(如果要求))不会增加到超出已配置的大小。
如果您使用线性日志,则记录数据时连续添加日志文件,并且使用的磁盘空间量随着时间而增加。如果要记录的数据速率高,则新日志文件会快速消耗磁盘空间。
经过一段时间,重新启动队列管理器或执行任何受损对象的介质恢复时就不再需要线性记录的这些旧日志文件。队列管理器定期发出消息对,表明需要哪些日志文件:
* 消息 AMQ7467 给出了重新启动队列管理器所需的最旧的日志文件名。队列管理器重新启动期间,此日志文件和所有较新的日志文件必须是可用的。
* 消息 AMQ7468 给出了介质恢复所需的最旧的日志文件名。
任何比这些文件旧的日志文件不需要联机。您可以把它们复制到一个归档介质(如用于灾难恢复的磁带),并把它们从活动日志目录除去。任何介质恢复(不是重新启动)所需的日志文件也可卸载成某个压缩文档。
如果找不到任何所需的日志文件,则发出 AMQ6767 操作员消息。使队列管理器能够使用日志文件和所有后继的日志文件,并重试此操作。
注:
执行介质恢复时,日志文件目录中的所有必需的日志文件必需在此时是可用的。确保使用任何对象的常规介质映象,您可能希望用它来进行恢复,以避免保持所有必需的日志文件而用完磁盘空间。
运行 rcdmqimg 命令时,也可能发出消息 AMQ7467 和 AMQ7468。有关此命令的更多信息,请参阅rcdmqimg(记录介质映象)。
日志文件位置
选择日志文件的位置时,记住,如果由于缺少磁盘空间而 WebSphere MQ 无法格式化新日志,则该操作会受到严重影响。
如果您使用循环日志,则确保驱动器上至少有用于已配置的主日志文件的足够空间。至少还为一个次日志文件保留空间,如果日志增长则,会需要它。
如果您使用线性日志,则允许相当的更多空间;数据记录时,会持续增加日志消耗的空间。
最好是把日志文件和队列管理器数据放在不同的磁盘驱动器中。这对性能有益。也有可以把日志文件放到镜像排列中的多个磁盘驱动器中。这保护包含此日志的驱动器以免发生故障。如果没有镜像,会强制您返回到您的 WebSphere MQ 系统的最后一个备份。
分享到:
相关推荐
下面是对 IBM WebSphere MQ 的入门教程的总结,涵盖了 WebSphere MQ 的原理、体系结构、重要特点和应用场景等方面的知识点。 中间件的概念和优点 中间件是一种软件系统,用于连接不同的应用程序,实现它们之间的...
### WebSphere MQ V6 基础知识点概览 #### 一、概述 - **WebSphere MQ V6** 是 IBM 推出的一款消息队列中间件产品,它为分布式应用程序提供了一个可靠的消息传递机制。 - **面向服务架构 (SOA)**:作为 SOA 的关键...
【IBM WebSphere MQ安装包详解】 IBM WebSphere MQ,前身为IBM MQSeries,是IBM公司推出的一款企业级的消息中间件产品。它在信息技术领域扮演着至关重要的角色,为跨网络、操作系统和应用程序提供了高效、安全的...
"WebSphere MQ工作原理" 在分布式计算环境中,消息中间件是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不同的技术之间共享资源,管理计算资源和网络通讯。消息队列技术是分布式应用间交换信息的一...
IBM WebSphere MQ 技术白皮书 IBM WebSphere MQ 技术白皮书是 IBM 公司发布的一份技术白皮书,旨在介绍 IBM WebSphere MQ 产品的技术特性、架构和价值。下面是根据白皮书的内容生成的相关知识点。 概述 在概述...
### WebSphere MQ for Linux v6.0:关键知识点解析 #### 一、概述 IBM WebSphere MQ for Linux V6.0 是一款高级消息传递中间件,用于在分布式系统环境中实现可靠的消息传递服务。该版本针对Linux环境进行了优化,...
2. **WebSphere MQ架构**:掌握WebSphere MQ的组件和工作原理,包括队列管理器、通道、队列和消息。 3. **编程接口**:了解如何使用各种编程语言(如Java的JMS API,C的API等)与WebSphere MQ交互。 4. **管理和...
**编程与使用WebSphere MQ .NET API**需要开发者对.NET框架和WebSphere MQ的基本原理有深刻的理解。该API提供了多种类和方法用于处理消息队列的各种操作,如创建、读取、写入和删除消息。同时,它还支持复杂的事务...
Websphere MQ的原理是基于异步通信的机制,使用消息队列来实现不同应用程序之间的数据交换。Websphere MQ的体系结构主要包括三个部分: * 消息队列(Message Queue):用于存储和转发消息的队列 * Queue Manager...
WebSphere® MQ (也称MQSeries)以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。通过为重要的消息和事务提供可靠的、一次且仅一次的传递,Websphere MQ 可以处理...
- **监控与日志**:通过MQ Explorer或命令行工具监控队列状态,查看日志文件了解系统运行情况。 6. **高可用性与故障恢复**: - **镜像队列**:通过队列复制实现高可用性,主队列管理器故障时,消息处理无缝切换...
WebSphere MQ,原名MQSeries,是IBM推出的一款企业级的消息中间件产品,它在IT领域扮演着重要的角色,尤其在分布式系统、企业应用程序集成(EAI)以及业务流程自动化中发挥着关键作用。WebSphere MQ V6.0是这个系列...
IBM 提供了 WebSphere MQ 管理控制台和命令行工具,可以用来监控队列状态、查看日志、设置告警以及进行配置更改。 总结来说,WebSphere MQ 8.0 自带的 JAR 包是构建与 IBM 消息中间件交互的应用程序的关键组件。...
本教程将深入讲解Websphere MQ的原理、体系结构以及系统管理和应用开发。 在第一章中,我们了解到中间件是连接不同系统和应用程序的桥梁,其优点包括降低复杂性、提供数据一致性以及提高系统的灵活性和可扩展性。...
全书涵盖了WebSphere MQ的基础知识、系统管理和应用开发等多个方面,旨在帮助读者深入理解这一消息中间件的工作原理和实际操作。 ### 第一部分:Websphere MQ原理和体系结构 在这一部分,作者首先介绍了中间件的...
《WebSphere MQ 系统管理指南 6.0》是一份详尽的文档,旨在为IT专业人士提供关于IBM WebSphere MQ版本6.0的全面系统管理指导。此指南覆盖了WebSphere MQ的基础知识、配置、操作与维护,以及高级主题,如故障排除和...
《精通 WebSphere MQ》是一本全面且深入的WebSphere MQ教程,旨在帮助读者从初学者到高级用户逐步掌握这一强大的消息中间件系统。WebSphere MQ,原名MQSeries,是IBM开发的一种企业级的消息传递平台,它允许应用程序...