mysql 开源~canal维护相关问题

本文介绍了Canal在实际应用中常见的三个场景问题及其解决方案:如何避免空事务问题、多Canal环境下同步信息的问题及针对大表进行DDL操作时的同步报错问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 简介:咱们来讨论下canal的一些技巧

二 场景

      场景1 canal过滤指定库后,后端java调用读取相关数据时候出现大量的空事务,为何会出现空事务呢,空事务是由于配置了指定的过滤规则,导致了其他库的事务被过滤掉,但是存在大量的begin commit,不利于分析

      解决方案 :1 canal的核心配置为  canal.instance.global.spring.xml = classpath:spring/file-instance.xml

                       2 修改 file-instance 增加属性

                       <bean id="eventSink" class="com.alibaba.otter.canal.sink.entry.EntryEventSink">

                       <property name="eventStore" ref="eventStore" />
                       <property name="filterEmtryTransactionEntry" value="false"/>//新添加的属性
                      </bean>

                    3 重启服务

                    4 研发进行再次观察

    场景2   在多canal环境下的同步信息同步问题

                场景问题 当一个canal挂掉后,另一个canal是无法应用元数据提供服务的

               解决方案: 将canal设置元数据保留在ZK上,这样在另一个canal提供服务的时候可读取最新点进行消费

              canal配置文件配置         

             canal.zkServers=zk地址
            canal.instance.global.spring.xml = classpath:spring/default-instance.xml

    场景3  利用pt-osc针对大表进行ddl操作,导致canal同步报错

     解决方案  手动创建new新表,然后canal就会通过,再手动删除new表即可

                    

转载于:https://www.cnblogs.com/danhuangpai/p/8028167.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值