#不停库不锁表在线主从配置
1.数据量大的话还是建议使用工具例如xtrabackup,mysqldump比较适合操作10G以下的数据备份复制。
2.做业务之前考虑清楚具体要实现什么需求,不要盲目使用,选择适合自己的方案
3.Seconds_Behind_Master: 从属服务器“落后”多少秒 利用好主从服务器延迟
#主从不同步问题解决
1.重视报错日志:根据错误代码找到具体错误原因再针对分析,做到提前预防或者缺陷补充
2.show slave status \G; 关注error行相关信息
#主主架构实现
关于 auto_increment
MySQL auto_increment_increment,auto_increment_offset 用法
1.多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题。
2.主主实现思路:
1)两台mysql都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用;
2)masterA是masterB的主库,masterB又是masterA的主库,它们互为主从;
3)两台主库之间做高可用,可以采用keepalived等方案(使用VIP对外提供服务);
4)所有提供服务的从服务器与masterB进行主从同步(双主多从);
5)建议采用高可用策略的时候,masterA或masterB均不因宕机恢复后而抢占VIP(非抢占模式);
mysql-proxy 实现读写分离
1.优化从缓存入手:innodb_flush_log_at_trx_commit
2.进行分库分表处理,这样减少数据量的复制同步操作
mysql-proxy类似的产品有:mycat 基于阿里的开源软件cobar,官网 www.mycat.io
mycat实现分库分表
Mycat
1.Mycat主从分离只是在读的时候做了处理,写入数据的时候,只会写入到writehostStep By Step 搭建 MySql MHA 集群,需要通过mycat的主从复制将数据复制到readhost,这个问题当时候我纠结了好久,数据写入writehost后,readhost一直没有数据,以为是自己配置的问题,后面才发现Mycat就没有实现主从复制的功能,毕竟数据库本身自带的这个功能才是最高效稳定的。
2.分库分表对于复杂的多表联查sql可能支持的不好。
atlas
出自于360,不维护不更新了
Mycat和atlas都是通过代理实现的
mysql环形主从
mysql架构演变
1.第1阶段考虑主从,冷备份
2.第2阶段web和db分开,搭建memcached服务作为缓存
3.第3阶段,mysql主从,一主多从。读写分离
4.第4阶段,把mysql原来的一主多从变为一主一从,然后从作为其他从的主,而前面的主只负责网站业务的写入,而后面的从不负责网站任何业务,只负责给其他从同步bin-log。
5.第5阶段,分库分表。
MHA架构
转载于:https://my.oschina.net/u/3964535/blog/2989114