广告
返回顶部
首页 > 资讯 > 数据库 >【五】阿里巴巴 MySQL binlog 增量订阅&消费组件canal实现mysql数据同步
  • 850
分享到

【五】阿里巴巴 MySQL binlog 增量订阅&消费组件canal实现mysql数据同步

mysql数据库 2023-09-08 11:09:36 850人浏览 薄情痞子
摘要

canal实现mysql数据同步 简介:最近线上系统进行压测,评估线上系统容量,根据压测情况对代理层,代码,sql等都做了相应的优化,而系统最大的瓶颈在于数据库,根据实际业务情况,决定对数据库架构进行优化升级。其中最大的一个优化方案就是

canal实现mysql数据同步

简介:最近线上系统进行压测,评估线上系统容量,根据压测情况对代理层,代码,sql等都做了相应的优化,而系统最大的瓶颈在于数据库,根据实际业务情况,决定对数据库架构进行优化升级。其中最大的一个优化方案就是把只读业务进行数据库迁移,因此有了同步线上数据库到本地数据库的需求,所以想到了阿里研发的canal中间件,下面将对canal的调研情况做详细分析。

通过官网我们可以了解到canal主要用途是基于 Mysql 数据库增量日志解析,提供增量数据订阅和消费

可以把日志同步到mysqlMQ,ES等渠道中,这里我们要讲的模式是mysql to mysql

工作原理

  • canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议
  • MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
  • canal 解析 binary log 对象(原始为 byte 流)

  • 环境准备

服务器

数据库

安装包

192.168.1.46

mysql 5.7

canal.admin-1.1.7-SNAPSHOT.tar.gz

canal.deployer-1.1.7-SNAPSHOT.tar.gz

192.168.1.51

mysql 5.7

canal.adapter-1.1.7-SNAPSHOT.tar.gz

  • 配置

canal.admin 配置

tar -zxvf canal.admin-1.1.7-SNAPSHOT.tar.gz -C canal.admin

vi conf/application.yml

初始化元数据库

mysql -h127.0.0.1 -uroot -p

# 导入初始化SQL

> source /data2/soft/canal.admin/conf/canal_manager.sql

./bin/startup.sh  启动admin

浏览器访问 ip:8089

 canal-admin为canal提供了整体配置管理、节点运维等面向运维的功能,提供相对友好的WEBUI操作界面

canal.depoyer端配置

 1、mysql开启 Binlog 写入功能,配置 binlog-fORMat 为 ROW 模式,my.cnf 中配置如下

[mysqld]

log-bin=mysql-bin # 开启 binlog

binlog-format=ROW # 选择 ROW 模式

server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

2、授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限, 如果已有账户可直接 grant

CREATE USER canal IDENTIFIED BY 'Canal!123';  

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;

FLUSH PRIVILEGES;

重新启动mysql

service mysqld restart /  service mysql restart 

3、配置canal.deployer  

tar -zxvf canal.deployer-1.1.7-SNAPSHOT.tar.gz -C canal.deployer

主配置文件

canal.properties

子配置文件

instance.properties

 ./bin/startup.sh 启动deployer

canal.adapter端配置

tar -zxvf canal.adapter-1.1.7-SNAPSHOT.tar.gz -C canal.adapter

主配置文件

bootstrap.yml

需要注意这里数据库连接的配置 

application.yml

这里要注意的是,上面是源mysql连接的配置,下面是目标mysql的配置。注意这里数据库驱动需要和数据库版本对应上 

子配置文件

forecast_cloud_new_stations.yml

这里我配置的mapAll: true 整表映射,这样就需要源表和目标表字段一样。如果targetCloumns配置了映射,那就可以通过字段方式映射

./bin/stop.sh 停止

./bin/startup.sh  启动

看到如下日志说明已经成功实现了同步

来源地址:https://blog.csdn.net/wanghengwhwh/article/details/130874219

您可能感兴趣的文档:

--结束END--

本文标题: 【五】阿里巴巴 MySQL binlog 增量订阅&消费组件canal实现mysql数据同步

本文链接: https://www.lsjlt.com/news/399779.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作