高性能mysql学习笔记--高可用与应用层优化

十二:高可用mysql
理解可用性最好的方法就是研究它的反面-宕机时间
12.3 如何实现高可用性
1,避免宕机,2,尽快快速恢复
3.1提升平均失效时间

3.2 降低平均恢复时间
4,避免单点失效
4.1 共享存储或磁盘复制
共享存储能够为数据库服务和存储解耦合。通常使用的是san,使用共享存储时,服务器能够正常挂载文件系统并进行操作,如果服务器挂了,备用服务器可以挂载相同的文件系统。
优点:可以避免除存储外的其他任何组建失效所引起的数据丢失,并为非存储组建组建冗余提供可能。
共享储存本身也有风险,如果mysql奔溃等故障导致数据文件损坏,可能会导致备用服务器无法恢复,所以一般使用共享储存策略时选择innodb存储或其他稳定的acid存储引擎。
4.2 mysql同步复制
使用同步复制时,主库的事务只有在至少一个备库上提交后才能认为其执行完成,这实现了两个目标:当服务器崩溃时没有提交事务会丢失,并且至少有一个备库拥有实时的数据副本,
4.3 基于复制的冗余
总结:就是通过复制来做备份,一个蹦了还有另外一个顶上去
12.5 故障转移和故障恢复
5.1提升备库或切换角色
5.2 虚拟ip地址或ip接管
5.3 中间件解决方案
可以使用代理,端口转发,网络地址转换或者硬件负载均衡来实现故障转移和故障恢复。
高性能mysql学习笔记--高可用与应用层优化_第1张图片
这种缺点是在一个数据中心的apache服务器和另外一个数据中心的mysql服务器之间的延迟比较大,为了缓和这个问题,可以把web服务器设置为重定向模式,这样通信都呗重定向到防止活跃mysql服务器的数据中心,还可以使用http代理来实现这一目标。
5.4 在应用中处理故障转移

十四:应用层优化
14.1,常见问题
哪些东西消耗着cpu,磁盘,网络以及内存
14.2,web服务器问题
降低服务器负载方法:
使用nginx和lighttpd
使用缓存代理服务器
对动态和静态资源都设置过期策略
不要让apache填鸭式地服务客户端
打开gzip压缩
不要为用于长距离连接的apache配置启用keep-alive选项。
2.1 寻找最优并发度
每个web服务器都有一个最佳并发度-进程请求尽可能块,并且不超过系统负载的最优并发连接数。
14.3 缓存
高性能mysql学习笔记--高可用与应用层优化_第2张图片
3.2 应用层缓存
本地缓存,本地共享内存缓存,分布式内存缓存,磁盘上的缓存
3.3 缓存控制策略
time to live 存活时间
显式失败
读时失败
3.4 缓存对象分层
分层缓存对象对检索,失效和内存利用都有帮助,相对于只缓存对象,也可以缓存对象的id,对象的id组等通常需要一起检索的数据。
3.5 预生成内容
高性能mysql学习笔记--高可用与应用层优化_第3张图片
高性能mysql学习笔记--高可用与应用层优化_第4张图片
3.6 作为基础组建的缓存
3.7 使用memcacheed

你可能感兴趣的:(mysql)