注:本文并不是手把手搭建MySQL双主复制的教程,仅仅只是本人学习以后的心得体会。所以中间看起来会有很大跳跃,建议先反复试验官方手册中搭建主从环境直至熟练掌握
搭建双主复制与主从复制并没有太多区别,差别仅仅是两台机器都开启二进制日志,并分别执行change master to语句
以下是配置文件上双主与主从不同的地方,增加在[mysqld]节点下(全部都是可选,不是必须值)
[mysqld] slave-skip-errors=all log-slave-updates sync_binlog=1 |
log-slave-updates 添加这个参数,可以让从库和主库的二进制日志一致。如果未添加,则来自于主库的数据,是不会记录到从库的二进制日志的,这个不利于崩溃后的数据恢复。使用mysqlbinlog可以解析并查看log,如mysqlbinlog mysql-bin.000001 > bin-log.log。自己试试最容易理解这个参数的意思。
sync_binlog=1 大概是多少次事务以后强制刷新内存中的日志到硬盘,默认是0,不强制刷新,要是对丢一点数据无所谓,保持0挺好,因为这个选项对性能有影响。
另外如果两个主库都负责写入工作,那么还要分别配置以下选项,让自增主键的起点不同,这样防止同步的时候发生自增主键冲突的情况。不过我这里的环境虽然是双主,但是始终只有一个写,应该不会产生这个问题。
auto_increment_increment=2 |