otter跳过部分binlog,规避找不到binlog的问题

    因为BI的需要,需要将数据库A库的某些表传输至到另外的一个数据库B中。数据除了新增外,还需要更新 修改与删除的记录,所以自增ID的增量添加是满足不了需求的。

通过选型引入了阿里的Otter 框架,有一段时间工作正常。

某天BI说数据不同步了,登陆上otter Manager , 发现pipeline 有报错

详情

pid:1 nid:1 exception:canal:xxx-db:3306;:java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:95)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:121)
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209)
at java.lang.Thread.run(Thread.java:745)

心想出事了,日志跟不回来了。

 

最后为了修复数据及恢复同步,做了如下步骤:

1. DLL 不同步

2. 指定列进行同步

3. 收集 Master  binlog 文件及位点信息

4. 手工复制对应的表

5. 修复 canal 位点设置 

6. 重启对应的Channel , 并检查是否有新的业务数据写入

 

其中第5点走了点弯路,记录下来以备后用

1. 不用在 otter Manager 中修改位点信息, 修改了是不会生效的,估计是BUG

2. 正确修改办法是 修改 otter 关联的zk 集群记录 

3. 修改路径为  /otter/canal/destinations/xxx-db:3306;/1/cursor    

修改journalName 及position 的值  内容如下:

{"@type":"com.alibaba.otter.canal.protocol.position.LogPosition","identity":{"slaveId":-1,"sourceAddress":{"address":"xxx-db","port":3306}},"postion":{"included":false,"journalName":"binlog.000014","position":753033499,"serverId":1463306,"timestamp":1515496795000}}

命令 样例   set  /otter/canal/destinations/xxx-db:3306;/1/cursor  {"@type":"com.alibaba.otter.canal.protocol.position.LogPosition","identity":{"slaveId":-1,"sourceAddress":{"address":"xxx-db","port":3306}},"postion":{"included":false,"journalName":"binlog.0001000","position":38,"serverId":1463306,"timestamp":1515496795000}}

 

转载于:https://www.cnblogs.com/firmament/p/8360261.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值