什么是mysql主从复制?
MySQL主从复制的意思就是将数据从一个MySQL服务器的主节点复制到N个从节点(一个或多个)。一般,主节点负责写数据,从节点负责读数据,同时保证主节点的数据及时同步到从节点。主从复制可以做到实时热备数据
热备和冷备?
热备:在数据库运行的情况下,备份数据。
冷备:在数据库关闭的情况下,备份数据。
Mysql的复制模式?
异步复制是MySQL默认的复制模式。
该模式的好处是不用一直访问master,从而对master造成压力。
该模式的坏处是主库写入binlog日志后即可成功返回客户端,无须等待binlog日志传递给从库的过程,如果主库一旦宕机,就有可能出现丢失数据的情况。
为什么需要主从复制(主从同步)?
- 主库负责写,从库负责读,减轻主库压力。而且有时候SQL语句会造成锁表的情况,导致暂时不能读的情况,使用主从,就能保证业务的正常运行
- 实现数据热备
- 便于架构的扩展。考虑以后io会更加频繁,以后可以做多库的存储,降低磁盘io访问频率,提高单个机器的io性能
主从复制原理?
- 主库数据改变后,将其记录到二进制binlog日志中。
- 从库在一定时间间隔内对主库的二进制日志进行探测,感知是否发生变化。如果发生变化,通过io thread线程对主库发起请求。
- 主库会通过io dump thread线程向从库iothread线程传递二进制binlog日志。
- 从库将得到的binlog日志保存至relay-log日志,通过mysql thread线程读取relay-log(中继日志),执行里面的sql语句,在从节点上生成相应的数据,从而保证主从数据一致。
主从同步注意事项
1.主从mysql版本最好一致,如果不能一致,也要保证主库的版本低于从库的版本。
2.启用同步前,要保证主从数据是一致的。
3.Master 开启二进制日志,Master 和 Slave 的 server_id 在局域网内必须唯一。