数据库15——主从同步

132 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

概念、实现原理

主从复制(Replication)是指数据可以从数据库主服务器复制到一个或多个从服务器默认采用异步模式。可复制的数据有:所有数据库、特定数据库、特定表。

实现原理

  • 主服务器 binlog dump 线程:将主服务器中的数据更改(增删改)操作写入 Binlog 日志中;
  • 从服务器 I/O 线程:从主服务器读取binlog日志并写入本地的 Relay log
  • 从服务器 SQL 线程读取 Relay log解析出主服务器执行过的操作,并在从服务器中重新执行,保证主从数据的一致性。

为什么是分布式事务

主从一致:binlog 内容与redo log内容一致

因为redo log的更新是InnoDB引擎层面的行为,binlog的更新是MySQL数据库层面的行为,保证不同模块之间的行为同步就是分布式事务。

过程

(1)对 redo log进行prepare的写入

(2)对bin log写入

(3)IO线程读取bin log并写入relay log

(4)对reldo log进行commit

为什么要主从复制?

  • 数据实时备份,当系统中某个节点发生故障时,可以方便的故障切换

  • 读写分离主服务器负责写数据从服务器负责供读取数据

    • 缓解锁竞争,即使主服务器中加了写锁,依然可以在从服务器进行读操作;
    • 降低磁盘I/O频率提高单机的I/O性能
    • 从服务器可以使用 MyISAM引擎,提升查询性能以及节约系统开销
    • 增加冗余,提高可用性