为什么需要主从复制?
通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低。
为了提升业务系统性能,优化用户体验,可以通过做主从复制来减轻主数据库的负载。
而且如果主数据库宕机,可快速将业务系统切换到从数据库上,可避免数据丢失。
主从复制原理
-
主库将更新记录保存于Binlog文件中,并通过Binglog Dump线程发送给从库。
-
从库的I/O线程从主库读取Binlog更新的数据,写入到Relay log中。
-
从库的SQL线程读取Relay log文件的数据写入从库,实现同步。
采用GTID (Global Transaction ID)主从复制方式,保证了每个在主库上提交的事务在集群中有一个唯一的ID。
这种方式强化了数据库的主从一致性,故障恢复以及容错能力。
相比于早期通过master_log_file,master_log_pos同步的主从复制,省去了从库宕机重启后,需要重新配置的问题。