• MySQL架构备份


    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中继日志

  • 相关阅读:
    Annotation
    GIT的作用以及Versioncontrol为什么要用GIT
    Http协议
    人工智能的可怕与不可怕
    Makefile简易教程
    Node.js 学习笔记之一:学习规划 & 认知 Node.js
    《大教堂与集市》的启示 — 软件工程的另一种选择
    Git简易教程
    谈谈买书与读书
    clang编译器简介
  • 原文地址:https://www.cnblogs.com/yanjieli/p/9829527.html
Copyright © 2020-2023  润新知