#不停库不锁表在线主从配置html
使用 Xtrabackup 在线对MySQL作主从复制mysql
1.数据量大的话仍是建议使用工具例如xtrabackup,mysqldump比较适合操做10G如下的数据备份复制。
2.作业务以前考虑清楚具体要实现什么需求,不要盲目使用,选择适合本身的方案
3.Seconds_Behind_Master: 从属服务器“落后”多少秒 利用好主从服务器延迟linux
#主从不一样步问题解决web
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(非抢占模式);
1.优化从缓存入手:innodb_flush_log_at_trx_commit
2.进行分库分表处理,这样减小数据量的复制同步操做
mysql-proxy相似的产品有:mycat 基于阿里的开源软件cobar,官网 www.mycat.io
Mycat
1.Mycat主从分离只是在读的时候作了处理,写入数据的时候,只会写入到writehostStep By Step 搭建 MySql MHA 集群,须要经过mycat的主从复制将数据复制到readhost,这个问题当时候我纠结了很久,数据写入writehost后,readhost一直没有数据,觉得是本身配置的问题,后面才发现Mycat就没有实现主从复制的功能,毕竟数据库自己自带的这个功能才是最高效稳定的。
2.分库分表对于复杂的多表联查sql可能支持的很差。
atlas
出自于360,不维护不更新了
Mycat和atlas都是经过代理实现的
mysql架构演变
1.第1阶段考虑主从,冷备份
2.第2阶段web和db分开,搭建memcached服务做为缓存
3.第3阶段,mysql主从,一主多从。读写分离
4.第4阶段,把mysql原来的一主多从变为一主一从,而后从做为其余从的主,而前面的主只负责网站业务的写入,然后面的从不负责网站任何业务,只负责给其余从同步bin-log。
5.第5阶段,分库分表。