数据同步神器Canel-day01

背景

关于数据同步的方式有很多种,现在有一个场景需要将mysql数据库的数据主动同步到我们的工程中,并且能再mysql数据库客户端更改某一行的数据也能将数据同步到另一个数据库或者工程中,对于这种场景的使用我们应该怎么去实现呢?

我们从问题点去分析,

  1. 同步mysql数据库数据到工程中,这个很简单,那就是工程直接连接数据库直接读取。这不是主动是被动,这样的话那就肯定得数据库主动去触发了。
  2. 那这肯定要改动mysql的底层源码,或者mysql又提供接口,既然说到了这里,想想mysql的主从同步机制呢?
  • master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);
  • slave将master的binary log events拷贝到它的中继日志(relay log);
  • slave重做中继日志中的事件,将改变反映它自己的数据。
    这不就搞定了吗?? 写个中间件模仿slave不就搞定了?这是要自己造轮子,NO,面向搜索编程,这肯定得google一下。
    在这里插入图片描述

canel 了解一下,直接用起来。

什么是canel?

  1. canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 也就是有新改变的数据日志的同步。
  2. 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。
  3. 基于日志增量订阅和消费的业务包括
    • 数据库镜像
    • 数据库实时备份
    • 索引构建和实时维护(拆分异构索引、倒排索引等)
    • 业务 cache 刷新
    • 带业务逻辑的增量数据处理

工作原理

在这里插入图片描述

  1. MySQL主备复制原理
    • MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 show binlog events 进行查看)
    • MySQL slave 将 master 的 binary log events 拷贝到它的中继日志(relay log)
    • MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据
  2. Canel 工作原理
    • 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议
    • MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
    • canal 解析 binary log 对象(原始为 byte 流)

真的不想写,烂泥巴不想打渔了!!!

下篇继续主从具体原理和canel 具体原理

取消MySQL是指停用或卸载MySQL数据库管理系统,以下是关于如何取消MySQL的步骤: 1. 停止MySQL服务:在Windows系统中,打开“服务”管理器,找到MySQL服务并右键点击选择“停止”。在Linux或Mac系统中,打开终端,使用以下命令停止MySQL服务: ``` sudo service mysql stop ``` 2. 卸载MySQL软件:在Windows系统中,打开“控制面板”并选择“程序和功能”,找到MySQL软件并右键点击选择“卸载”。在Linux或Mac系统中,打开终端,使用适用于您的包管理器卸载MySQL软件。例如,使用以下命令卸载MySQL: 对于Debian/Ubuntu系统: ``` sudo apt-get remove --purge mysql-server mysql-client mysql-common ``` 对于CentOS/RHEL系统: ``` sudo yum remove mysql-server mysql-client ``` 3. 删除MySQL数据目录:MySQL安装后会在计算机上创建一个数据目录,用于存储数据库文件。在卸载MySQL之前,确保备份了该目录中的重要数据。然后,使用文件管理器或终端,删除MySQL数据目录。默认情况下,它位于以下位置之一: Windows:C:\ProgramData\MySQL\MySQL Server [版本号]\Data Linux:/var/lib/mysql 或 /usr/local/mysql/data Mac:/usr/local/mysql/data 4. 清除MySQL配置文件:在文件管理器或终端中,找到并删除MySQL的配置文件。默认情况下,它位于以下位置之一: Windows:C:\ProgramData\MySQL\MySQL Server [版本号]\my.ini Linux:/etc/mysql/my.cnf 或 /etc/my.cnf Mac:/usr/local/mysql/my.cnf 5. 最后,重新启动计算机以确保取消MySQL的更改生效。 请注意,在执行上述步骤之前,务必备份重要的数据库和配置文件,以防止数据丢失。此外,取消MySQL后将无法再使用该数据库管理系统,除非重新安装和配置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值