文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-08 11:08

关注

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

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

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

工作原理

服务器

数据库

安装包

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯