分布式部署时数据库之间的数据同步
数据的同步原理就是同步binlog日志到需要复制的其他的数据库上,其他数据库根据binlog日志里面的ddl和dml语句,执行该语句同步到当前数据库,就能保证多个数据库的数据的一致性。
Binlog日志主要是的数据库执行的ddl、dml语句执行的日志。
Relaylog 主要是来同步其他数据binlog,之所以需要,因为ddl、dml的执行的速度比读取binlog的数据慢,要保证的数据一致性,我们就需要先存在relaylog中。在本库中读取执行ddl、dml语句,就是通信中断也能保证数据能正常同步。
具体步骤:
1、 从库通过手工执行change master to 语句连接主库,提供了连接的用户需要的一切条件(user,password,port,ip),并且让从库知道,二进制日志的起点位置(file名 position号);start slave
2、 从库的IO线程和主库的dump线程建立连接。
3、 从库根据change mater to 语句提供的file名和position号,IO线程向主库发起binlog的请求。
4、 主库dump线程根据从库的请求,将本地binlog以events的方式发给从库io线程。
5、 从库io线程接收binlog events,并存放在本地的relay log中,传递过来的信息,会记录到master.Info中.
6、 从库sql线程应用relay log ,并且吧应用过的记录到relay-log.info中,默认情况下,应用过的relay会自动被清理。