mysql主从复制
概念
mysql主从复制是指数据可以从mysql数据库服务器的主节点复制到一个或多个从节点。mysql默认采用的是异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据。数据的更新可以在远程连接上进行,从节点可以复制主服务器的所有数据库或特定数据库,或者特定的表。
mysql为什么需要主从同步?
1.读写分离,主库写,分库读,当一个写操作对数据库上锁了,可以读分库的数据,不耽误业务的正常运转。
2.数据的热备,当一些特殊场景,比如系统搞活动的时候,访问量很大,一台mysql服务器扛不住,宕机的时候可以连接备份服务器保证业务正常进行
3.业务量越来越大 i/o访问过高 一台服务器无法满足
mysql主从复制的原理是什么?
mysql的复制原理总结一句话,就是binlog传送。
复制的过程:
master 和slave 安装在不同的服务器,并建立连接。
master数据库 有个dump_thread线程,专门用来读取 binlog日志,然后把binlog发送给slave从库。
slave数据库其中有两个线程,分别是 io_thread和sql_thread 线程,
io_thread:
其中io_thread线程主要是外部进行交互的,用来接收主库发送过来的binlog,并将binlog保存为relay log(中继日志)
sql_thread:
这个线程专门读取中继日志,解析出日志里的命令,并执行。
mysql复制的类型:
根据复制同步的类型,复制可以分为:
第一,异步复制( Asynchronous Replication)
第二,半同步复制( Semisynchronnous Replication)
第三,组复制( Group Replication)