一定要弄懂的MySQL复制原理~

bd4c444fb7887ead3ff9964c33049d69.png

若有收获,请记得分享和转发哦

业务需要上线,所以除了表和索引的结构设计之外,你还要做好高可用的设计。因为在真实的生产环境下,如果发生物理硬件故障,没有搭建高可用架构,会导致业务完全不可用。

而这在海量并发访问的互联网业务中完全不敢想象。所以除了业务架构,还要做好可用性的架构设计。

今天我们就来学习 MySQL 高可用架构中最基础、最为核心的内容:MySQL 复制(Replication)。

MySQL 复制架构

数据库复制本质上就是数据同步。MySQL 数据库是基于二进制日志(binary log)进行数据增量同步,而二进制日志记录了所有对于 MySQL 数据库的修改操作。

在默认 ROW 格式二进制日志中,一条 SQL 操作影响的记录会被全部记录下来,比如一条 SQL语句更新了三行记录,在二进制日志中会记录被修改的这三条记录的前项(before image)和后项(after image)。

对于 INSERT 或 DELETE 操作,则会记录这条被插入或删除记录所有列的信息,我们来看一个例子:

DELETE FROM orders_test 
WHERE o_orderdate = '1997-12-31';
Query OK, 2482 rows affected (0.07 sec)

可以看到,上面这条 SQL 执行的是删除操作,一共删除了有 2482 行记录。可以在 mysql 命令行下使用命令 SHOW BINLOG EVENTS 查看某个二进制日志文件的内容,比如上述删除操作发生在二进制日志文件 binlog.000004 中,你可以看到:

217b951e8c89d5baedf02c875b4673ce.png

fb36d657a6c16ed07716017b3032339e.png

9e297753e86e777a81421444c95534b2.png

093f530001ec80c1e53a4b3afb155167.png

23afaa7cdc15351a2acda86df831d0d3.png

9c1b65093e072aabc971827f1c8da590.png

968cdf8f7589d9059a23d77e27e209c4.png

4e1e963873e2ded5784ecc62f11eaf88.png

4d414c3cb66c591779db12e6cd104a84.png

6c4731f499dd7ec018634a863ebcc0c1.png

83cc50a5541fcc08048463ad61a6d26b.png

63f7767105f3e045cd13fb9d0c78e5a2.png

21a6ec4a89be7f7447cda58417b06390.png

169037ce509263aa97e9c49056b29676.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值