canal
文章平均质量分 54
雅冰石
DBA
展开
-
canal里如何配置kafka密码认证
#登录canal server,修改配置文件,添加kafka密码认证信息vi /opt/canal-server/conf/canal.properties添加以下三行内容:kafka.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='admin' password='密码';kafka.sasl.mechanism=PLAINkafka.securi..原创 2022-04-15 16:59:34 · 2266 阅读 · 0 评论 -
com.alibaba.otter.canal.client.impl.ServerNotFoundException: no alive canal server for ucs_sf_to_qg_
一 问题描述canal client日志报错:com.alibaba.otter.canal.client.impl.ServerNotFoundException: no alive canal server for ucs_sf_to_qg_mariadb二 解决办法先尝试重启了canal server,但发现还是不行,后来重启了canal client好了。...原创 2022-04-03 04:29:17 · 859 阅读 · 2 评论 -
安装完canal后,启动canal失败
一 问题描述安装完canal后,发现canal没有启动,看不到canal进程,canal-client/logs下也没有生成adapter目录二 排查思路修改canal-client/bin/startup.sh,将日志输出到指定文件里,进行查看修改前:$JAVA $JAVA_OPTS $JAVA_DEBUG_OPT $ADAPTER_OPTS -classpath .:$CLASSPATH com.alibaba.otter.canal.adapter.launcher.CanalAd原创 2022-03-04 13:48:06 · 4457 阅读 · 0 评论 -
java.langRuntimeException:Target column:__#alibaba_rds_row_id#__ not matched
一 问题描述配置rds到mariadb同步,canal client日志报错:二 出错原因该表没有建主键。AliSQL 针对用户没有建 PK 的表,默认添加一个隐含主键。示例:mysql> show create table t\G*************************** 1. row *************************** Table: tCreate Table: CREATE TABLE `t` ( `id` int(1.原创 2021-12-09 19:15:49 · 1315 阅读 · 0 评论 -
canal同步中源端数据类型为tinyint(1)的字段同步异常-目标端值变为1
一 问题描述canal同步中有一个表t51,其中名为id2的字段数据类型为tinyint(1),发现往这个字段里插入大于1的值时,目标端该字段值都为1,和源端值不一致。示例:在源端执行:INSERT INTO t51(id,id2) VALUES(1,3);目标端t51的id2值为1,不是3。canal client里adapter.log输出的日志能看到insert语句id2值是3,但是mariadb的binlog日志中记录的id2位1。二 解决办法调大该字段的长度,至少变原创 2021-09-15 16:53:12 · 531 阅读 · 2 评论 -
canal同步报错Target column: NAME not matched
一 问题描述我们canal有个这样的使用场景:从多个源端同步相同的表数据到同一个目标端进行数据的统一展示。但是发现在源端1删除字段的后,其他源端的canal client日志会报错:Target column: NAME not matched此后,这个表的sql操作(如insert,即使不往该删除的字段插入数据)无法进行同步。二 如何规避在多个源端往同一目标端进行canal同步的场景下,禁止drop字段。...原创 2021-09-15 11:24:22 · 1280 阅读 · 0 评论 -
canal同步报错:Duplicate column name ‘name2‘
一 问题描述我们canal有个这样的使用场景:从多个源端同步相同的表数据到同一个目标端进行数据的统一展示。但是发现在源端1添加字段的时候,目标端能正常增加字段。但是在其他源端添加该字段,这时canal client日志会报错:ERROR c.a.otter.canal.adapter.launcher.loader.AdapterProcessor - java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSynta原创 2021-09-15 11:13:26 · 916 阅读 · 0 评论 -
配canal instance同步报错:java.lang.ArrayIndexOutOfBoundsException: 1
一 问题描述由于canal 1.1.4不兼容mariadb的gtid,后官网新发布的canal 1.1.5版本宣布支持mariadb的GTID,但是在验证1.1.5 canal时发现有时配置canal instance同步会报错:java.lang.ArrayIndexOutOfBoundsException: 1报错截图如下:二 出错原因通过查阅canal源代码,并debug发现,canal找gtid的时候,会去遍历该gtid所在的整个binlog文件,如果gtid_list.原创 2021-05-24 17:44:12 · 814 阅读 · 0 评论 -
实现canal高可用
一 canal HA架构canal server HA实现流程canal server 要启动某个 canal instance 时都先向 zookeeper 进行一次尝试启动判断 (实现:创建 EPHEMERAL 节点,谁创建成功就允许谁启动); 创建 zookeeper 节点成功后,对应的 canal server 就启动对应的 canal instance,没有创建成功的 canal instance 就会处于 standby 状态; 一旦 zookeeper 发现 canal .原创 2021-04-27 14:45:19 · 2323 阅读 · 0 评论 -
canal 1.1.5实现mariadb主库故障后自动切换到从库继续同步
一 实验背景canal有一个参数canal.instance.standby.address可以指定源端数据库的从库为备选数据库,当源端master宕机后,canal仍能指向备库进行同步。但是发现canal 1.1.4不兼容mariadb的gtid:当canal instance里指定了gtid(示例:canal.instance.master.gtid=0-1-146),重启canal instance会报错,不识别这种gtid格式:ERROR com.alibaba.otter.canal原创 2021-04-22 10:13:08 · 1321 阅读 · 0 评论 -
canal配置mysql到mysql的数据同步
本文计划配置源端192.168.144.246的baidd库到目标端192.168.144.248 baidd库的canal同步。一 准备工作1.1 在源端和目标端创建数据库create database baidd;1.2 在源端创建canal用户GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%' IDENTIFIED BY 'canal';1.3 在目标端创建对目标库有操作权限的用户原创 2021-04-02 16:56:59 · 4119 阅读 · 0 评论 -
怎样实现mysql主库宕机后,自动将canal指向从库继续进行同步
一原创 2021-04-02 15:33:59 · 1093 阅读 · 0 评论 -
canal olumn size is not match for table:,6 vs 5
一 问题描述canal同步报错:2021-03-29 14:50:12.340 [MultiStageCoprocessor-Parser-kf-canalServer-GTM-TQMS-1] ERROR com.alibaba.otter.canal.common.utils.NamedThreadFactory - from MultiStageCoprocessor-Parser-kf-canalServer-GTM-TQMS-1com.alibaba.otter.canal.parse.e转载 2021-03-29 15:08:38 · 605 阅读 · 2 评论 -
canal.instance.filter.query.dml含义介绍
canal.instance.filter.query.dml过滤的不是传统意义上的增删改等操作,过滤的是binlog里被注释掉的原update sql语句(这个和mysql里的binlog_rows_query_log_events有关)在row模式下..开启该参数,将把sql语句打印到binlog日志里面.默认是0(off);虽然将语句放入了binlog,但不会执行这个sql,就相当于注释一样.但对于dba来说,在查看binlog的时候,很有用处.网上说加之前binlog是这样记录的:#原创 2021-03-23 15:44:25 · 2882 阅读 · 0 评论 -
canal无法往kafka同步数据,日志无报错
一 问题描述发现同一个canal instance里,其中一个表操作可以正常同步到kafka,另一个表则不行。日志也没报错。不能同步的表最近的操作有修改表结构(增加了一个字段)。二 出错原因binlog filter config配置得不正确:# binlog filter configcanal.instance.filter.druid.ddl = truecanal.instance.filter.query.dcl = truecanal.instance.filter.q原创 2021-03-23 11:08:41 · 1875 阅读 · 0 评论 -
canal无法往kafka同步,报错TimeoutException: Failed to update metadata after 60000 ms
一 问题描述canal往kafka同步报错,数据无法同步。canal instance报错:ERROR com.alibaba.otter.canal.kafka.CanalKafkaProducer - java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 mscanal server也有报错:原创 2021-03-23 11:02:48 · 4708 阅读 · 0 评论 -
canal目标端数据中文乱码
一 问题描述用canal从源端往目标端同步数据,发现中文乱码,如‘丹丹’,变成了??,而目标端数据库,表,字段的字符集都是utf8,手动在目标端插入中文数据,也没乱码。二 解决办法2.1 检查canal instance的字符集配置canal.instance.connectionCharset = UTF-82.2 检查canal client的字符集配置检查是否有配置characterEncoding=utf-8...原创 2021-02-05 14:19:00 · 1671 阅读 · 0 评论 -
canal怎样实现多个rdb配置文件共用同一个instance
示例:baidd-yingshe-ef里包含两个rdb key,每个rdb里是一个单独的表映射:application.yml文件内容:- instance: baidd-yingshe-ef # canal instance Name or mq topic name groups: - groupId: g1 outerAdapters: - name: logger - name: rdb ...转载 2021-01-31 14:21:27 · 693 阅读 · 0 评论 -
Expiring 1 record(s) for canalEtl_hn-0: 30017 ms has passed since batch creation plus linger time
一 问题描述canal instance报错:Caused by: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for canalEtl_hn-0: 30017 ms has passed since batch creation plus linger time二 解决办法修改canal server的/etc/h原创 2021-01-19 08:51:16 · 3490 阅读 · 1 评论 -
安装canal-admin管理界面
请参考官网:https://github.com/alibaba/canal/wiki/Canal-Admin-QuickStart转载 2020-11-25 17:00:56 · 1905 阅读 · 0 评论 -
canal server HA安装部署
一 介绍canal-server架构说明 Canal的Server端本身根据配置启动了很多个Instance对象,所谓的Instance对象就是模拟的数据库slave和master进行连接,换句话说就是假设canal同时成为N个数据库的slave,那么就会有N个Instance实例。 每个Instance内部包含5个组件(图中只包含了4个,估计另外一个没有实现的原因),分别是eventParser、eventSink、eventStore、metaManager、ala...原创 2020-11-13 16:30:24 · 506 阅读 · 0 评论 -
canal-admin新建instance
canal-admin刚搭建成功后,在canal-server状态正常的情况下,能自动发现该canal-server:但instance这里是空的:需要新建instance:选择所属‘集群/主机’,点载入模板:会看到模板信息:需要修改以下几项:--其中canal.instance.mysql.slaveId不能与mysql的server_id重复自定义一个insance名字,然后点击‘保存’启动刚新建的实例:...原创 2020-11-12 13:56:31 · 1681 阅读 · 0 评论 -
canal-server安装部署
基于日志增量订阅和消费的业务包括:数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处理当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x一 实验环境二 实验步骤2.1 配置源端MariaDB2.1.1 修改配置文件my.cnf 中配置如下:[mysqld]log-bin=mysql-binbinlog...原创 2020-11-05 15:28:58 · 1386 阅读 · 0 评论