MySQL是怎么保证主备一致的
1.mysql 主备的基本原理。
2.主备库之间维持一个长连接。
3.binlog的三种格式对比。
binlog_format ==
1.statement
存在sql原文,指定表名,出现删除索引不一致,造成主备不一致,可能是unsafe
2.row
2.1 Table_map event 说明要操作的表
2.2 Delete_rows event 用于定义要删除的行为
记录删除的具体行数,不会出现主备删除不一致
但是占用大量空间,消费IO资源,影响执行速度。
3.mixed
mysql 自动判断是否会引起主备不一致,如果是,采用row,如果不会,采用statement.
row格式的好处:恢复数据。
statement 也会记录关于日期的数据 SET TIMESTAMP
4.循环复制问题
双M结构 ,会生成service id 如果拿到是自己的service id 会把数据丢弃