You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用saveqmgr和dmpmqcfg备份队列管理器时排除系统对象?

如何在使用saveqmgr和dmpmqcfg备份队列管理器时排除系统对象?

我经常用这两个命令做IBM MQ队列管理器的备份,刚好能给你讲清楚怎么排除系统对象,分两个命令分别拆解:

使用dmpmqcfg排除系统对象

dmpmqcfg本身就提供了专门的参数来简化系统对象的排除,用起来非常直观:

  • 核心参数:-x(也可以用长格式--exclude-system),用来指定要排除的系统对象前缀或类型
    • 最常用的用法:直接排除所有以SYSTEM开头的系统对象(队列、通道、进程等全部包含)
      dmpmqcfg -m YOUR_QMGR_NAME -x SYSTEM
      
    • 精细控制:如果只想排除某类系统对象(比如只排除系统队列,保留系统通道),可以指定对象类型+前缀:
      dmpmqcfg -m YOUR_QMGR_NAME -x queue=SYSTEM.*
      
  • 组合技巧:如果只想备份自定义的特定对象类型,比如只备份业务队列和主题,可以结合-t(指定对象类型)和-x参数:
    dmpmqcfg -m YOUR_QMGR_NAME -t queue,topic -x SYSTEM
    

使用saveqmgr排除系统对象

saveqmgr没有dmpmqcfg那样的一键排除系统对象的快捷参数,但可以通过排除模式灵活实现:

  • 使用-e参数指定排除的对象匹配规则,支持通配符*
    • 排除所有SYSTEM开头的对象:
      saveqmgr -m YOUR_QMGR_NAME -e "SYSTEM.*" -f backup_file.txt
      
    • 精准排除某类对象:比如只排除SYSTEM队列,其他系统对象保留:
      saveqmgr -m YOUR_QMGR_NAME -e "QUEUE(SYSTEM.*)" -f backup_file.txt
      
  • 反向选择思路:如果你的自定义对象都有统一前缀(比如APP_),可以用-i参数只包含这些对象,间接排除系统对象:
    saveqmgr -m YOUR_QMGR_NAME -i "APP_*" -f backup_file.txt
    

通用注意事项

  • 执行命令前,确保你属于mqm组或者拥有足够的队列管理器权限,否则可能无法读取全部对象信息
  • 可以先去掉-f参数,直接把输出打印到控制台,验证是否已经正确排除了系统对象,没问题再写入文件
  • 不同版本的IBM MQ可能参数略有差异,建议直接查看本地手册页确认细节:man dmpmqcfg 或 man saveqmgr

内容的提问来源于stack exchange,提问作者shrutireddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:32:35