关于达梦DMHS实时同步工具开启预提交参数后导致同步日志报错问题的分析

【问题现象】

DMHS日志报错,影响行数与期望行数不同

【报错原因】
        数据库提交操作比较耗时,为加快同步速度,当两个事务操作的数据没有交集(事务之间没有关联的表)时,两个事务可以并行执行,并行执行的事务提交时,并不受事务提交先后顺序的限制,有可能后提交的事务先提交。如果两个事务中的操作行存在交集,两个事务不能并行执行。预提交功能就是将不存在交集的事务并行执行,将存在交集的事务串行执行。开启预提交功能后,事务在执行时,首先根据操作的行ROWID,判断是否存在ROWID对应的lock信息,如果存在,说明其他事务存在该数据的操作,当前事务需要等待其他事务完成该行的操作后才能继续执行;如果不存在,则其他事务没有对该行进行操作,于是生成该行的lock信息,当事务执行完成后,确认是否为事务所有的lock信息;DMHS中,控制lock信息个数的参数为lock_rows,现场中并未设置,导致lock信息并未生成,如果两个事务中存在数据交集,由于lock信息并未生成,两个事务就会并行执行,导致报错。
【解决办法】
        关闭预提交参数,关闭该参数不影响数据一致性,关闭后需监控延迟情况。
        现场环境版本配置文件暂时不能加lock_rows参数,该参数在此DMHS版本上存在问题,因此只能关闭commit_prepare参数。
【归档日志解析及同步流程】
        达梦解析源端数据库日志时,并不能根据交易日志,还原源端数据库的SQL操作,但可以实现源端数据库SQL操作的同等操作。对于DML操作,CPT模块以数据行为单位,对交易日志进行解析。DMHS目标端通过NET模块接收源端发送过来的日志

相关推荐

  1. 数据实时同步工具DMHS常见故障处理

    2024-01-13 11:08:01       31 阅读
  2. 数据库同步工具DMHS快速安装

    2024-01-13 11:08:01       22 阅读
  3. 关于抖音 担保支付 订单同步

    2024-01-13 11:08:01       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-13 11:08:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-13 11:08:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-13 11:08:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-13 11:08:01       18 阅读

热门阅读

  1. Python中的图像处理和计算机视觉应用

    2024-01-13 11:08:01       35 阅读
  2. PyQt UI 信号槽函数重复执行问题

    2024-01-13 11:08:01       34 阅读
  3. Spring面试题目

    2024-01-13 11:08:01       31 阅读
  4. vue实现小球掉落

    2024-01-13 11:08:01       41 阅读
  5. opencv在linux上的编译

    2024-01-13 11:08:01       33 阅读
  6. 数据结构之基本数据类型(Python)

    2024-01-13 11:08:01       34 阅读
  7. Vue模板的理解和使用

    2024-01-13 11:08:01       31 阅读