共计 1442 个字符,预计需要花费 4 分钟才能阅读完成。
MySQL Replication 概述
集群的主要类型?
高可用集群(High Available Cluster,HA)
高可用集群是指通过特殊的软件把独立的服务器连接起来,组成一个能够提供故障切换(Fail Over)功能的集群
如何衡量高可用?
99.53% 7 天 常规系统
99.98% 8 小时 可用系统
99.99% 52.6 分钟 高可用系统
99.999% 5.3 分钟 抗故障系统
99.9999% 32 秒 容错系统
MySQL 常用的集群架构
MySQL Replication
MySQL Cluster
MySQL Group Replication(MGR)5.7.17
MariaDB Galera Cluster
Keepalived|HeartBeat||Lvs,Haproxy 等技术构建高可用集群
什么是 MySQL Replication?
1、Replication 可以实现将数据从一台数据库服务器(master)复制到一台到多台数据库服务器上(slave)
2、默认情况下,属于异步复制,所以无需维持长连接
复制拓扑:
MySQL Replication 的原理
简单来说,master 将数据库的改变写入二进制日志,slave 同步这些二进制日志,并根据二进制日志进行数据重演操作,实现数据异步同步
1. 在主库上把数据更改(DDL DML DCL)记录到二进制日志(Binary Log)中。
2. 备库 I / O 线程将主库上的日志复制到自己的中继日志(Relay Log)中。
3. 备库 SQL 线程读取中继日志中的事件,将其重放到备库数据库之上。
MySQL Replication 的架构
master —> slave (双机热备)
默认情况下,master 接收读写请求,slave 只接收读请求以减轻 master 的压力
复制的过程:
1、slave 端的 IO 线程连上 master 端,请求
2、master 端返回给 slave 端,bin log 文件名和位置信息
3、IO 线程把 master 端的 bin log 内容依次写到 slave 端 relay bin log(中继日志)里,并把 master 端的 bin-log 文件名和位置记录到 master.info 里
4、slave 端的 sql 线程,检测到 relay bin log 中内容更新,就会解析 relay log 里更新的内容,并执行这些操作
M–S 双机热备实验 > 点我
master —> slave1 —> slave2 (级联架构)
优点:进一步分担读写力
缺点:slave1 出现故障,后面的所有级联 slave 服务器都会同步失败
M–S–S 级联架构实验 > 点我
master —> (slave1 slave2) (并联架构)
/----> slave1
master (并联架构)
\----> slave2
优点:解决上面的 slave1 的单点故障,同时也分担读压力
缺点:间接增加 master 的压力(传输二进制日志压力)
master1 <——> master2 (互为主从)
优点:从命名来看,两台 master 好像都能接受读、写请求,但实际上,往往运作的过程中,同一时刻只有其中一台 master 会接受写请求,另外一台接受读请求
示例:create table aaa;
m:s:bin-log --------> io(relay-bin-log)
sql create table aaa;
把主上的二进制日志 (bin-log) 的内容传到从上的一个新的日志叫 relay-bin-log
从上的 IO 线程 负责传输
从上的 SQL 线程 负责从服务器解析日志
若是双 master 架构,则两边都得开启 binlog 和 relarylog 中继日志