文章目录
一、MySQL主从指的是什么?
MySQL 主从:表示MySQL的主数据库和从数据库
MySQL数据库是用来存放重要的数据。而从数据库可以理解为备份数据,主数据库(Master)将自己库中的写入同时同步给自己的从库(Slave),当主库发生某些不可预知的状况,导致整个服务器宕机时,从数据库中也有一份数据作为备份,可以做到快速恢复,减少造成数据的损失。
二、MySQL主从的作用?
- 容灾:主数据库宕机后,启动从数据库,用于故障切换
- 备份:防止数据丢失
- 读写分离:主数据库可以只负责写操作,而从数据库只用于读取。提高查询效率
三、MySQL主从同步原理
- 在MySQL中配置了主从之后,只要我们对Master节点进行了写操作,这个操作将会被记录到MySQL的binary-log(binlog日志)当中
- 当Slave连接到Master的时候,master机器会为slave开启binlog dump线程。
- 当Master 的binlog发生变化的时候,Master的dump线程会通知Slave,并将相应的binlog内容发送给Slave。
- 而Slave节点在主从同步开启的时候,会创建两个线程,一个I/O线程,一个SQL线程
-
I/O线程去读取主库的binlog,并将得到的binlog 日志写入relay log(中继日志)文件中,然后SQL线程,会读取relay log文件的日志,并解析成具体的操作,来实现主从的操作一致,达到最终数据一致的目的
如图所示:
这就是MySQL主从同步的原理,真正在其中起到关键作用的实际上就是这两个日志文件,binlog和relay log(中继日志)。