1、什么是主从复制:在实际生产中,数据库若只在一台服务器上,容易产生单点故障问题。因此一般在多台服务器上部署数据库,将数据复制多分在不同的服务器上,即使一台故障了,其余的也能对外提供服务。主从复制指的是,将这几台服务器就分为主库和从库,其中主库负责读写操作,从库只负责读。主库master,从库slave。
2、主从复制的架构:一主多从、多主多从。
3、主从复制原理:主要思想就是master将自己的增删改操作记录起来,slave将这些操作再在自己的数据库执行一遍,这样就可以让数据保持一致,从而实现了主从复制。
(1)master主服务器上的数据发生改变,主服务器将其改变写入二进制日志文件中。
(2)slave每隔一段时间就会去检测主服务器上的二进制日志文件是否改变
(3)若改变,则slave从服务器启动I/O 线程,请求主服务器上的日志文件。
(4)master主服务器为每个I/O线程启动一个dump线程,用于向其发送二进制文件。
(5)slave将接受到的二进制文件保存到自己的中继日志文件中。
(6)slave启动SQL线程,从中继日志读取二进制日志文件,并进行重放,使其数据与主服务器保持一致。
(7)最后I/O 线程、SQL线程进入休眠状态,等待下一次唤醒。