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

Informix 10 Enterprise Replication B到A方向复制队列不移动问题排查

诊断思路
  • 定位队列阻塞事务:在主机B执行cdr view queue <A的服务器名> send,查看发送队列的头部事务信息,重点确认是否为包含BLOB/CLOB字段的表的事务,匹配假脱机损坏的故障特征。
  • 调高ER日志级别排查隐性报错:当前默认日志级别未输出异常,可执行cdr set log debug 9开启最高级别调试日志,等待10-15分钟后查看cdr_mon.log、online.log,高日志级别会打印事务发送、ACK接收的全流程细节,可定位是否为发送端编码异常、接收端拒绝未上报的问题。
  • 验证网络大包传输能力:ER同步大字段时会发送超过MTU的数据包,因B到DR单向同步正常但B到A双向异常,可在Solaris环境下用snoop工具抓取B和A之间ER默认端口(通常为20000)的通信包,检查是否存在大包丢弃、ICMP不可达等异常。
  • 检查A端接收进程状态:在主机A执行onstat -g rea确认ER接收进程无挂起,执行cdr check serv做两端节点的健康校验,排查未标记的节点状态异常。
可尝试的解决办法
  • 手动清理阻塞事务:如果确认队列头部为损坏的异常事务,在主机B执行cdr delete queue <A的服务器名> send <事务ID>删除该事务,删除后观察队列是否恢复流转,注意提前记录事务涉及的表和数据范围,后续通过数据校验补全差异。
  • 单独重置B到A的复制链路:无需中断A到B的正常同步,也无需停止A端业务,执行cdr change repl <复制名> -S <B的服务器名> -R <A的服务器名> reset,重置单个复制的B到A方向状态,若需批量处理所有复制,可执行cdr reset repl --all -S <B的服务器名> -R <A的服务器名>。
  • 重建B到A的复制参与关系:若重置无效,先暂停所有B到A方向的复制,导出当前复制配置后删除B到A的参与关系,再重新添加该方向的参与配置,校验同步两端差异数据后重新开启复制,该操作完全不影响A到B的现有同步链路。
  • 修复BLOB假脱机损坏:如果确认是BLOB字段的假脱机数据损坏,先执行oncheck -cD <库名>:<表名>检查包含BLOB字段的表的磁盘结构,修复损坏的extent后,对该表执行一次全量同步即可恢复该表的复制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:27:00