MySQL集群概述
集群的主要类型
- 高可用集群(High Available Cluster,HA Cluster)
- 高可用集群是指通过特殊的软件把独立的服务器连接起来,组成一个能够提供故障切换(Fail Over)功能的集群
如何衡量高可用
可用性级别(指标) |
年度宕机时间 |
描述 |
叫法 |
99% |
3.65天/年 |
基本可用系统 |
2个9 |
99.9% |
8.76小时/年 |
可用系统 |
3个9 |
99.99% |
52.6分钟/年 |
高可用系统 |
4个9 |
99.999% |
5.3分钟/年 |
抗故障系统 |
5个9 |
99.9999% |
32秒/年 |
容错系统 |
6个9 |
计算方法:
1年 = 365天 = 8760小时
99% = 8760 * 1% = 8760 * 0.01 = 87.6小时=3.65天
99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小时
99.99 = 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟
99.999 = 8760 * 0.00001 = 0.0876小时 = 0.0876 * 60 = 5.26分钟
常用的集群架构
- MySQL Replication
- MySQL Cluster
- MySQL Group Replication (MGR) 5.7.17 多主一从
- MariaDB Galera Cluster
- MHA|Keepalived|HeartBeat|Lvs,Haproxy等技术构建高可用集群
MySQL复制简介
什么是MySQL复制
- Replication可以实现将数据从一台数据库服务器(master)复制到一台到多台数据库服务器(slave)
- 默认情况下,属于异步复制,所以无需维持长连接
MySQL复制原理(重点)
简单来说,master将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据重演操作**,实现数据异步同步。
master:主
slave:从
当主从同步配置完毕后:
- slave端的IO线程发送请求给master端的binlog dump线程
- master端binlog dump线程==获取二进制日志==信息(==文件名和位置信息==)发送给slave端的IO线程
- salve端IO线程获取到的内容==依次==写到slave端relay log(中继日志)里,并把master端的bin-log文件名和位置记录到master.info里
- salve端的SQL线程,检测到relay log中内容更新,就会解析relay log里更新的内容,并==执行这些操作==,从而达到和master数据一致
扩展:relay log中继日志
作用:记录从(slave)服务器接收来自主(master)服务器的二进制日志.
场景:用于主从复制
master主服务器将自己的二进制日志发送给slave从服务器,slave先保存在自己的中继日志中,然后再执行自己本地的relay log里的sql达到数据库更改和master保持一致。
如何开启?
默认中继日志没有开启,可以通过修改配置文件完成开启,如下:
# vim my.cnf
[mysqld]
#指定二进制日志存放位置及文件名
relay-log=/mysql_3306/data/relaylog
MySQL复制架构
双机热备(AB复制)
默认情况下,master接受读写请求,slave只接受读请求以减轻master的压力。
级联复制
优点:进一步分担读压力
缺点:slave1 出现故障,后面的所有级联slave服务器都会同步失败
并联复制(一主多从)
优点:解决上面的slave1的单点故障,同时也分担读压力
缺点:间接增加master的压力(传输二进制日志压力)
双主复制(了解)
特点:
从命名来看,两台master好像都能接受读、写请求,但实际上,往往运作的过程中,同一时刻只有其中一台master会接受写请求,另外一台接受读请求。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/77361.html