将配置从一个队列管理器复制到另一个队列管理器
本文档介绍了如何使用 dmpmqcfg
工具将队列管理器的配置存储在 mqsc
文件中,以及如何使用 runmqsc
将此保存的配置应用于其他队列管理器。
先决条件
-
与两个现有队列管理器的安全连接 (有关指示信息,请遵循 创建队列管理器 指南)。
-
您有权访问 IBM MQ 服务实例中的队列管理器(有关指示信息,请遵循配置对队列管理器的管理员访问权指南)。
应将执行以下操作的用户配置为队列管理器的管理员,如 此处 所述
-
在您自己的计算机上已安装 IBM MQ 客户机。
-
从 此处下载客户机。
- 单击 CD 客户机的最新可用版本旁边的 HTTP 链接将转至 Fix Central。 您可以在其中搜索并选择适用于您操作系统平台的相应 Redist(可再分发)客户机捆绑软件。 这将包括样本应用程序和
runmqsc
。 - 下载后,将捆绑软件解包到所选位置。
- 记下
bin
目录的完整路径,该目录的位置将取决于您选择用于解包捆绑软件的位置。 对于此任务的其余部分,此路径将被引用为<PATH_TO_BIN_DIR>
。 - 记下包含样本应用程序的目录的完整路径。 对于此任务的其余部分,此路径将被引用为
<PATH_TO_SAMPLE_BIN_DIR>
。- 对于 Windows,这将是上一步中解包的
bin
目录,其位置将取决于您选择用于解包捆绑软件的位置。 - 对于 Linux,这将是上一步中解包的
samp/bin
目录,其位置将取决于您选择用于解包捆绑软件的位置。
- 对于 Windows,这将是上一步中解包的
Mac 用户还需要下载 macos 工具箱,可以在 此处 找到该工具箱
- 单击 CD 客户机的最新可用版本旁边的 HTTP 链接将转至 Fix Central。 您可以在其中搜索并选择适用于您操作系统平台的相应 Redist(可再分发)客户机捆绑软件。 这将包括样本应用程序和
- 执行以下步骤以 收集队列管理器的凭证和证书 并 创建 PKCS12 格式的密钥库
连接到远程队列管理器
要连接到远程队列管理器,必须首先设置几个环境变量。 我们要确保 MQSERVER
值为空。 这可以通过以下方式实现:
unset MQSERVER
将先前收集的连接详细信息和证书分配给 MQCCDTURL
和 MQSSLKEYR
:
-
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>
这将读取在上一步中创建的文件并处理每个命令。 成功完成后,第二个队列管理器的设置将与第一个队列管理器的设置相匹配。
结论
您成功执行了以下操作:
- 已创建队列管理器的配置备份
- 已将队列管理器配置的备份应用于新的队列管理器。