mysql+clickhouse部署主从架构配置实时同步流程步骤
数据库  /  管理员 发布于 2年前   1805
在2020年下半年,Yandex 公司在 ClickHouse 社区发布了MaterializeMySQL引擎,支持从MySQL全量及增量实时数据同步。MaterializeMySQL引擎目前支持 MySQL 5.6/5.7/8.0 版本,兼容 Delete/Update 语句,及大部分常用的 DDL 操作。
配置部署mysql主服务(Master)
开启 BinLog 功能:ROW 模式
开启 GTID 模式:解决位点同步时 MySQL 主从切换问题(BinLog reset 导致位点失效)
# my.cnf关键配置
gtid_mode=ON
enforce_gtid_consistency=1
binlog_format=ROW
配置部署ClickHouse 从服务(Slave)
这里使用docker搭建clickhouse
https://www.zongscan.com/demo333/95838.html
创建Slave-ClickHouse中MaterializedMySQL database
# 查询
ca766e6b6e77 :) select * from system.settings where name ='allow_experimental_database_materialized_mysql';
SELECT *
FROM system.settings
WHERE name = 'allow_experimental_database_materialized_mysql'
Query id: 0f9597d4-1ffc-48d7-a961-43d9e9c58054
┌─name───────────────────────────────────────────┬─value─┬─changed─┬─description──────────────────────────────────────────────────┬─min──┬─max──┬─readonly─┬─type─┐
│ allow_experimental_database_materialized_mysql │ 0 │ 0 │ Allow to create database with Engine=MaterializedMySQL(...). │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ 0 │ Bool │
└────────────────────────────────────────────────┴───────┴─────────┴──────────────────────────────────────────────────────────────┴──────┴──────┴──────────┴──────┘
1 rows in set. Elapsed: 0.002 sec.
# 开启materialized同步功能
ca766e6b6e77 :) set allow_experimental_database_materialized_mysql=1;
SET allow_experimental_database_materialized_mysql = 1
Query id: f3d1c0fb-9044-4d9a-bb90-3c2470630c4c
Ok.
0 rows in set. Elapsed: 0.001 sec.
# 创建slave库,参数分别是("mysqld服务地址", "待同步库名", "授权账户", "密码")
ca766e6b6e77 :) CREATE DATABASE pdf ENGINE = MaterializeMySQL('localhost:3306', 'pdf', 'root', 'password')
CREATE DATABASE pdf
ENGINE = MaterializeMySQL('localhost:3306', 'pdf', 'root', 'password')
Query id: a808e71c-521b-4419-831f-800c7d153060
Ok.
0 rows in set. Elapsed: 0.036 sec.
ps:
网络上很多参数设置错误,错误如下:
设置参数出错,未知参数
Code: 115. DB::Exception: Received from localhost:9000. DB::Exception: Unknown setting allow_experimental_database_materialize_mysql. (UNKNOWN_SETTING)
问题解决
https://github.com/ClickHouse/ClickHouse/issues/30163
Rename `MaterializeMySQL` to `MaterializedMySQL`
这样主从架构实时同步就配置完了.
后面就是测试了,自行测试,主服添加数据,从服看一下有没有同步过来就ok了
客户端连接方式推荐:DBeaver
还是看个人习惯吧
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号