模式
1.master---slave模式
master负责R/W,slave 从master复制binlog备份数据,主要解决读取瓶颈
2.master---master模式
主要针对master部分维护时停机问题,这样两个master互为master--slave
3.master--slave--slave模式
4.dualMaster -- 级联
MYSQL数据库常用架构解决方案
MMM架构
MHA架构
双主从备份
对比
|
类型 |
MMM |
MHA |
|
作用 |
检测master数据库健康状态 |
并在master出现问题时完成自动切换 |
|
出现故障时 |
1.备master切换为新的master 2.slave切换指向到新master |
1.找出最新的slave 2.将宕机的master的bin-log保存 3.将slave同步最新master的数据 4.将所有库同步宕机master的bin-log 5.将最新slave作为master 6.配置其他slave连接到新master |
|
优点 |
1.读写VIP的配置,读写请求都可以做到高可用 2.工具包相对完善,不需要额外开发脚本 3.完成故障转移后,可以继续对mysql集群监控 |
1.日志点的主从同步,也支持GTID的主从同步 2.无需单独的master备份 3.尝试从旧master中尽可能多保存和获取未同步的日志 |
|
缺点 |
1.社区不活跃 2.需要的机器和IP地址资源较多 3.原生不支持GTID的复制方式 |
1.自行开发VIP转移脚本 |
还有阿里的TMHA,一主一从。而MHA是一主两从
数据库利用第三方插件扩展
方案1:memcached只作为数据缓存,不需要修改mysq
所有数据都会写入MySQLMaster中,包括数据第一次写入时候的INSERT,同时也包括对已有数据的UPDATE和DELETE。不过,如果是对已经存在的数据,则需要在UPDATE或者DELETEMySQL中数据的同时,删除Memcached中的数据,以此保证整体数据的一致性。而所有的读请求首先会发往Memcached中,如果读取到数据则直接返回,如果没有读取到数据,则再到MySQLSlaves中读取数据,并将读取得到的数据写入到Memcached中进行Cache。
特点:比较适用于需要缓存对象类型少,而需要缓存的数据量又比较大的环境
方案2 :mysql通过自己编写的UDF控制memcached。
本文图片来自网络