如何将TIDB作为Mysql的从库实现实时数据同步

-------------------------------------------------------------------

欢迎关注作者

墨天伦:潇湘秦的个人主页 - 墨天轮
CSDN:潇湘秦-CSDN博客

公众号:潇湘秦的DBA之路

-------------------------------------------------------------------

      

    近期一个MES项目架构比较复杂,使用了mysql集群和TIDB集群,其中TIDB将作为报表库,如何将mysql的数据实时同步到TIDB

本文介绍TIDB DM工具实时同步mysql数据库,大部分参考了官方文档,这里做一个示例。

相关文章 :

传统制造型企业数据库选型之困  传统制造型企业数据库选型之困 - 墨天轮
TIDB7.5LTS集群安装配置手册 TIDB7.5LTS集群安装配置手册 - 墨天轮

一. 架构和环境介绍

OS:Centos7.9

mysql主从:8.0.30

TIDB(7node):7.5

前提已经安装配置好mysql主从和TIDB集群

具体的搭建过程可以参考我的两篇博文

TIDB7.5LTS集群安装配置手册 TIDB7.5LTS集群安装配置手册 - 墨天轮

手把手教你搭建mysql主从集群 手把手教你搭建mysql主从集群 - 墨天轮

数据流转图如下

二. 安装DM集群

 TiDB Data Migration (DM) 是一款便捷的数据迁移工具,支持从与 MySQL 协议兼容的数据库(MySQL、MariaDB、Aurora MySQL)到 TiDB 的全量数据迁移和增量数据同步。使用 DM 工具有利于简化数据迁移过程,降低数据迁移运维成本

产品特性

  • 与 TiDB 同样保持 MySQL 兼容性。高度兼容 MySQL 协议、MySQL 5.7 和 MySQL 8.0 的常用功能及语法。
  • 支持 DML & DDL 事件同步。支持解析和同步 binlog 中的 DML 和 DDL 事件。
  • 支持合库合表同步模式。可以方便的将上游各个分片 MySQL 实例的各个分表数据,合并同步到下游 TiDB 的一张表。支持自定义编写同步规则以方便各种可能的同步需求,且具备自动识别和处理上游分片 MySQL 的 DDL 变更,大幅简化运维成本。
  • 内置多种过滤器以灵活适应不同场景。支持以预定义事件类型、正则表达式、SQL 表达式等多种方式在数据同步过程中对 MySQL binlog 事件进行过滤。
  • 集中管理。DM 支持上千个节点的集群规模,可同时运行并集中管理大量数据迁移同步任务。
  • 对第三方 Online Schema Change 工具变更过程的同步优化。在 MySQL 生态中,gh-ost 与 pt-osc 等工具被广泛使用,DM 对其变更过程进行了特殊的优化,以避免对不必要的中间数据进行迁移。详细信息可参考 online-ddl。
  • 高可用。支持迁移任务在不同节点自由调度,少量工作节点宕机并不会影响进行中的任务

使用限制

在使用 DM 工具之前,需了解以下限制:
数据库版本要求
MySQL 版本 5.5 ~ 5.7
MySQL 版本 = 8.0 (实验特性)##本次使用的8.0.30 虽然有warning 但是还是可以使用的
MariaDB 版本 >= 10.1.2 (实验特性)
注意
如果上游 MySQL/MariaDB servers 间构成主从复制结构,则需要 MySQL 版本高于 5.7.1 或者 MariaDB 版本等于或高于 10.1.3。
DDL 语法兼容性限制
目前,TiDB 部分兼容 MySQL 支持的 DDL 语句。因为 DM 使用 TiDB parser 来解析处理 DDL 语句,所以目前仅支持 TiDB parser 支持的 DDL 语法。详见 TiDB DDL 语法支持。
DM 遇到不兼容的 DDL 语句时会报错。要解决此报错,需要使用 dmctl 手动处理,要么跳过该 DDL 语句,要么用指定的 DDL 语句来替换它。详见如何处理不兼容的 DDL 语句。
DM 不会将视图的 DDL 语句同步到下游的 TiDB 集群,也不会将针对视图的 DML 语句同步到下游。在该场景下,建议用户在下游 TiDB 集群中自行创建视图。
GBK 字符集兼容性限制
  • DM 在 v5.4.0 之前不支持将 charset=GBK 的表迁移到 TiDB。
2.1使用TIUP安装dm,dmctl

  安装配置期间建议先开通外网,方便安装配置

  tiup list   #列出可以安装下载的组件

 tiup install dm dmctl   #安装dm和dmctl

[root@tidb01 ~]# tiup list
Available components:
Name            Owner      Description
----            -----      -----------
PCC             community  A tool used to capture plan changes among different versions of TiDB
bench           pingcap    Benchmark database with different workloads
br              pingcap    TiDB/TiKV cluster backup restore tool.
cdc             pingcap    CDC is a change data capture tool for TiDB
chaosd          community  An easy-to-use Chaos Engineering tool used to inject failures to a physical node
client          pingcap    Client to connect playground
cloud           pingcap    CLI tool to manage TiDB Cloud
cluster         pingcap    Deploy a TiDB cluster for production
ctl             pingcap    TiDB controller suite
dm              pingcap    Data Migration Platform manager
dmctl           pingcap    dmctl component of Data Migration Platform.
errdoc          pingcap    Document about TiDB errors
pd-recover      pingcap    PD Recover is a disaster recovery tool of PD, used to recover the PD cluster which cannot start or provide services normally.
playground      pingcap    Bootstrap a local TiDB cluster for fun
tidb            pingcap    TiDB is an open source distributed HTAP database compatible with the MySQL protocol.
tidb-dashboard  pingcap    TiDB Dashboard is a Web UI for monitoring, diagnosing, and managing the TiDB cluster
tidb-lightning  pingcap    TiDB Lightning is a tool used for fast full import of large amounts of data into a TiDB cluster
tikv-br         pingcap    TiKV cluster backup restore tool
tikv-cdc        pingcap    TiKV-CDC is a change data capture tool for TiKV
tiproxy         pingcap    TiProxy is a database proxy that is based on TiDB.
tiup            pingcap    TiUP is a command-line component management tool that can help to download and install TiDB platform components to the local system
[root@tidb01 ~]#  tiup install dm dmctl
component dm version v1.14.1 is already installed
component dmctl version v7.6.0 is already installed
[root@lyspltidb01 ~]# 
2.2 编辑初始化配置文件

tiup dm template > dmtopology.yaml  ##使用命令生成参数模板

vi dmtopology.yaml ##根据自己IP编辑参数模板

[root@tidb01 ~]# tiup dm template > topology.yaml
[root@tidb01 ~]# cat dmtopology.yaml
# The topology template is used deploy a minimal DM cluster, which suitable
# for scenarios with only three machinescontains. The minimal cluster contains
# - 3 master nodes
# - 3 worker nodes
# You can change the hosts according your environment
---
global:
user: "tidb"
ssh_port: 22  #
deploy_dir: "/home/tidb/dm/deploy"   ##根据自己本地情况修改
data_dir: "/home/tidb/dm/data"
# arch: "amd64"

master_servers:
- host: 172.19.0.101    ###配置master和worker节点IP,我是配置在TIKV的三个节点上
- host: 172.19.0.102
- host: 172.19.0.103

worker_servers:
- host: 172.19.0.101
- host: 172.19.0.102
- host: 172.19.0.103

monitoring_servers:
- host: 172.19.0.101

grafana_servers:
- host: 172.19.0.101

alertmanager_servers:
- host: 172.19.0.101
2.3 执行命令部署集群

 tiup list dm-master   ##查看可用的dm master版本,

tiup dm deploy dm-mes v7.5.0 ./dmtopology.yaml --user root -p    ##使用命令部署集群 dm-mes 为集群的名字

[root@tidb01 ~]# tiup list dm-master
Available versions for dm-master:
Version Installed Release Platforms
------- --------- ------- ---------
nightly -> v8.0.0-alpha-nightly 2024-03-06T12:56:19Z darwin/amd64,darwin/arm64,linux/amd64,linux/arm64
v2.0.0-rc 2020-08-21T17:49:08+08:00 linux/amd64,linux/arm64
v2.0.0-rc.2 2020-09-01T20:51:29+08:00 linux/amd64,linux/arm64
v2.0.0 2020-10-30T16:10:58+08:00 linux/amd64,linux/arm64
v

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark实战-基于Spark日志清洗与数据统计以及Zeppelin使用

Saprk-日志实战 一、用户行为日志 1.概念 用户每次访问网站时所有的行为日志(访问、浏览、搜索、点击)用户行为轨迹,流量日志2.原因 分析日志:网站页面访问量网站的粘性推荐3.生产渠道 (1)Nginx(2)Ajax4.日志内容 日志数据内容:1.访问的…

IOS降级后从高版本到低版本恢复备份

IOS降级后从高版本到低版本恢复备份 此方法只适用于小版本还原,比如17.4->17.3,未验证大版本恢复可行性手机型号:iphone 13pro 系统版本:17.4 降级版本:17.3.1 步骤 通过itunes或者MacOS系统下对当前版本进行备份…

Windows11安装FFmpeg最新版本

打开终端: 输入 winget install ffmpeg 然后输入 Y 回车后出现如下图: 正在下载FFmpeg 6.1 安装成功 测试

常见数据类型

目录 数据类型 字符串 char nchar varchar varchar2 nvarchar 数字 number integer binary_float binary_double float 日期 date timestamp 大文本数据 大对象数据 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 数…

Python实现时间序列分析Theta模型(ThetaModel算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 时间序列分析中的Theta模型(Theta Model)是由Athanasios Theodoridis在2008年提出的一种统计预测方法&…

Java中SpringBoot四大核心组件是什么

一、Spring Boot Starter 1.1 Starter的应用示例 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency><groupId>org.mybatis.sprin…

代码随想录算法训练营第十七天 | 110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和

递归法&#xff0c;考虑当我站在一个节点上时&#xff0c;我应该干点啥&#xff0c;是不是想知道是否是平衡二叉树&#xff0c;就得知道左右子树的高度&#xff0c;进一步判断这个节点下是不是平衡的&#xff0c;天然的就是一个后序遍历的场景&#xff0c;从左右子树收集信息 …

《JAVA与模式》之观察者模式

系列文章目录 文章目录 系列文章目录前言一、观察者模式的结构二、推模型和拉模型三、JAVA提供的对观察者模式的支持四、怎样使用JAVA对观察者模式的支持前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男…

推荐两本C语言学习的书籍

提高学生应对未来专业实践课程的兴趣和信心。 C程序设计 | 谭浩强 由谭浩强教授著、清华大学出版社出版的《C程序设计》经过近三十年一千多万读者的实践检验&#xff0c;被公认为学习C语言程序设计的经典教材。根据C语言的发展和计算机教学的需要&#xff0c;作者在《C程序设计…

AtCoder Beginner Contest 343(A,B,C,D,E,F)

比赛链接 CE是暴力&#xff0c;D是数据结构题&#xff0c;F是线段树。这场的E比较有意思&#xff0c;其他的感觉有点水。 A - Wrong Answer 题意&#xff1a; 给你两个数 A , B A,B A,B ( 0 ≤ A , B ≤ 9 ) (0\le A,B\le 9) (0≤A,B≤9)&#xff0c;返回一个个位数&#…

嵌入式学习day34 网络

TCP包头: 1.序号:发送端发送数据包的编号 2.确认号:已经确认接收到的数据的编号(只有当ACK为1时,确认号才有用) TCP为什么安全可靠: 1.在通信前建立三次握手连接 SYN SYNACK ACK 2.在通信过程中通过序列号和确认号保障数据传输的完整性 本次发送序列号:上次…

vis.js network操作学习

前言 网络是显示网络以及由节点和边组成的网络的可视化。可视化易于使用&#xff0c;并支持自定义形状、样式、颜色、尺寸、图像等。网络可视化可以在任何现代浏览器上顺利运行&#xff0c;最多可显示数千个节点和边缘。为了处理大量节点&#xff0c;网络提供了集群支持。Netw…

南京观海微电子---PCIe协议(一)

概述 PCIe协议是一种端对端的互连协议&#xff0c;提供了高速传输带宽的解决方案。与传统的并行总线标准如PCI和PCI-X相比&#xff0c;PCIe提供了更低的延迟和更高的数据传输速率。每个连接到主板上的设备都通过独立的点对点连接与之相连&#xff0c;这避免了设备之间因为共享…

四信全球化拓展再启新篇!LoRa传感器与云平台领航智能感知时代

随着科技浪潮的不断推进&#xff0c;物联网已逐渐融入我们的生活。刚刚结束的MWC24盛会上&#xff0c;四信带来了一系列前沿技术成果&#xff0c;不仅将5G技术成功扩展至当前市场主流类型的终端&#xff0c;更携手联通、ASR等业界巨头&#xff0c;在连接、5G RedCap、AI、LoRa以…

Lim接口测试平台开展自动化的优势

一、数据对比 使用Lim接口测试平台后&#xff0c;相比以往采用Postman或excel关键字驱动带来的效率提升&#xff1a; 编写效率提升300%&#xff0c;原来10个步骤的用例&#xff0c;一个工作日调试编写只能输出6条&#xff0c;现在一天能输出18条。维护成本复杂度降低100%&…

webpack5零基础入门-1使用webpack打包

感谢大家的点赞和转发&#xff0c;欢迎大家关注本人的博客。试用期指导&#xff0c;项目开发&#xff0c;简历优化&#xff0c;毕业设计/论文&#xff0c;欢迎添加本人微信。 新人作者&#xff0c;欢迎关注和收藏&#x1f44f;&#x1f3fb;&#x1f44f;&#x1f3fb; 1.为什么…

基于R语言lavaan结构方程模型(SEM)技术应用

结构方程模型&#xff08;Sructural Equation Modeling&#xff0c;SEM&#xff09;是分析系统内变量间的相互关系的利器&#xff0c;可通过图形化方式清晰展示系统中多变量因果关系网&#xff0c;具有强大的数据分析功能和广泛的适用性&#xff0c;是近年来生态、进化、环境、…

【研究生复试】计算机软件工程人工智能研究生复试——资料整理(速记版)——计算机组成原理

1、JAVA 2、计算机网络 3、计算机体系结构 4、数据库 5、计算机组成原理 6、软件工程 7、大数据 8、英文 自我介绍 5. 组成原理 1. 计算机系统概论 1. 发展历史 早期计算器: 算盘->算筹-> 计算尺(工程师的身份象征)-> 机械计算机: 图灵:计算机世界的理论基…

(黑马出品_05)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_05&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术分布式搜索 今日目标1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用1.1.2.ELK技术栈1.1.3.elasticsearch和lucene1.1.4.为什么不是其他搜索技…

学习Java的第四天

目录 一、if选择结构 1、基本if选择结构 语法结构&#xff1a; 流程图&#xff1a; 示例&#xff1a; 2、if-else 选择结构 语法结构&#xff1a; 流程图&#xff1a; 示例&#xff1a; 3、多重if选择结构 语法结构&#xff1a; 流程图&#xff1a; 示例&#xff1a…