MySQL主从复制面试和原理
1.什么事是主从赋值
主从复制是用来建立一个主数据库master和一个一样的从数据库,主数据库一般是准实时 update,inster,delete 从数据库一般都是进行查询 select 操作
2.主从复制的作用(好处,或者说为什么要做主从)重点!
2.1.做数据热备
2.2.提高单个机器的I/O性能。
2.3.读写分离,使数据库能支撑更大的并发
3.主从复制的原理
3.1.主db的update inster delete操作被写到binlog文件中
3.2.从库连接主库
3.3.从库连接到主库后,主库会创建一个binlog dump thread线程,把binlog中记录的sql语句发送给从库
3.4.从库启动会穿件一个I/O线程,读取主库传过来的binlog中的内容写到relay log
3.5.从库还会创建一个sql线程,从relay log中读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到
slave的db中
4.主从复制的方式
4.1.一主多从—扩展系统读取的性能,因为读是在从库读取的;
4.2.多主多从
4.3.一主一从
4.4.多主一从—5.7开始支持
4.5.联级复制
5.主从复制的用途以及条件
5.1.mysql主从复制用途
实时灾备,用于故障切换
读写分离,提供查询服务
备份,避免影响业务
5.2.主从部署必要条件:
主库开启binlog日志(设置log-bin参数)
主从server-id不同
从库服务器能连通主库
6.问题及解决办法
mysql主从复制存在的问题:
主库宕机后,数据可能丢失
从库只有一个sql Thread,主库写压力大,复制很可能延时
解决方法:
半同步复制—解决数据丢失的问题
并行复制—-解决从库复制延迟的问题