【linux】之MySQL主从复制架构

MySQL主从复制架构

一、MySQL集群概述

1、集群的主要类型

  • 高可用集群(High Available Cluster,HA Cluster)
  • 高可用集群是指通过特殊的软件把独立的服务器连接起来,组成一个能够提供故障切换(Fail Over)功能的集群

2、如何衡量高可用

可用性级别(指标) 年度宕机时间 描述 叫法
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分钟

3、常用的集群架构

  • MySQL Replication
  • MySQL Cluster
  • MySQL Group Replication (MGR) 5.7.17 多主一从
  • MariaDB Galera Cluster
  • MHA|Keepalived|HeartBeat|Lvs,Haproxy等技术构建高可用集群

二、MySQL复制简介

1、什么是MySQL复制

  • Replication可以实现将数据从一台数据库服务器(master)复制到一台到多台数据库服务器(slave)
  • 默认情况下,属于异步复制,所以无需维持长连接

2、 MySQL复制原理(重点)

简单来说,master将数据库的改变写入**二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据重演操作**,实现数据异步同步。

master:主

slave:从

在这里插入图片描述

详细描述:

当主从同步配置完毕后:

  1. slave端的IO线程发送请求给master端的binlog dump线程
  2. master端binlog dump线程获取二进制日志信息(文件名和位置信息)发送给slave端的IO线程
  3. salve端IO线程获取到的内容依次写到slave端relay log(中继日志)里,并把master端的bin-log文件名和位置记录到master.info里
  4. 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

3、MySQL复制架构

㈠ 双机热备(AB复制)

在这里插入图片描述

默认情况下,master接受读写请求,slave只接受读请求以减轻master的压力。

㈡ 级联复制

在这里插入图片描述

优点:进一步分担读压力

缺点:slave1 出现故障,后面的所有级联slave服务器都会同步失败

㈢ 并联复制(一主多从)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BsJhspX6-1670576605001)(media/image-20200831102645559.png)]

优点:解决上面的slave1的单点故障,同时也分担读压力

缺点:间接增加master的压力(传输二进制日志压力)

㈣ 双主复制(了解)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a2Ufm1ID-1670576605002)(media/image-20200831102830372.png)]

特点:

从命名来看,两台master好像都能接受读、写请求,但实际上,往往运作的过程中,同一时刻只有其中一台master会接受写请求,另外一台接受读请求。

三、MySQL主从复制的搭建(AB复制)

1、传统AB复制架构(M-S)

说明:在配置MySQL主从架构时,必须保证数据库的版本高度一致,统一版本为5.7.31

2、环境规划

编号 主机名称 主机IP地址 角色信息
1 master.itcast.cn 10.1.1.10 MASTER主服务器
2 slave.itcast.cn 10.1.1.100 SLAVE从服务器

3、安装前准备工作

第一步:克隆两台全新的数据库服务器,MASTER/SLAVE

第二步:首先启动MASTER,然后启动SLAVE,更改主机名称

Master:

# hostnamectl set-hostname master.itcast.cn
# su

Slave:

# hostnamectl set-hostname slave.itcast.cn
# su

第三步:更改静态IP配置,把Master和Slave都配置与规划一致,然后关闭NetworkManager

Master:

# vim /etc/sysconfig/network-scripts/ifcfg-ens33
...
IPADDR=10.1.1.10
...

Slave:

# vim /etc/sysconfig/network-scripts/ifcfg-ens33
...
IPADDR=10.1.1.10
...

Master/Slave:

# systemctl stop NetworkManager
# systemctl disable NetworkManager

设置完成后,重启网络,然后使用MX连接Master与Slave。

第四步:由于两台机器处于集群架构,需要互相连接。绑定主机名称与IP地址到/etc/hosts

Master/Slave:

# vim /etc/hosts
10.1.1.10 master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值