背景
在搭建Mysql+Canal+Kafka+ClientAdapter+Greenplum架构时遇到Outer adapter sync failed! Error sync but ACK!不能同步。
报错
数据消息能传到adapter,但是同步不到Greenplum。报错:Outer adapter sync failed! Error sync but ACK!

解决
- 在adapter 日志发现:
[root@CanalKafka adapter]# tail -f adapter.log

- 查看yml配置文件:
[root@CanalKafka conf]# vim application.yml

发现Key:Greeenplum 多了一个“e”,细节决定坑有多少啊!!!! - 修改正确:Greenplum
vim application.yml
- name: rdb
key: Greenplum
properties:
jdbc.driverClassName: org.postgresql.Driver
jdbc.url: jdbc:postgresql://10.10.5.74:5432/two_dw
jdbc.username: two
jdbc.password: two
threads: 10
commitSize: 3000
- 重启Canal Adapter
[root@CanalKafka bin]# pwd
/usr/local/canal-1.1.3/adapter/bin
[root@CanalKafka bin]# sh startup.sh
- 查看Canal adapter 日志正常:
[root@CanalKafka adapter]# tail -f adapter.log
2022-10-29 16:11:37.327 [pool-22-thread-1] INFO c.a.o.canal.client.adapter.logger.LoggerAdapterExample - DML: {"data":[{"name":"b","id":2}],"database":"pydb","destination":"example","es":1667031113000,"groupId":"g1","isDdl":false,"old":null,"pkNames":["id"],"sql":"","table":"t1","ts":1667031097215,"type":"INSERT"}
- Mysql插入一条数据
mysql> use pydb
mysql> insert into t1 values(3,'ee');
Query OK, 1 row affected (0.00 sec)
- 查看Greenplum :实现同步
two_dw=> select * from t1;
id | name
----+------
3 | ee
(1 rows)
总结:
Outer adapter sync failed! Error sync but ACK!这个报错让我明白了:认真程度决定了坑的多少!!
1、yml格式问题,此次过程因为ctrl+c => ctrl+v的原因,导致rdb目录下的t1.yml格式缩进多空格,
2、此报错80%左右为yml配置的问题,认真检查就完了。
文章推荐
《Oracle_索引重建—优化索引碎片》
《Oracle 自动收集统计信息机制》
《Oracle 脚本实现简单的审计功能》
《oracle 监控表空间脚本 每月10号0点至06点不报警》
《DBA_TAB_MODIFICATIONS表的刷新策略测试》
《FY_Recover_Data.dbf》
《Oracle RAC 集群迁移文件操作.pdf》
《Oracle Date 字段索引使用测试.dbf》
《Oracle 诊断案例 :因应用死循环导致的CPU过高》
《Oracle 慢SQL监控脚本》
《Oracle 慢SQL监控测试及监控脚本.pdf》
《记录一起索引rebuild与收集统计信息的事故》
《RAC DG删除备库redo时报ORA-01623》
《ASH报告发现:os thread startup 等待事件分析》
《问答榜上引发的Oracle并行的探究(一)》
《问答榜上引发的Oracle并行的探究(二)》
欢迎赞赏支持或留言指正




