17、Q复制环境管理与监控全解析

Q复制环境管理与监控全解析

1. Q Apply管理操作

在Q复制环境中,Q Apply的管理操作十分重要。以下是一些常见的操作及对应命令:
- 检查Q Apply状态 :使用 asnqacmd 命令结合 qryparms 选项可检查Q Apply的状态,命令如下:

asnqacmd APPLY_SERVER=db2b APPLY_SCHEMA=asn QRYPARMS
  • 停止Q Apply :停止Q Apply的命令示例如下:
$ asnqacmd APPLY_SERVER=db2b STOP
  • 查询Q Apply状态 :若要查询Q Apply的详细状态,可使用以下命令:
asnqacmd APPLY_SERVER=db2b STATUS SHOW DETAILS

该命令中的 STATUS SHOW DETAILS 选项会给出如下信息:
- Q Apply是否正在运行
- 程序启动后的时长
- Q Apply诊断日志的位置
- 活动Q订阅的数量
- 用于计算平均值的时间段

对于每个活动的接收队列,还会显示以下信息:
| 信息项 | 说明 |
| ---- | ---- |
| 队列名称 | 接收队列的具体名称 |
| 活动Q订阅的数量 | 该队列上活动的Q订阅数量 |
| OLDEST_TRANS和OLDEST_INFLIGHT_TRANS的值 | 从 IBMQREP_APPLYMON 表中收集的值,可能比控制表中的值更新 |
| 平均端到端延迟 | 数据从源到目标的平均延迟时间 |
| 平均Q Capture延迟 | Q Capture处理数据的平均延迟 |
| 平均队列延迟 | 数据在队列中的平均延迟 |
| 平均Q Apply延迟 | Q Apply处理数据的平均延迟 |
| 浏览器线程读取事务的内存使用量 | 以字节为单位 |
| 队列上的消息数量(队列深度) | 队列中当前消息的数量 |
| Q Apply提交到目标的最旧事务的逻辑日志序列号 | 用于跟踪事务处理进度 |

2. 启动接收队列

若Q Apply日志中包含消息 ASN7525I ,提示接收队列未处于活动状态且未被Q Apply程序处理,可按以下步骤操作:
首先,通过查询 IBMQREP_RECVQUEUES 表的 STATE 列来检查接收队列的状态。若状态标记为 I (非活动),可使用以下两种方法之一重启:
- 使用 asnqacmd 命令的 startq 参数 :无需重启Q Apply,命令如下:

asnqacmd APPLY_SERVER=db2b STARTQ=CAPA.TO.APPB.RECVQ
  • 修改 IBMQREP_RECVQUEUES 表的 STATE 列为 A 并重启Q Apply
3. 密码文件的使用

在两种情况下需要使用密码文件:
- 当Q Capture和Q Apply运行在不同机器上,且期望Q Apply执行初始加载时,Q Apply必须能够连接到远程Q Capture服务器,此时需要在Q Apply服务器上创建密码文件。
- 若使用复制警报监视器,则需要在运行监视器表的系统上创建密码文件。

若Q Capture和Q Apply运行在同一台机器上(即都是本地数据库),则无需密码文件。

创建密码文件使用 asnpwd 命令,该命令的不同参数取决于所需的任务,具体如下表所示:
| 任务 | 命令 |
| ---- | ---- |
| 创建/初始化 | asnpwd {INIT} [ENCRYPT {ALL|PASSWORD}] [{USING} <file-path-name>] |
| 添加别名 | asnpwd {ADD ALIAS} <alias-name> {ID} <user-id> {PASSWORD} <password> [{USING} <file-path-name>] |
| 修改别名 | asnpwd {MODIFY ALIAS} <alias-name> {ID} <user-id> {PASSWORD} <password> [{USING} <file-path-name>] |
| 删除别名 | asnpwd {DELETE ALIAS} <alias-name> [{USING} <file-path-name>] |
| 列出条目 | asnpwd {LIST} [{USING} <file-path-name>] |
| 带跟踪运行 | asnpwd -t {INIT|ADD|MODIFY|DELETE|LIST} |

以下是创建和操作密码文件的示例:
- 创建默认名称( asnpwd.aut )的密码文件:

asnpwd init encrypt password
  • c:\temp 目录创建名为 passfil.txt 的密码文件:
asnpwd init encrypt password using c:\temp\passfil.txt
  • 为服务器 DB2A 添加别名,用户ID为 db2admin ,密码为 fred
asnpwd ADD ALIAS db2a ID db2admin PASSWORD fred USING c:\temp\passfil.txt
  • 列出密码文件中的所有条目:
asnpwd LIST USING c:\temp\passfil.txt
  • 修改 db2admin 用户的密码为 heather
asnpwd MODIFY ALIAS db2a ID db2admin PASSWORD heather USING c:\temp\passfil.txt
  • 删除 db2a 的条目:
asnpwd DELETE ALIAS db2a USING c:\temp\passfil.txt

需注意,若使用非标准密码文件,应更新 APPLYPARMS 表。

4. 复制(提升)Q复制环境

若在测试机上开发了复制解决方案,想在生产机上构建类似解决方案,有两种选择:
- 使用ASNCLP脚本 :将测试脚本迁移到生产机,编辑脚本以反映新的模式、数据库名称等,然后运行。但要确保脚本完整,避免遗漏更改。
- 使用ASNCLP命令的 PROMOTE 功能 :以下以将单向设置从测试环境提升到生产环境为例进行说明。假设测试环境中 DB2A DB2B 之间已设置复制,要迁移到生产环境的 DB2C DB2D ,需按以下步骤操作:
1. 在 DB2C 上创建Q Capture控制表。
2. 在 DB2D 上创建Q Apply控制表。
3. 在 DB2C DB2D 上创建WebSphere MQ环境。
4. 创建ASNCLP命令文件 promote_uni.asnclp ,将相关值替换到占位符中(保留双引号):

ASNCLP SESSION SET TO Q REPLICATION;
SET RUN SCRIPT NOW STOP ON SQL ERROR ON;
SET LOG "prom.log";
SET SERVER CAPTURE TO DBALIAS db2a ID "<ida>" PASSWORD "<pa>" PROMOTE TO DBALIAS db2c ID ""<idc>" PASSWORD "<pc>" SCHEMA asnp;
SET SERVER TARGET TO DBALIAS db2b ID "<idb>" PASSWORD "<pb>" PROMOTE TO DBALIAS db2d ID "<idd>" PASSWORD "<pd>" SCHEMA asnp;
SET OUTPUT PROMOTE SCRIPT "replqmap_qsub.in";
SET OUTPUT CAPTURE SCRIPT "promote_capture_repqmap.sql";
SET OUTPUT TARGET SCRIPT "promote_target_repqmap.sql";
PROMOTE REPLQMAP LIKE "%";
PROMOTE QSUB REPLQMAP LIKE "%";
5. 运行ASNCLP命令文件:
asnclp -f promote_uni.asnclp

任何错误消息将写入 prom.log 文件。若命令执行成功,将生成 replqmap_qsub.in 文件,其中包含复制队列映射和Q订阅的定义,示例如下:

ASNCLP SESSION SET TO Q REPLICATION;
#Current Q Capture definitions are at arch level 0905
#Current Q Apply definitions are at arch level 0905
SET OUTPUT CAPTURE SCRIPT "promote_capture_repqmap.sql";
SET OUTPUT TARGET SCRIPT "promote_target_repqmap.sql";
SET LOG "prom.log";
SET SERVER CAPTURE TO DB DB2C ID db2admin PASSWORD "xxxxxxxx";
 SET CAPTURE SCHEMA SOURCE "ASNP";
SET SERVER TARGET TO DB DB2D ID db2admin PASSWORD "xxxxxxxx";
 SET APPLY SCHEMA "ASNP";
CREATE REPLQMAP "RQMA2B"
 USING ADMINQ "CAPA.ADMINQ.REMOTE" RECVQ "CAPA.TO.APPB.RECVQ" SENDQ 
"CAPA.TO.APPB.SENDQ.REMOTE"
 NUM APPLY AGENTS 3 MAX AGENTS CORRELID 0 MEMORY LIMIT 9 ERROR ACTION 
S HEARTBEAT INTERVAL 0 MAX MESSAGE SIZE 4;
ASNCLP SESSION SET TO Q REPLICATION;
#Current Q Capture definitions are at arch level 0905
#Current Q Apply definitions are at arch level 0905
SET OUTPUT CAPTURE SCRIPT "promote_capture_repqmap.sql";
SET OUTPUT TARGET SCRIPT "promote_target_repqmap.sql";
SET LOG "prom.log";
SET SERVER CAPTURE TO DB DB2C ID db2admin PASSWORD "xxxxxxxx";
 SET CAPTURE SCHEMA SOURCE "ASNP";
SET SERVER TARGET TO DB DB2D ID db2admin PASSWORD "xxxxxxxx";
 SET APPLY SCHEMA "ASNP";
SET PROFILE CUSTOMER FOR OBJECT TARGET TABLESPACE OPTIONS UW 
BUFFERPOOL IBMDEFAULTBP PAGESIZE 4096;
CREATE QSUB (  SUBNAME "TAB1" REPLQMAP "RQMA2B"
 DB2ADMIN.CUSTOMER OPTIONS ALL CHANGED ROWS N HAS LOAD PHASE I SPILL_
MODELQ IBMQREP.SPILL.MODELQ.0.1.1 SUPPRESS DELETES N
 TARGET NAME FRED.CUSTOMER IN QAASN CREATE USING PROFILE CUSTOMER 
TYPE USERTABLE
 TRGCOLS INCLUDE ( CID CID,HISTORY HISTORY,INFO INFO ) KEYS ( CID )
 CONFLICT ACTION F ERROR ACTION Q LOAD TYPE 2);

此过程将把复制队列映射和Q订阅定义从测试系统提升到生产系统。

5. 监控与报告

为确保Q复制环境的正常运行,需要对不同层次进行监控。以下是各层次的监控要点及操作步骤:
- 数据库层 :主要检查DB2实例是否运行,以及能否连接到参与复制的数据库,同时要考虑Q Capture服务器的日志使用情况。
- WebSphere MQ层
- 检查队列管理器状态 :使用 DSPMQ 命令显示队列管理器的状态:

$ dspmq

若队列管理器未处于活动状态,将显示 STATUS(Ended unexpectedly) ,此时需使用 STRMQM 命令启动。
- 检查监听器状态 :使用 DISPLAY LSSTATUS 命令检查监听器是否运行:

$ runmqsc QMA 
dis lsstatus(*)

若监听器未运行,需按相关步骤启动。
- 检查通道状态 :使用 DISPLAY CHSTATUS 命令检查通道状态:

$ runmqsc QMA 
dis chstatus(*)

若通道未运行,将显示 AMQ8420: Channel Status not found 。若通道状态为 RETRYING ,可能是另一个队列管理器未激活或监听器未启动,需按相应步骤启动通道。
- 检查接收队列状态 :使用以下查询检查接收队列的状态:

$ db2 "SELECT state, state_info, recvq FROM asn.ibmqrep_recvqueues"

若接收队列未处于活动状态( A ),可使用 ASNQACMD STARTQ 命令激活。
- 检查Q订阅状态 :使用以下查询检查Q订阅的状态:

$ db2 "SELECT SUBSTR(subname,1,10) AS subname, state AS s, state_time, 
state_info FROM asn.ibmqrep_subs"
  • Q复制层
    • 监控Q Capture启动 :检查Q Capture日志中是否包含以下两条消息,以确认Q Capture是否成功启动:
      • ASN0572I :表示Q Capture已成功启动。
      • ASN7010I :表示Q订阅已成功激活。
    • 检查Q Capture线程状态 :使用 ASNQCCMD 命令的 STATUS 选项检查线程状态:
$ asnqccmd CAPTURE_SERVER=db2a STATUS

所有线程都应处于运行状态。

通过以上管理和监控操作,可以确保Q复制环境的稳定运行,及时发现并解决潜在问题。

Q复制环境管理与监控全解析

6. 监控工具及常见问题处理

除了上述各层次的基本监控操作外,还有一些监控工具和常见问题的处理方法值得关注。

6.1 复制警报监视器

复制警报监视器是一个重要的监控工具,当满足特定条件时,它会发出警报。使用复制警报监视器时,需要在运行监视器表的系统上创建密码文件。

6.2 常见问题及解决方法
  • 队列管理器意外停止 :当队列管理器的状态显示为 STATUS(Ended unexpectedly) 时,需要使用 STRMQM 命令启动队列管理器。
  • 监听器未运行 :若监听器状态不是 RUNNING ,需要按照相关步骤启动监听器。
  • 通道状态为 RETRYING :这可能是另一个队列管理器未激活或监听器未启动,需要检查并启动相应的组件。
  • 接收队列未激活 :当接收队列状态不是 A 时,可使用 ASNQACMD STARTQ 命令激活。

以下是一个简单的流程图,展示了WebSphere MQ层常见问题的处理流程:

graph TD;
    A[队列管理器状态检查] -->|异常| B[使用STRMQM启动];
    A -->|正常| C[监听器状态检查];
    C -->|未运行| D[启动监听器];
    C -->|运行中| E[通道状态检查];
    E -->|未运行或RETRYING| F[检查并启动相关组件];
    E -->|运行中| G[接收队列状态检查];
    G -->|未激活| H[使用ASNQACMD STARTQ激活];
    G -->|激活| I[结束];
7. Q复制性能考虑

在Q复制环境中,性能是一个关键因素。以下是一些影响Q复制性能的因素及优化建议:
| 影响因素 | 优化建议 |
| ---- | ---- |
| 网络延迟 | 确保网络稳定,减少延迟。可考虑使用高速网络或优化网络配置。 |
| 队列深度 | 监控队列深度,避免队列积压。可调整队列参数或增加处理能力。 |
| 线程数量 | 合理配置Q Capture和Q Apply的线程数量,确保所有线程都能高效运行。 |
| 数据库性能 | 优化数据库性能,如调整缓冲区大小、优化索引等。 |

8. 总结

本文全面介绍了Q复制环境的管理和监控方法。从Q Apply的管理操作,如检查状态、停止和启动,到密码文件的创建和使用,再到复制环境的提升过程,详细阐述了各个环节的操作步骤。同时,对不同层次的监控要点进行了说明,包括数据库层、WebSphere MQ层和Q复制层,并介绍了一些监控工具和常见问题的处理方法。此外,还考虑了Q复制性能的影响因素及优化建议。

通过遵循这些管理和监控方法,可以确保Q复制环境的稳定运行,及时发现并解决潜在问题,提高系统的可靠性和性能。在实际应用中,建议根据具体情况进行适当的调整和优化,以满足不同的业务需求。

以下是一个简单的总结列表,回顾本文的主要内容:
- Q Apply管理操作:检查状态、停止、启动接收队列等。
- 密码文件使用:创建、添加别名、修改和删除条目。
- 复制环境提升:使用ASNCLP的 PROMOTE 功能。
- 各层次监控:数据库层、WebSphere MQ层和Q复制层。
- 监控工具和常见问题处理:复制警报监视器及常见问题的解决方法。
- Q复制性能优化:考虑网络延迟、队列深度、线程数量和数据库性能等因素。

通过全面的管理和监控,能够更好地维护Q复制环境,为业务的稳定运行提供保障。

内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,涵盖正向逆向运动学求解、正向动力学控制,并采用拉格朗日-欧拉法推导逆向动力学方程,所有内容均通过Matlab代码实现。同时结合RRT路径规划B样条优化技术,提升机械臂运动轨迹的合理性平滑性。文中还涉及多种先进算法仿真技术的应用,如状态估计中的UKF、AUKF、EKF等滤波方法,以及PINN、INN、CNN-LSTM等神经网络模型在工程问题中的建模求解,展示了Matlab在机器人控制、智能算法系统仿真中的强大能力。; 适合人群:具备一定Ma六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)tlab编程基础,从事机器人控制、自动化、智能制造、人工智能等相关领域的科研人员及研究生;熟悉运动学、动力学建模或对神经网络在控制系统中应用感兴趣的工程技术人员。; 使用场景及目标:①实现六自由度机械臂的精确运动学动力学建模;②利用人工神经网络解决传统解析方法难以处理的非线性控制问题;③结合路径规划轨迹优化提升机械臂作业效率;④掌握基于Matlab的状态估计、数据融合智能算法仿真方法; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点理解运动学建模神经网络控制的设计流程,关注算法实现细节仿真结果分析,同时参考文中提及的多种优化估计方法拓展研究思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值