TiDB实战篇-TiCDC

news2024/9/20 21:30:20

目录

简介

原理

使用场景

使用限制

硬件配置

部署

在安装TiDB的时候部署

扩容部署

操作 

管理CDC

管理工具

查看状态

创建同步任务

公共参数

CDC任务同步到MySQL实战

同步命令

查看所有的同步任务

同步任务的状态

管理同步任务

查看一个同步信息的具体情况

容灾最终一致性复制

总结


简介

操作TiCDC。

原理

  • TiCDC读取的是TiKV产生的change log。TiCDC一对多TiKV,然后把各自得到的change log排好序以后交给最为Master的TiCDC,然后发送给下游。
  • 它的同步是异步的。

使用场景

使用限制

 必须得有主键或者唯一索引。

硬件配置

部署

在安装TiDB的时候部署

扩容部署

操作 

vi scale-out-ticdc.yaml

cdc_servers:
  - host: 192.168.66.20
    gc-ttl: 86400
    data_dir: "/cdc-data"
  - host: 192.168.66.21
    gc-ttl: 86400
    data_dir: "/cdc-data"
	
#扩容的命令
tiup cluster scale-out tidb-test scale-out-ticdc.yaml -uroot -p


打印
[root@master output]# tiup cluster list
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.12.1/tiup-cluster list
Name       User  Version  Path                                            PrivateKey
----       ----  -------  ----                                            ----------
tidb-test  root  v6.5.0   /root/.tiup/storage/cluster/clusters/tidb-test  /root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa
[root@master output]# tiup cluster display tidb-test
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.12.1/tiup-cluster display tidb-test
Cluster type:       tidb
Cluster name:       tidb-test
Cluster version:    v6.5.0
Deploy user:        root
SSH type:           builtin
Dashboard URL:      http://192.168.66.20:2379/dashboard
Grafana URL:        http://192.168.66.20:3000
ID                   Role          Host           Ports                            OS/Arch       Status  Data Dir                      Deploy Dir
--                   ----          ----           -----                            -------       ------  --------                      ----------
192.168.66.20:9093   alertmanager  192.168.66.20  9093/9094                        linux/x86_64  Up      /tidb-data/alertmanager-9093  /tidb-deploy/alertmanager-9093
192.168.66.20:8300   cdc           192.168.66.20  8300                             linux/x86_64  Up      /cdc-data                     /tidb-deploy/cdc-8300
192.168.66.21:8300   cdc           192.168.66.21  8300                             linux/x86_64  Up      /cdc-data                     /tidb-deploy/cdc-8300
192.168.66.20:3000   grafana       192.168.66.20  3000                             linux/x86_64  Up      -                             /tidb-deploy/grafana-3000
192.168.66.10:2379   pd            192.168.66.10  2379/2380                        linux/x86_64  Up      /tidb-data/pd-2379            /tidb-deploy/pd-2379
192.168.66.20:2379   pd            192.168.66.20  2379/2380                        linux/x86_64  Up|UI   /tidb-data/pd-2379            /tidb-deploy/pd-2379
192.168.66.21:2379   pd            192.168.66.21  2379/2380                        linux/x86_64  Up|L    /tidb-data/pd-2379            /tidb-deploy/pd-2379
192.168.66.20:9090   prometheus    192.168.66.20  9090/12020                       linux/x86_64  Up      /tidb-data/prometheus-9090    /tidb-deploy/prometheus-9090
192.168.66.10:4000   tidb          192.168.66.10  4000/10080                       linux/x86_64  Up      -                             /tidb-deploy/tidb-4000
192.168.66.10:9000   tiflash       192.168.66.10  9000/8123/3930/20170/20292/8234  linux/x86_64  Up      /tidb-data/tiflash-9000       /tidb-deploy/tiflash-9000
192.168.66.10:20160  tikv          192.168.66.10  20160/20180                      linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
192.168.66.20:20160  tikv          192.168.66.20  20160/20180                      linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
192.168.66.21:20160  tikv          192.168.66.21  20160/20180                      linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160

管理CDC

管理工具

#cdc cli 管理工具
cdc cli
tiup ctl:v6.5.0 cdc

查看状态

#查看cdc的状态信息
tiup ctl:v6.5.0 cdc capture list --pd=http://192.168.66.10:2379

[root@master output]# tiup ctl:v6.5.0 cdc capture list --pd=http://192.168.66.10:2379
The component `ctl` version v6.5.0 is not installed; downloading from repository.
download https://tiup-mirrors.pingcap.com/ctl-v6.5.0-linux-amd64.tar.gz 340.47 MiB / 340.47 MiB 100.00% 66.37 MiB/s                                                                                              
Starting component `ctl`: /root/.tiup/components/ctl/v6.5.0/ctl cdc capture list --pd=http://192.168.66.10:2379
[
  {
    "id": "11b2e62f-b32c-4086-928d-d55eaeb95ae7",
    "is-owner": true,
    "address": "192.168.66.21:8300",
    "cluster-id": "default"
  },
  {
    "id": "ca4f341e-8a7b-47fc-bb71-d27334423cb3",
    "is-owner": false,
    "address": "192.168.66.20:8300",
    "cluster-id": "default"
  }
]

创建同步任务

#创建同步任务--sort-engine="unified",在数据捕获排序如果内存不够就在磁盘
tiup ctl:v6.5.0 cdc changefeed create \
    --pd=http://192.168.66.10:2379 \
    --sink-uri="mysql://root:root@192.168.66.10:3306/" \
    --changefeed-id="simple-replication-task1" \
	--sort-engine="unified"

公共参数

CDC任务同步到MySQL实战

同步命令

#创建同步任务--sort-engine="unified",在数据捕获排序如果内存不够就在磁盘
tiup ctl:v6.5.0 cdc changefeed create \
    --pd=http://192.168.66.10:2379 \
    --sink-uri="mysql://root:root@192.168.66.10:3306/" \
    --changefeed-id="simple-replication-task1" \
	--sort-engine="unified"

打印

[root@master output]# tiup ctl:v6.5.0 cdc changefeed create \
>     --pd=http://192.168.66.10:2379 \
>     --sink-uri="mysql://root:root@192.168.66.10:3306/" \
>     --changefeed-id="simple-replication-task1" \
> --sort-engine="unified"
Starting component `ctl`: /root/.tiup/components/ctl/v6.5.0/ctl cdc changefeed create --pd=http://192.168.66.10:2379 --sink-uri=mysql://root:root@192.168.66.10:3306/ --changefeed-id=simple-replication-task1 --sort-engine=unified
[WARN] some tables are not eligible to replicate, []v2.TableName{v2.TableName{Schema:"test", Table:"emp", TableID:120, IsPartition:false}, v2.TableName{Schema:"test1", Table:"T1", TableID:125, IsPartition:false}, v2.TableName{Schema:"metastore", Table:"COMPLETED_TXN_COMPONENTS", TableID:417, IsPartition:false}, v2.TableName{Schema:"metastore", Table:"MV_TABLES_USED", TableID:449, IsPartition:false}, v2.TableName{Schema:"metastore", Table:"TXN_COMPONENTS", TableID:499, IsPartition:false}, v2.TableName{Schema:"metastore", Table:"WRITE_SET", TableID:517, IsPartition:false}, v2.TableName{Schema:"metastore", Table:"NEXT_LOCK_ID", TableID:519, IsPartition:false}, v2.TableName{Schema:"metastore", Table:"NEXT_TXN_ID", TableID:521, IsPartition:false}, v2.TableName{Schema:"metastore", Table:"NEXT_COMPACTION_QUEUE_ID", TableID:523, IsPartition:false}, v2.TableName{Schema:"hue_mysql1", Table:"base_region", TableID:613, IsPartition:false}, v2.TableName{Schema:"hue_mysql1", Table:"base_province", TableID:645, IsPartition:false}, v2.TableName{Schema:"hue_mysql1", Table:"base_dic", TableID:651, IsPartition:false}}
Could you agree to ignore those tables, and continue to replicate [Y/N]
y
Create changefeed successfully!
ID: simple-replication-task1
Info: {"upstream_id":7222127049579565349,"namespace":"default","id":"simple-replication-task1","sink_uri":"mysql://root:xxxxx@192.168.66.10:3306/","create_time":"2023-04-22T17:16:02.469900474+08:00","start_ts":440966830030848007,"engine":"unified","config":{"case_sensitive":true,"enable_old_value":true,"force_replicate":false,"ignore_ineligible_table":false,"check_gc_safe_point":true,"enable_sync_point":false,"bdr_mode":false,"sync_point_interval":600000000000,"sync_point_retention":86400000000000,"filter":{"rules":["*.*"],"event_filters":null},"mounter":{"worker_num":16},"sink":{"protocol":"","schema_registry":"","csv":{"delimiter":",","quote":"\"","null":"\\N","include_commit_ts":false},"column_selectors":null,"transaction_atomicity":"none","encoder_concurrency":16,"terminator":"\r\n","date_separator":"none","enable_partition_separator":false},"consistent":{"level":"none","max_log_size":64,"flush_interval":2000,"storage":""}},"state":"normal","creator_version":"v6.5.0"}

查看所有的同步任务

tiup ctl:v6.5.0 cdc changefeed list --pd=http://192.168.66.10:2379

同步任务的状态

注意:

如果CDC进入Stop状态,那么TiDB Server的GC就会停止,因为不停止的话,如果数据被清理掉了,就没有办法复制过去了。 

管理同步任务

删除同步任务

tiup ctl:v6.5.0 cdc changefeed remove --pd=http://192.168.66.10:2379 --changefeed-id simple-replication-task1

查看一个同步信息的具体情况

#查看一个同步信息的具体情况
tiup ctl:v6.5.0 cdc changefeed query --pd=http://192.168.66.10:2379 --changefeed-id=simple-replication-task1

容灾最终一致性复制

总结

下面的限制很重要,不然会看不到它同步的效果

tidb-cdc日志tables are not eligible to replicate_怎么查看ticdc 日志_与数据交流的路上的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云COS+ElmentUI+SpringBoot视频上传功能实现

文章目录 第一步:选择合适的组件并整合到项目中第二步:前端校验第三步:绑定上传成功方法第四步:腾讯云cos后端接口配置 今天在做项目的时候需要完成一个视频上传的功能,这里做一个记录! 第一步:…

春秋云境:CVE-2022-25411(Maxsite CMS文件上传漏洞)

目录 一、题目 二、官方POC 一、题目 介绍: MaxSite CMS是俄国MaxSite CMS开源项目的一款网站内容管理系统 Maxsite CMS存在文件上传漏洞,攻击者可利用该漏洞通过精心制作的PHP文件执行任意代码。 进入题目: 发现是俄文 乌拉~~ 不过没…

MongoDB副本集

一、介绍 MongoDB副本集(Replica set)是一组MongoDB实例,它们都维护着相同的数据集合。MongoDB副本集是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成。副本集没有固定的主节点,当主节点发生故障时整个集群会选举一个主节点为系统提供服务…

6.S081——Lab3——page table

0.briefly speaking 这是6.S081 Fall 2021的第三个实验,是页表和虚拟内存相关的实验,在之前我们已经详细地阅读了Xv6内核中有关虚拟内存管理的源代码,现在就可以深入一下这个实验了。本实验分为如下三个小任务: Speed up system…

【Mac-m2芯片docker安装AWVS及问题解决】

【Mac-m2芯片docker安装AWVS及问题解决】 docker安装AWVS安装报错问题解决 docker安装 docker安装命令: brew install --cask --appdir/Applications docker 查看是否安装成功: docker --version docker info 换源: “https://hub-mirror.c.…

在Python中使用牛顿法

牛顿法简介 牛顿法(Newton’s method)是一种常用的优化算法,在机器学习中被广泛应用于求解函数的最小值。其基本思想是利用二次泰勒展开将目标函数近似为一个二次函数,并用该二次函数来指导搜索方向和步长的选择。 牛顿法需要计…

从零开始学架构——FMEA故障模式与影响分析

1 FMEA介绍 FMEA(Failure mode and effects analysis,故障模式与影响分析)又称为失效模式与后果分析、失效模式与效应分析、故障模式与后果分析等,专栏采用“故障模式与影响分析”,因为这个中文翻译更加符合可用性的语…

高并发的程序设计-系统设计层面

高并发的程序设计-系统设计层面 目录概述需求: 设计思路实现思路分析1.主要指标二、处理高并发的方案 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better …

ChatGPT写文章效果-ChatGPT写文章原创

ChatGPT写作程序:让文案创作更轻松 在当前数字化的时代,营销推广离不开文案创作。然而,写作对许多人来说可能是一项耗时而枯燥的任务。如果您曾经为写出较高质量的文案而苦恼过,那么ChatGPT写作程序正是为您而设计的。 ChatGPT是…

gitlab安装与使用(图文详解超详细)

一 找最新的安装镜像 推荐用清华源 目前最新版本是15.95 二 在/opt 下创建gitlab文件夹 [rootlocalhost ~]# mkdir /opt/gitlab [rootlocalhost ~]# 三 在gitlab目录下写一个 shell脚本 vim int.sh给它加上执行权限 chmod ux int.sh运行这个脚本 ./ins.sh出现这个截图 安…

three.js之摄像机

本节将在上一节的基础上进一步介绍一下摄像机功能。 three.js的摄像机主要包括两类:正交投影摄像机和透视投影摄像机。 透视投影摄像机:THREE.PerspectiveCamera,最自然的视图,距离摄像机越远,它们就会被渲染得越小。…

【编程问题】解决 mapper.xml 文件的 resultType 爆红问题:Cannot resolve symbol ‘xxx‘

解决mapper.xml文件的resultType爆红问题:Cannot resolve symbol xxx 1.问题描述2.问题分析3.问题解决3.1 配置注解(推荐)3.2 配置全类名3.3 删除插件 4.事件感悟 系统:Win10 JDK:1.8.0_333 IDEA:2022.2.4 …

HCIP之MPLS中的VPN

目录 HCIP之MPLS中的VPN 定义 例图 解读 流程 双层标签技术 控制层面 数据层面 配置 HCIP之MPLS中的VPN 定义 VPN --- 虚拟网专用 --- 是一种运营商提供的,专门解决虚拟专线安全及宽带问题的综合解决方案 例图 解读 站点 --- 可以理…

Day936.如何重构过大类 -系统重构实战

如何重构过大类 Hi,我是阿昌,今天学习记录的是关于如何重构过大类的内容。 在过去的代码里一定会遇到一种典型的代码坏味道,那就是“过大类”。 在产品迭代的过程中,由于缺少规范和守护,单个类很容易急剧膨胀&#…

婴儿尿布台出口美国CPC认证

什么是尿布台?尿布台上架亚马逊要怎么做?咱们接着往下看。 什么是尿布台? 尿布台:尿布台是一种自立式抬升结构,通常设计用于承托体重不超过 13.61 千克(30 磅)的儿童。儿童采用平躺姿势&#…

Forest-声明式HTTP客户端框架-集成到SpringBoot实现调用第三方restful api并实现接口数据转换

场景 Forest 声明式HTTP客户端API框架,让Java发送HTTP/HTTPS请求不再难。它比OkHttp和HttpClient更高层, 是封装调用第三方restful api client接口的好帮手,是retrofit和feign之外另一个选择。 通过在接口上声明注解的方式配置HTTP请求接…

echarts中横坐标显示为time,使用手册

需求: 后端传递(两段数据,不同时间间隔)的24h实时数据,前端需要根据24小时时间展示,要求:x轴为0-24h,每个两小时一个刻度 误区: 刚开始通过二维数据的形式秒点&#xff…

Python入门到精通12天(迭代器与生成器)

迭代器与生成器 迭代器生成器 迭代器 迭代器是可迭代的对象,即可以进行遍历的对象。列表、字符串、元组、字典和集合这些都是可迭代的对象,都可以进行遍历。 迭代器是一种访问序列元素的方式,它可以通过next()函数逐个返回序列中的元素。并…

mybatis3源码篇(1)——构建流程

mybatis 版本:v3.3.0 文章目录 构建流程SqlSessionFactoryBuilderXMLConfigBuildertypeAliasesElementtypeHandlerElementmapperElementMapperRegistry MappedStatementMapperAnnotationBuilderXMLMapperBuilderMapperBuilderAssistant SqlSessionFactorySqlSession…

【录用案例】1区SCI仅36天录用,新增多本1-2区SCI,CNKI评职好刊发表案例

我处上周(2023年4月8日-2023年4月14日)经核实,由我处Unionpub学术推荐的24篇论文已被期刊部录用、20篇见刊,5篇检索: ✔新增1区纳米与环境类SCI&EI,仅36天录用,录用后17天见刊;…