IBM Cloud Docs
将配置从一个队列管理器复制到另一个队列管理器

将配置从一个队列管理器复制到另一个队列管理器

本文档介绍了如何使用 dmpmqcfg 工具将队列管理器的配置存储在 mqsc 文件中,以及如何使用 runmqsc 将此保存的配置应用于其他队列管理器。

先决条件

  1. 与两个现有队列管理器的安全连接 (有关指示信息,请遵循 创建队列管理器 指南)。

  2. 您有权访问 IBM MQ 服务实例中的队列管理器(有关指示信息,请遵循配置对队列管理器的管理员访问权指南)。

    应将执行以下操作的用户配置为队列管理器的管理员,如 此处 所述

  3. 在您自己的计算机上已安装 IBM MQ 客户机。

  • 此处下载客户机。

    • 单击 CD 客户机的最新可用版本旁边的 HTTP 链接将转至 Fix Central。 您可以在其中搜索并选择适用于您操作系统平台的相应 Redist(可再分发)客户机捆绑软件。 这将包括样本应用程序和 runmqsc
    • 下载后,将捆绑软件解包到所选位置。
    • 记下 bin 目录的完整路径,该目录的位置将取决于您选择用于解包捆绑软件的位置。 对于此任务的其余部分,此路径将被引用为 <PATH_TO_BIN_DIR>
    • 记下包含样本应用程序的目录的完整路径。 对于此任务的其余部分,此路径将被引用为 <PATH_TO_SAMPLE_BIN_DIR>
      • 对于 Windows,这将是上一步中解包的 bin 目录,其位置将取决于您选择用于解包捆绑软件的位置。
      • 对于 Linux,这将是上一步中解包的 samp/bin 目录,其位置将取决于您选择用于解包捆绑软件的位置。

    Mac 用户还需要下载 macos 工具箱,可以在 此处 找到该工具箱

  1. 执行以下步骤以 收集队列管理器的凭证和证书创建 PKCS12 格式的密钥库

连接到远程队列管理器

要连接到远程队列管理器,必须首先设置几个环境变量。 我们要确保 MQSERVER 值为空。 这可以通过以下方式实现: unset MQSERVER

将先前收集的连接详细信息和证书分配给 MQCCDTURLMQSSLKEYR:

  • Linux:

    export MQCCDTURL=/path/to/file/connection_info_ccdt.json
    export MQSSLKEYR=/path/to/file/key
    
  • Windows:

    set  MQCCDTURL=\path\to\file\connection_info_ccdt.json
    set MQSSLKEYR=\path\to\file\key
    

通过设置这些变量,您可以使用 runmqsc 来测试您的设置是否正确:

runmqsc -c -u <username> -w 60 <queue_manager_name>

出现提示时,请输入要认证的 API 密钥,您将在 runmqsc 控制台中。 只需输入 quit 即可退出 mqsc 终端。

dmpmqcfg 以生成 mqsc 文件

dmpmqcfg 工具允许用户创建队列管理器配置的副本,并将其保存到文件中。 如果配置和日志数据由于硬件故障而丢失,并且队列管理器无法重新启动或无法从日志中恢复,那么此文件有多种用途,例如用于帮助重建队列管理器的备份。

使用 dmpmqcfg 工具时,将需要少量可选参数。 首先,确保复制了所有属性,这可以通过 -a 字段来保证。 其次,需要强制进行客户机方式连接,这可以通过 -c来实现。 使用标准输出重定向将定义存储到文件中。 例如:

  dmpmqcfg -c default -m <queue_manager_1_name> -u <username> -a > /mq/backups/<queue_manager_1_name>.mqsc

执行时,将提示您输入允许您连接到这些队列管理器的 API 密钥。 一旦提供,将在指定位置创建配置文件。

将生成的文件应用于其他队列管理器

在将配置应用于新的队列管理器之前,需要将 apikey 添加到新创建的文件的第一行。 文件的开头应类似于以下内容:

<IBMCloud-apikey>
********************************************
*******************************************************************************
* Script generated on 2022-07-22   at 14.23.16
* Script generated by user '<user>' on host '<host>'
* Queue manager name: <queue_manager_1_name>
* Queue manager platform: UNIX
* Queue manager command level: (930/922)
* Command issued: dmpmqcfg -c default -m <queue_manager_1_name> -u <username> -a
*******************************************************************************

这是一个重要步骤,因为当运行下一个命令时,使用的一些可选参数不会提供输入 apikey 的机会,而是将读取指定文件的第一行。

通过将 apikey 添加到配置文件,现在可以将其应用于其他队列管理器。 通过使用 runmqsc,可以从先前任务中创建的 .mqsc 文件处理输入的可选参数 -f <filename> 。 必须使用可选参数 -c 来确保客户机连接。 还必须提供要应用此配置的队列管理器,例如:

runmqsc -f /mq/backups/<queue_manager_1_name>.mqsc -c -u <username> <queue_manager_2_name>

这将读取在上一步中创建的文件并处理每个命令。 成功完成后,第二个队列管理器的设置将与第一个队列管理器的设置相匹配。

结论

您成功执行了以下操作:

  • 已创建队列管理器的配置备份
  • 已将队列管理器配置的备份应用于新的队列管理器。