Canal 数据同步(开启binlog功能) | 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习 Canal 数据同步(开启 binlog 功能)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):Canal 数据同步(开启 binlog 功能)】学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11516


Canal 数据同步(开启 binlog 功能)


目录:

一、Canal 环境搭建

二、cana 同步过程


一、Canal 环境搭建

canal 的原理是基于 mysql binlog 技术,所以这里-定需要开启 mysql 的 binlog 写入功能开启 mysql 服务: service mysql start ( 或者 systemctl start mysqld.service )

(1 )检查 binlog 功能是否有开启

代码如下:

mysql> shaw varlables like 'log_bin';

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

| Variable _name  | Value|

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

| log_bin         | OFF  |

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

1 raw in set (0.00 sec)

如果显示状态为 ON 表示该功能已开启

(3)在 mysql 里面添加以下的相关用户和权限

代码如下

CREATE USER 'canal '@'%' IDENTIFIED BY 'canal';GRANT SHOW VIEW, SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';

FLUSH PRIVILEGES;


二、canal 同步过程

准备工作

liunx 系统192. 168. 13.132

(1)安装 MySQL 数据库

创建数据库和数据表

名称和表结构一样 nembers

(2)安装 canal 数据同步工具

本地 windows 系统

(1)安装 MySQL 数据库

创建数据库和数据表名称和表结构一样

Members

//把远程库中内容同步到本地库中,所以这个过程中,在演示 canal 时候,需要做一些准备工作,首先就要做一些准备工作,做准备工作这个过程中,需要有两个地方。

//首先在这个虚拟机先装一个 Linux 系统。就是在虚拟机中把系统装上,然后另一部分是本地的 Windows 系统,都是 Windows 也可以,用虚拟机里面 Linux 系统,还有本地的 Windows 系统有这两部分。

然后除了两个之外,还需要在这个两个系统中都要装一些软件,第一个在 Linux 系统中第一部分需要安装一个 mysql 数据库。

然后在本地的 Windows 中也需要装个 mysql 数据库,两个里边都要装这个数据库。

Linux 系统 IP 是是192. 168. 13.132,然后除了这个之外,还需要做件事情,在Linux 中的 mysql 数据库中创建一个数据库,还有数据库表,然后在本地的Windows 中也需要建数据库表,但是有个前提条件,跟数据库和表,它们的名称和结构必须一样,然后这个表,比如说叫user,有 ID 和名称,那本地也是叫 user,里边有 ID 名称,第二部分,创建数据库和表,它的名称和结构需要一样。

下一个内容,现在需要在 Linux 系统中,需要安装一个 canal 的数据同步工具,把canal这个工具,需要安装到 Linux 系统中。里边需要先有这些软件,因为在本地已经装了 mysql,而 Linux 也要装上数据库。

接下来联系 Linux 中的 mysql 数据库,在里边创建数据库,show databases 这是显示所有数据库,在 Linux 系统中,有一个 guli 的这个数据库。本地也有一个 guli数据库,创建新表,让它们是相同结构的表,手动创建表。

比如说在这个 Linux 系统中,用建表语句把表快速创建出来,表名 Member,然后在表里写三个字段,第一个 ID int 类型,就这个叫primary key。

第二个字段,比如叫 username,然后写一个叫 varchar。然后它的长度100,第三个 age,int 类型然后,把这个表创建。现在所有的表,members 是创建的新表,这是在 Linux 中建一个表,为了做同步方便,然后创建完之后,再用这个本地库里边也建一个相同名称或结构表。在 window 直接创建,里边三个字段,第一个 ID,然后类型是一个int类型,它是一个主健,第二个叫做 username。

类型叫 varchar,然后长度是100。第三个叫 age,它是一个 int 类型,建完之后表名叫 members。现在在 Linux 中,还有本地,把这表都创建了,这个表的名字就叫做 members,完成创建,然后它们的结构应该都一样。

Member 表创建出来,然后创建之后,实现效果:现在不管是本地还是Linux系统中,比如查表,Select*from member。

目前,不管是本地还是Linux中表中是不是都没有数据,都为空,现在,在Linux这个 member 加一条记录,然后加完记录之后,本地表中数据会自动同步,比如说在Linux 中加一个数据,ID是用户名,age是20,然后加完之后,本地就会自动也加条记录。

当我在 Linux 中删除掉记录,本地也会删除,在系统中修改本地也会修改。这个过程就叫数据同步。在实际中经常会做这个事情,比如说要用别的公司的数据库,不能直接连,可以用这种方式,那边添加这边就能知道,然后这边也会自动添加,那边修改,这边知道,会自行修改,这个叫数据同步。

而这个过程,可以用这个叫 cindle 数据同步工具,就能把这流程最终实现,这个就是一个最基本的准备工作。

第一步修改 liunx 系统 MySQL 数据库中配置

(1)检查 binlog 功能是否有开启

show variables like 'log_bin';

mysql> shaw varlables like 'log_bin';

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

| Variable _name  | Value|

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

| log_bin         | OFF  |

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

1 raw in set (0.00 sec)

如果执行,看到 Value 值是 0FF,表示没有开启,需要开启,如果 Value 值是 ON,表示已经开启。

(2)修改 mysql 的配置文件 my. cnf

vi/etc/my. cnf

追加内容:

log -bin-mysql-bin#binlog文件名

binlog_ format=ROW#选择row模式

server_ id=1#mysql实例id,不能和canal的slaveId重复

(3)重启 mysql 数据库

重启之后,再去查看 binlog 值,变成 0N,表示已经开启了。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
571 4
|
4月前
|
运维 DataWorks 数据管理
数据管理DMS使用问题之正在使用“同步表”功能,如何设置数据同步的过期时间
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
数据管理DMS使用问题之正在使用“同步表”功能,如何设置数据同步的过期时间
|
3月前
|
存储 关系型数据库 MySQL
【TiDB原理与实战详解】5、BR 物理备份恢复与Binlog 数据同步~学不会? 不存在的!
BR(Backup & Restore)是 TiDB 分布式备份恢复的命令行工具,适用于大数据量场景,支持常规备份恢复及大规模数据迁移。BR 通过向各 TiKV 节点下发命令执行备份或恢复操作,生成 SST 文件存储数据信息与 `backupmeta` 文件存储元信息。推荐部署配置包括在 PD 节点部署 BR 工具,使用万兆网卡等。本文介绍 BR 的工作原理、部署配置、使用限制及多种备份恢复方式,如全量备份、单库/单表备份、过滤备份及增量备份等。
|
4月前
|
运维 数据格式
实时数据同步的守护者:脏数据下载查看功能重磅上线
在复杂的数据同步过程中,难免会因为各种原因产生一些不准确、不完整或格式错误的脏数据。如果不能及时识别和处理这些脏数据,将可能影响数据的一致性和后续的业务分析。
|
3月前
|
canal 关系型数据库 MySQL
"揭秘阿里数据同步黑科技Canal:从原理到实战,手把手教你玩转MySQL数据秒级同步,让你的数据处理能力瞬间飙升,成为技术界的新晋网红!"
【8月更文挑战第18天】Canal是一款由阿里巴巴开源的高性能数据同步系统,它通过解析MySQL的增量日志(Binlog),提供低延迟、可靠的数据订阅和消费功能。Canal模拟MySQL Slave与Master间的交互协议来接收并解析Binary Log,支持数据的增量同步。配置简单直观,包括Server和Instance两层配置。在实战中,Canal可用于数据库镜像、实时备份等多种场景,通过集成Canal Client可实现数据的消费和处理,如更新缓存或写入消息队列。
718 0
|
6月前
|
存储 消息中间件 小程序
从数据同步到异步通知:用户分群功能全揭秘
小米分享了开发用户分群功能的经验。面对数据同步问题,他们选择新建用户分群服务而非多数据源配置,以遵循微服务原则。为解决大规模通知发送导致的卡死,采用了异步处理,包括任务创建、数据查询和通知发送。在用户标签查询方面,通过精确存储和查询方法解决了标签重叠的误差。总结经验:合理拆分微服务,利用异步处理提升性能,确保精确查询。关注“软件求生”获取更多内容。
79 3
|
6月前
|
canal 关系型数据库 MySQL
Canal数据同步工具
Canal数据同步工具
144 2
|
6月前
|
SQL 运维 关系型数据库
PolarDB产品使用合集之PolarDB 2.3.0 版本的 CDC 功能支持 Polardb-X 到 Polardb-X 的数据同步吗
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
3月前
|
SQL 关系型数据库 MySQL
【揭秘】MySQL binlog日志与GTID:如何让数据库备份恢复变得轻松简单?
【8月更文挑战第22天】MySQL的binlog日志记录数据变更,用于恢复、复制和点恢复;GTID为每笔事务分配唯一ID,简化复制和恢复流程。开启binlog和GTID后,可通过`mysqldump`进行逻辑备份,包含binlog位置信息,或用`xtrabackup`做物理备份。恢复时,使用`mysql`命令执行备份文件,或通过`innobackupex`恢复物理备份。GTID模式下的主从复制配置更简便。
344 2
|
3月前
|
SQL 关系型数据库 MySQL
【MySQL】根据binlog日志获取回滚sql的一个开发思路
【MySQL】根据binlog日志获取回滚sql的一个开发思路
下一篇
无影云桌面