CloudCanal延迟问题处理

文章讲述了在CloudCanal社区版中遇到的延迟问题,解释了当源端实例无变更时的延迟实际上是MySQLbinlog时间差。为解决此问题,建议在源端创建心跳表并定期更新,以确保任务管理中的延迟显示正常。
摘要由CSDN通过智能技术生成

CloudCanal社区版默认延迟由于源端实例没有任何变更而显示延迟问题,按惯性思维,容易误解为数据库同步异常有延迟,延迟实则表示mysql源库binlog从上次未有变化到现在的时间。

问题描述

数据同步正常,但在任务管理中,同步正常情况下,会显示有延迟。

按以往惯性思维,容易理解为数据同步有延迟,所显示的延迟并非实际延迟,数据同步正常情况下,该延迟表示mysql源库binlog从上次未有变化到现在的时间。
最常见的一种情况就是源端实例没有任何变更,这种情况下延迟会一直增长,因为cloudcanal没有收到任何变更。

解决方案

源端准备一张心跳表,定时(Java、python或crontab等方式)的对心跳表做一些更新,这样既可解决延迟由于实例没有任何变更导致的延迟问题。

如果不是这种情况导致延迟,一般是由于任务异常导致

  1. 手动增加心跳表的方式

在源端实例创建任意数据库,如test库,也可使用以前的数据库;

在源端实例上创建任意表,如test表。

此次不创建数据库,采用在原有prod数据库中创建心跳表:cloudcanal_heartbeat

进入prod数据库

mysql> use prod;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A



Database changed;

在prod数据库下创建心跳表cloudcanal_heartbeat

mysql> create table cloudcanal_heartbeat

-> (

->     `id`           bigint(20) NOT NULL AUTO_INCREMENT,

->     `gmt_create`   datetime   NOT NULL DEFAULT CURRENT_TIMESTAMP,

->     `gmt_modified` datetime   NOT NULL DEFAULT CURRENT_TIMESTAMP,

->     PRIMARY KEY (`id`)

-> );

心跳表中插入数据

mysql> insert into cloudcanal_heartbeat(id, gmt_create, gmt_modified) VALUES (1,now(),now());

Query OK, 1 row affected (0.01 sec)

查看插入的心跳表数据

mysql> select * from cloudcanal_heartbeat;

+----+---------------------+---------------------+

| id | gmt_create          | gmt_modified        |

+----+---------------------+---------------------+

|  1 | 2022-03-04 04:21:49 | 2022-03-04 04:21:49 |

+----+---------------------+---------------------+

1 row in set (0.00 sec)
  1. 设置crontab定时任务

每分钟更新心跳表字段,确保源端mysql binlog有变化

* * * * * mysql -uroot -pYour_Password -D prod -e "update cloudcanal_heartbeat set gmt_modified=now() where id=1;"

也可以写入脚本中,crontab直接调用脚本

#!/bin/bash

user=root

pass=Your_Password

db=prod

tablename=cloudecan_heartbeat

mysql -u$user -p$pass -D $db -e "update cloudcanal_heartbeat set gmt_modified=now() where id=1;"
  1. 查询gmt_modified是否更新-已经更新
mysql> select * from cloudcanal_heartbeat;

+----+---------------------+---------------------+

| id | gmt_create          | gmt_modified        |

+----+---------------------+---------------------+

|  1 | 2022-03-04 04:21:49 | 2022-03-04 20:36:01 |

+----+---------------------+---------------------+

1 row in set (0.00 sec)
  1. 查看任务延迟是否正常

在CloudCanal中,点开任务列表,查看延迟同步正常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值