MySQL 主从同步原理

马谦马谦马谦 MySQL评论559字数 397阅读 1 分 19 秒阅读模式

一、主从复制原理

MySQL 主从复制依赖 binlog,binlog 中记录了数据库中的执行过的语句,主从复制时,复制的并不是整个数据库中的所有数据,而是从上次同步到现在所执行过的 SQL 语句。

执行主从同步时,主库会有一个 Log-Dump 线程和从库同步,把 binlog 发送给从库。从库则有一个 I/O 线程和 SQL-Thread 线程分别用于和主库同步和重放。同步过程是:

  1. 从库的 I/O 线程向主库请求同步,主库把数据发送过来。
  2. 收到主库的 binlog 后,从库会把日志放到 relay-log 。
  3. SQL 线程重放 SQL 语句,数据达到同步。

MySQL主从同步原理-图片1

二、复制方式

2.1 异步复制

默认情况下 MySQL 是异步复制,即 SQL 语句执行完成后写入 binlog 就可以了,不用等待主从数据同步完成。

2.2 半同步复制

同步复制的意思是每次执行 SQL 语句要等待从库写入到 relay log 后才能继续往下执行,这样就避免了主库以外宕机后从库数据不一致的情况。

MySQL主从同步原理-图片2

  最后更新:2020-3-16
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2018 年 2 月 6 日 13:31:21
  • 转载请务必保留本文链接:https://www.dyxmq.cn/databases/mysql/mysql-replication.html
MySQL中的B+树索引和哈希索引 MySQL

MySQL 中的 B+树索引和哈希索引

一、为什么要使用索引 索引是存储引擎用于快速找到记录的一种数据结构。索引对于数据库良好的性能十分关键,尤其是表中的数据量越来越大时,索引对性能的影响十分明显。 《高性能 MySQL 》中对索引的评价是:索...
数据库中的多版本并发控制(MVCC) MySQL

数据库中的多版本并发控制 (MVCC)

一、概述 事务的出现给并发带来了巨大的便利性,它的 ACID 特性使得数据在并发时更加可靠。但是对于事务而言,它也会导致出现第一类丢失更新、第二类丢失更新、脏读、不可重复读以及幻读的问题,当然又出现了多种...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证