binlog以及Canel_HY_Chan的博客-CSDN博客_canel


本站和网页 https://blog.csdn.net/github_38687585/article/details/80944824 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

binlog以及Canel_HY_Chan的博客-CSDN博客_canel
binlog以及Canel
HY_Chan
于 2018-07-06 18:10:11 发布
12920
收藏
16
分类专栏:
java
阿里巴巴
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/github_38687585/article/details/80944824
版权
java
同时被 2 个专栏收录
35 篇文章
0 订阅
订阅专栏
阿里巴巴
1 篇文章
0 订阅
订阅专栏
一、NDB存储引擎
在介绍binlog之前,需要先了解一下NDB NDB 存储引擎也叫NDB Cluster 存储引擎,主要用于MySQL Cluster 分布式集群环境。
NDB特点: • 分布式:分布式存储引擎,可以由多个NDBCluster存储引擎组成集群分别存放整体数据的一部分 • 支持事务:和Innodb一样,支持事务 • 可与mysqld不在一台主机:可以和mysqld分开存在于独立的主机上,然后通过网络和mysqld通信交互 • 内存需求量巨大:新版本索引以及被索引的数据必须存放在内存中,老版本所有数据和索引必须存在与内存中
二、Mysql集群
mysql主从备份实现:
master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);slave将master的binary log events拷贝到它的中继日志(relay log);slave重做中继日志中的事件,将改变反映它自己的数据。
如果你能将自己伪装为一个mysql slave,就可以欺骗mysql master给自己推送中继日志,从而实现增量获取事件的功能。阿里开源的canel就是这样做的。
三、Binlog
简单点说:
binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。mysql的binlog数据格式,按照生成的方式,主要分为:statement-based、row-based、mixed。使用mysqlbinlog解析查看 一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master-slave数据一致的目的。 (数据库的主从复制) 其二:自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。
一、开启binlog日志: vi编辑打开mysql配置文件
# vi /usr/local/mysql/etc/my.cnf
在[mysqld] 区块 设置/添加 log-bin=mysql-bin 确认是打开状态(值 mysql-bin 是日志的基本名或前缀名); 重启mysqld服务使配置生效
# pkill mysqld
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
二、也可登录mysql服务器,通过mysql的变量配置表,查看二进制日志是否已开启 单词:variable[ˈvɛriəbəl] 变量 登录服务器
# /usr/local/mysql/bin/mysql -uroot -p123456
mysql> show variables like 'log_%';
三、常用binlog日志操作命令
1.查看所有binlog日志列表
mysql> show master logs;
2.查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值
mysql> show master status;
3.刷新log日志,自此刻开始产生一个新编号的binlog日志文件
mysql> flush logs;
注:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志; 4.重置(清空)所有binlog日志
mysql> reset master;
四、查看某个binlog日志内容 这里介绍一种方便的查询命令:
mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
选项解析: IN ‘log_name’ 指定要查询的binlog文件名(不指定就是第一个binlog文件) FROM pos 指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算) LIMIT [offset,] 偏移量(不指定就是0) row_count 查询总条数(不指定就是所有行)
四、Canel
canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。
起源:早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。
基于日志增量订阅&消费支持的业务:
数据库镜像
数据库实时备份
多级索引 (卖家和买家各自分库索引)
search build
业务cache刷新
价格变化等重要业务消息
原理相对比较简单:
1、canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
2、mysql master收到dump请求,开始推送binary log给slave(也就是canal)
3、canal解析binary log对象(原始为byte流)
架构设计 个人理解,数据增量订阅与消费应当有如下几个点:
1、增量订阅和消费模块应当包括binlog日志抓取,binlog日志解析,事件分发过滤(EventSink),存储(EventStore)等主要模块。
2、如果需要确保HA可以采用Zookeeper保存各个子模块的状态,让整个增量订阅和消费模块实现无状态化,当然作为consumer(客户端)的状态也可以保存在zk之中。
3、整体上通过一个Manager System进行集中管理,分配资源。
源码以及项目介绍: https://github.com/alibaba/canal canal消费端项目开源:Otter(分布式数据库同步系统),地址:https://github.com/alibaba/otter
HY_Chan
关注
关注
点赞
16
收藏
打赏
评论
binlog以及Canel
一、NDB存储引擎在介绍binlog之前,需要先了解一下NDB NDB 存储引擎也叫NDB Cluster 存储引擎,主要用于MySQL Cluster 分布式集群环境。NDB特点: • 分布式:分布式存储引擎,可以由多个NDBCluster存储引擎组成集群分别存放整体数据的一部分 • 支持事务:和Innodb一样,支持事务 • 可与mysqld不在一台主机...
复制链接
扫一扫
专栏目录
超详细的Canal入门,看这篇就够了!
yehongzhi1994的博客
08-09
19万+
Canal入门看这篇就够了!
亿级流量的缓存方案-缓存同步-Cannal实战
Blueeyedboy521的博客
06-09
727
缓存数据同步的常见三种方式:设置有效期:给缓存设置有效期,到期后自动删除。再次查询时更新同步双写:在修改数据库的同时,直接修改缓存设置有效期:修改数据库时发送事件通知,相关服务监听到通知后修改缓存数据canal,译意为水道/管道/沟渠,是阿里巴巴旗下的一款开源项目,基于JAVA开发。主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。
以下参考canal官网:https://github.com/alibaba/canal。
但是canal的数据同步不是全量的,而是增量。基于binary
参与评论
您还未登录,请先
登录
后发表或查看评论
【Canal】canal简介
最新发布
qq_41466440的博客
11-04
236
【Canal】canal简介
Canel-简介&使用
S1124654的博客
07-13
2885
Canel-简介&使用
数据同步神器Canel-day01
weixin_40413961的博客
05-22
3310
背景
关于数据同步的方式有很多种,现在有一个场景需要将mysql数据库的数据主动同步到我们的工程中,并且能再mysql数据库客户端更改某一行的数据也能将数据同步到另一个数据库或者工程中,对于这种场景的使用我们应该怎么去实现呢?
我们从问题点去分析,
同步mysql数据库数据到工程中,这个很简单,那就是工程直接连接数据库直接读取。这不是主动是被动,这样的话那就肯定得数据库主动去触发了。
那这肯定要改动mysql的底层源码,或者mysql又提供接口,既然说到了这里,想想mysql的主从同步机制呢?
mas
canel的网络策略
weixin_34318956的博客
03-19
113
资源:
https://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/flannel
基于pod
Egress 是Pod作为客户端(需要定义目标端口和目标地址)
ingress 是pod作为服务端(需要定义目标地址和pod自己的端口)
canel工作的默认网段是192.168.0.0/16...
canel
huaweitman的专栏
06-07
2960
http://www.oschina.net/p/canal
25面试常问:这三道常见的面试题,你有被问过吗?
AI乔治
11-12
367
据群友面试反馈,整理了3道MySQL面试题,对很多人可能是小菜一碟,对这些熟悉,有更好的理解的话,可以留言补充,不断完善我们的题库。
MySQL查询字段区不区分大小写?
MySQL innodb的事务与日志的实现方式
MySQL binlog的几种日志录入格式以及区别
MySQL查询字段区不区分大小写?
答案是不区分
如何解决需要区分英文大小写的场景
例如登录用户为admin,此时填写ADMIN也能登录,如果用户名需要区分大小写,你的做法是什么...
Binlog详解
与优秀的人在一起,会使自己变得更优秀
05-17
2万+
一、介绍
  binlog, 即二进制文件,他记录了MySQL所有数据的变更,并以二进制的形式存储在磁盘上
二、binlog模式
  binlog有三种模式:ROW(行模式), Statement(语句模式), Mixed(混合模式)
  ROW(行模式):记录那条数据修改了,注意:记录的是这条记录的全部数据,即使只更新了一个字段,binlog里也会记录所有字段的数据
...
使用 Binlog 和 Canal 从 MySQL 抽取数据
张吉的博客
08-14
7万+
数据抽取是 ETL 流程的第一步,我们常会需要从多个不同的 MySQL 实例中抽取数据,存入一个中心节点,或直接进入 Hive。借助 Canal 项目,我们能够通过 MySQL Binlog 进行数据抽取。
数据库binlog(二进制日志binary log)
arispy的博客
12-01
2760
二进制日志中存储的内容称之为事件,每一个数据库更新操作(Insert、Update、Delete,不包括Select)等都对应一个事件。
mysql binlog基本原理 - 简书 (jianshu.com)https://www.jianshu.com/p/a0bcb778b7f5(27条消息) 消息中间件(一)MQ详解及四大MQ比较_jcpp9527的博客-CSDN博客_mqhttps://blog.csdn.net/wqc19920906/article/details/82193316
基于bi
Canal监听mysql的binlog日志实现数据同步
靖节先生的博客
08-08
3271
Canal监听mysql的binlog日志实现数据同步1. canal概述1.1 canal简介1.2 原理分析1.2.1 MySQL主备复制原理1.2.2 canal原理2. canal安装配置1.1 mysql环境准备1.2 canal下载1.3 canal配置启动3. 实现验证3.1 案例编码3.2 实现验证
1. canal概述
1.1 canal简介
canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。
早期阿里巴巴因为杭州
缓存同步canal实现(订阅binlog)
qq_46624276的博客
09-02
514
对于实体类,Canal会将改变的数据注入Item,如果属性名和数据库字段名不一致,需要用注解标明。重启docker,/mysql/data目录下会出现mysql-bin.000001。查看主库的状态(如果从库字段position小于主库,那么就有新的数据要获取了)当canal监听到binlog发生变化,会通知canal客户端。2、基于canal实现缓存同步。1、基于mq实现缓存同步。
LOG的含义 : Mysql 之 binlog介绍
tianyeshiye
12-06
858
1、什么是binlog
binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。
默认情况下,binlog日志是二进制格式的,不能使用查看文本工具的命令(比如,cat,vi等)查看,而使用mysqlbinlog解析查看。
2.binlog的作用
...
binlog的详细介绍与分析
chenliang
03-13
2201
文章目录1.1 binlog基本介绍1.2 binlog有何作用1.3 binlog的开启与查看1.4 binlog的索引文件说明
1.1 binlog基本介绍
二进制日志(binlog)的作用是记录MySQL数据库所有DDL、DML类型语句的操作,但不记录DML类型语句中的select的操作;比如说你在mysql中操作了一条sql语句(create database;)那么这条语句会被记录到二进...
Binlog介绍
zhyk1117的博客
05-05
926
概念
Binary log(二进制日志),简称Binlog。 Binlog是记录所以数据表结构变更以及表数据修改的二进制日志,不会记录select和show这类操作。Binlog是以事件形式记录,还包括语句所执行的消耗时间。Binlog是MySql Server自己的日志,但是Redo Log是基于InnoDB引擎所特有的日志。
开启Binlog日志的最重要使用场景:
主从复制
在主库开启Binlog功能,这样主库就可以把Binlog传递给从库,从库拿到Binlog后实现数据恢复达到主从数据一致性。
CanAl入门
weixin_39868387的博客
02-18
176
一、为什么要使用canal
1、作用:同步mysql
主要有两种方式:
(1)做拉链表
(2)更新redis
2、某些情况无法从日志里获取信息,而又无法利用sqoop等ETL工具对数据实时的监控
二、canal工作原理
1、mysql主备复制的实现
canal的工作原理很简单,就是把自己伪装成slave,假装从master复制数据。
三、了解mysql的binlog
1、binlog 基本...
阿里的数据同步神器——Canal
恒哥的博客
02-18
1万+
数据增量同步工具 Canal
搭建: canal部署与实例运行
热门推荐
心之所向,无惧无悔!
07-18
7万+
1、准备:
github:https://github.com/alibaba/canal
里面有包括server端 client端的 例子
阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费
agapple
02-06
1206
背景
早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps. 目前内部使用的同步,已经支持mysql5.x和oracle部分...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:编程工作室
设计师:CSDN官方博客
返回首页
HY_Chan
CSDN认证博客专家
CSDN认证企业博客
码龄6年
暂无认证
59
原创
5万+
周排名
62万+
总排名
13万+
访问
等级
1776
积分
52
粉丝
85
获赞
16
评论
327
收藏
私信
关注
热门文章
List的clone()方法
20572
网址(url),域名,ip地址,dns,hosts之间的关系
14636
binlog以及Canel
12920
常见开发框架
9573
org.eclipse.jetty.io.EofException: Closed问题解决
7558
分类专栏
读书笔记
1篇
MySQL
1篇
云计算
3篇
arduino
1篇
游戏编程
2篇
mfc
2篇
web前端开发
1篇
Boostrap
1篇
linux
1篇
ubuntu-配置
2篇
zookeeper
1篇
java
35篇
Spring
7篇
netty
1篇
网络
3篇
阿里巴巴
1篇
网络编程
1篇
总结
7篇
记录
7篇
并发编程
1篇
最新评论
使用freemarker、Itext进行Html转Pdf(解决中文问题&图片问题)
bubblez:
直接引入后台地址,当断网的时候就有问题了。。如果读取本地文件有什么方案么 base64?本地地址?
"MiniHand"蓝牙自动化仿生机械臂小车
哇咔咔~*:
适用于51单片机吗?
"MiniHand"蓝牙自动化仿生机械臂小车
哇咔咔~*:
信号接口没有吗?
"MiniHand"蓝牙自动化仿生机械臂小车
哇咔咔~*:
使用freemarker、Itext进行Html转Pdf(解决中文问题&图片问题)
酒书:
我的就是这种格式,但是导出来pdf不显示图片https://s3plus.sankuai.com/v1/xxx
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Long.getLong 的坑:获取到null
ABTest资料汇总
Sql 解析出错
2021年6篇
2020年8篇
2019年1篇
2018年32篇
2017年12篇
目录
目录
分类专栏
读书笔记
1篇
MySQL
1篇
云计算
3篇
arduino
1篇
游戏编程
2篇
mfc
2篇
web前端开发
1篇
Boostrap
1篇
linux
1篇
ubuntu-配置
2篇
zookeeper
1篇
java
35篇
Spring
7篇
netty
1篇
网络
3篇
阿里巴巴
1篇
网络编程
1篇
总结
7篇
记录
7篇
并发编程
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
HY_Chan
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值