原理: MySQL主从是基于binlog,在主机上需开启binlog才能进行主从;
binlog有三种模式:
Statement: Binlog中存储SQL的语句,存储日志量是最小的。但是,对于user()等函数存在bug
Row: 是主从复制更加安全,但是存储日志量大,但是不能直接进行读取。(默认)
Mixed:介于两者之间,对于不确定的操作使用Row记录。根据SQL语句有系统决定是基于段还是行复制。
大致过程:
a: master主机中的MySQL将更改操作的记录到bin-log(二进制日志文件)里;
b: slave主机将master主机中的的bin-log事件(也就是操作的sql语句)同步到本机上并记录在本机的relay-log里;
c: slave机再根据relay-log里面的sql语句依次按顺序执行
作用:
a: 实时灾备,用于故障切换
b: 读写分离,提供查询服务
c: 实时备份,避免影响业务