MySQL双主复制小结

注:本文并不是手把手搭建MySQL双主复制的教程,仅仅只是本人学习以后的心得体会。所以中间看起来会有很大跳跃,建议先反复试验官方手册中搭建主从环境直至熟练掌握

搭建双主复制与主从复制并没有太多区别,差别仅仅是两台机器都开启二进制日志,并分别执行change master to语句

以下是配置文件上双主与主从不同的地方,增加在[mysqld]节点下(全部都是可选,不是必须值)

[mysqld]
slave-skip-errors=all
log-slave-updates  
sync_binlog=1
slave-skip-errors=all表示忽略所有错误。注意:这一块我没有深入研究,反正大体意思就是发生错误不影响复制的继续,但不知道忽略的是来自于主库的错误,还是主库数据插入从库导致从库发生的错误,或者是从库自己产生的错误,也不知道忽略以后,err日志是否会记录这些错误

log-slave-updates  添加这个参数,可以让从库和主库的二进制日志一致。如果未添加,则来自于主库的数据,是不会记录到从库的二进制日志的,这个不利于崩溃后的数据恢复。使用mysqlbinlog可以解析并查看log,如mysqlbinlog mysql-bin.000001 > bin-log.log。自己试试最容易理解这个参数的意思。

sync_binlog=1 大概是多少次事务以后强制刷新内存中的日志到硬盘,默认是0,不强制刷新,要是对丢一点数据无所谓,保持0挺好,因为这个选项对性能有影响。

另外如果两个主库都负责写入工作,那么还要分别配置以下选项,让自增主键的起点不同,这样防止同步的时候发生自增主键冲突的情况。不过我这里的环境虽然是双主,但是始终只有一个写,应该不会产生这个问题。

auto_increment_offset=1
auto_increment_increment=2
auto_increment_offset=2
auto_increment_increment=2





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章