ticdc到mysql不写数据并且tso不更新

【 TiDB 使用环境】
【概述】:场景 + 问题概述


mysql的
image 加粗示例

【背景】:做过哪些操作
【现象】:业务和数据库现象
【问题】:当前遇到的问题
【业务影响】:
【TiDB 版本】:
【附件】:

这篇文章参考一下~

1 个赞

那就是数据压根没有吐到下游mysql里面
1)sink是如何配置的?
2)用sink中的mysql账号密码 是否可以正常连接mysql?
3)用sink中的mysql账号是否有对应的权限?
4)cdc中日志有什么异常?

1 个赞

tiup cdc cli changefeed create -c ticdc152-166 --pd=http://192.168.1.151:2379 --sink-uri=“mysql://kf1_sync:123456@172.17.2.166:3306/?max-txn-row=16&max-txn-row=5000” --config=/data/tidb/ticdc152_166.yaml

2.账号是所有权限,pd和cdc机器都能访问
日志中没有异常

1)max-txn-row=16&max-txn-row=5000 不确定有没问题,但是这里有重复;
2)确定ticdc 没有向下游mysql写入任何事件?show processlist 或者 解析下binlog 日志来确认。
3)/data/tidb/ticdc152_166.yaml 配置文件可以否发下?
4) 查询下ticdc152-166 这个任务状态 把输出发下。
谢谢

可以发一下 CDC 其他的监控图吗? 比如 Dataflow 这个面板

tidb binlog和ticdc能同时使用吗?

cdc 是自己在不停重启吗? 还是人为重启的?如果是tiup 部署的话可以看看 cdc_stderr.log 这个文件里的内容

文件里没有任何内容

binlog 和 cdc 是两个不同时期的产物
4.x 以下的版本推荐使用 binlog
5.x 以上的版本推荐使用 cdc

不要混用,不知道会带来什么问题…

# 指定配置文件中涉及的库名、表名是否为大小写敏感
# 该配置会同时影响 filter 和 sink 相关配置,默认为 true
case-sensitive = true

# 是否输出 old value,从 v4.0.5 开始支持,从 v5.0 开始默认为 true
enable-old-value = true

[filter]
# 忽略指定 start_ts 的事务
ignore-txn-start-ts = [1, 2]

# 过滤器规则
# 过滤规则语法:https://docs.pingcap.com/zh/tidb/stable/table-filter#表库过滤语法
rules = ['seeyii_assets_database.*']

[mounter]
# mounter 线程数,用于解码 TiKV 输出的数据
worker-num = 16

[sink]
# 对于 MQ 类的 Sink,可以通过 dispatchers 配置 event 分发器
# 支持 default、ts、rowid、table 四种分发器,分发规则如下:
# - default:有多个唯一索引(包括主键)时按照 table 模式分发;只有一个唯一索引(或主键)按照 rowid 模式分发;如果开启了 old value 特性,按照 table 分发
# - ts:以行变更的 commitTs 做 Hash 计算并进行 event 分发
# - rowid:以表的主键或者唯一索引列名和列值做 Hash 计算并进行 event 分发
# - table:以表的 schema 名和 table 名做 Hash 计算并进行 event 分发
# matcher 的匹配语法和过滤器规则语法相同
#dispatchers = [
#    {matcher = ['test1.*', 'test2.*'], dispatcher = "ts"},
#    {matcher = ['test3.*', 'test4.*'], dispatcher = "rowid"},
#]
# 对于 MQ 类的 Sink,可以指定消息的协议格式
# 目前支持 default、canal、avro 和 maxwell 四种协议。default 为 TiCDC Open Protocol
protocol = "default"

[cyclic-replication]
# 是否开启环形同步
enable = false
# 当前 TiCDC 的复制 ID
replica-id = 1
# 需要过滤掉的同步 ID
filter-replica-ids = [2,3]
# 是否同步 DDL
sync-ddl = true

[[sink.dispatchers]]
dispatcher = 'default'
matcher = [
'seeyii_assets_database._risk_event_v1'

]

什么版本?

5.2.3

有没有解决方法?

你这配置的有问题,你再看看官方的配置介绍。dispatchers这块
image

什么问题呢,写法不一样?我在测试环境上就是这样写的,能正常同步数据,这个写法也是我在git上看的

能利用 https://metricstool.pingcap.com/ 导出一下完整的监控吗?
另外,麻烦帮忙提供一下完整的 cdc 的日志。

seeyii-business-cluster-TiCDC_2022-03-22T08_06_56.967Z.json (1.0 MB)

任务query输出明显有问题

  1. 确定任务启动了吗?
  2. 如果启动,输出内容不止这么多。
  3. 按官方文档格式改下试试。
1 个赞