首先我们先提出几个问题?
1.MySQL的主从复制是如何工作的?
2.比较一下基于GTID方式的复制和基于日志点的复制。
3.比较一下MMM和MHA两种高可用架构的优缺点。
4.如何减小主从复制的延迟?
5.说说你对MGR的认识。
6.如何解决数据库读写负载大的问题?
答案解析如下:
一、MySQL的主从复制是如何工作的?
1.MySQL主从复制的实现原理
主从复制:MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。
主要作用:在开发工作中,有时候会遇见某个sql 语句需要锁表,导致暂时不能使用读的服务,这样就会影响现有业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。
实现原理:MySQL主从复制涉及到三个线程,一个运行在主节点(log dump thread),其余两个(I/O thread, SQL thread)运行在从节点,如下图所示:
2.MySQL主从复制模式
异步模式:我们还是采用一主两从的架构模式,master上进行修改,执行,提交操作,之后master将结果语句修改的调用方,告诉他数据修改成功。之后将数据的修改写入二进制日志中后,会从slave的IO进程存储到slave的relay log中,两个slave服务器分别从SQL进程读取relay log的事件,并在本地数据库上来应用。如下图:
半同步模式:我们还是采用一主两从的架构模式,master上进行修改,执行,之后master将结果语句修改的调用方,告诉他数据修改成功。之后将数据的修改写入二进制日志中后,然后通过IO进行同步到slave端并计入到relay log中,但是和异步模式不同的是这时候的slave会向master发送一个确认消息,只有收到的slave确认消息之后才会继续操作提交,之后主才会把修改好的数据返回给客户端。如下图:
3.MySQL主从复制的配置步骤
master服务器上操作:
slave服务器上操作:
数据库备份:
将master上的.sql文件传给slave:
二、比较一下基于GTID方式的复制和基于日志点的复制
1.什么是基于日志点的复制
传统的主从复制方式
slave请求Master的增量日志依赖于日志偏移量
配置链路时需要指定master_log_file和master_log_pos参数
2.什么是基于GTID的复制
GTID = source_id:transaction_id
slave增量同步master的数据依赖于其未同步的事物ID
配置链路时,slave可以根据已经同步的事务ID继续自动同步
3.这两种复制方式各自的特点
4.这两种方式如何选择
三、比较一下MMM和MHA两种高可用架构的优缺点
1.MMM和MHA两种架构的作用
MMM:Master-Master Replication Manager for MySQL(mysql主主复制管理器)的简称,是Google的开源项目(Perl脚本),主要用来监控mysql主主复制并做失败转移。其原理是将真实数据库节点的IP(RIP)映射为虚拟IP(VIP)集,在这个虚拟的IP集中,有一个专用于write的IP,多个用于read的IP,这个用于Write的VIP映射着数据库集群中的两台master的真实IP(RIP),以此来实现Failover的切换,其他read的VIP可以用来均衡读(balance)。
MHA:MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。
MMM和MHA架构作用:
2.MMM架构的优缺点以及适用场景
主服务器宕机后
从服务器宕机后
MMM架构的故障转移步骤
MMM架构需要的资源
MMM架构配置的步骤
MMM架构的优点
MMM架构的缺点
MMM架构适用场景
3.MHA架构的优缺点以及适用场景
监控到master实例不可访问时
MHA架构的故障转移步骤
MHA架构需要的资源
MHA架构的配置步骤
MHA架构的优点
MHA架构的缺点
MHA架构的适用场景
四、如何减小主从复制的延迟
1.主从复制延迟产生的原因
2.几种减小主从延迟的处理办法
五、说说你对MGR的认识
1.什么是MGR复制?
MGR(MySQL Group Replication)简称:MGR(组复制)。它是官方推出的一种基于Paxos协议的状态机复制,彻底解决了基于传统的异步复制和半同步复制中数据一致性问题无法保证的情况
MGR复制架构:
MGR复制实现原理:
MGR两种模式
单主模式:
多主模式:(官方推荐)
MGR架构需要的资源
3.如何使用MGR复制?
MGR复制架构的配置步骤
4.当前MGR的优缺点
MGR复制架构优点:
MGR复制架构缺点:
MGR复制架构的适用场景:
六、如何解决数据库读写负载大的问题
关键点:读写分离
1.如何解决读负载大的问题
2.如何解决写负载大的问题