MySQL学习笔记25

news/2024/11/29 23:47:10/

逻辑备份

物理备份

在线热备:

真实案例:

数据库架构是一主两从,但是两台从数据库和主数据不同步。但是每天会全库备份主服务器上的数据到从服务器上。需要解决主从不同步的问题。

案例背后的核心技术:

1、熟悉MySQL数据库常见的主从架构;

2、理解MySQL主从架构的实现原理

3、掌握MySQL主从架构的搭建;(两种搭建方式)

任务场景:

随着业务不断增长,公司对数据的安全性会越来越重视,由于常规的备份不能够实时记录下数据库的所有状态,为了能够保障数据库的实时备份冗余希望将现有单机数据库变成双机热备。

热备状态。如果其中的一台服务器出现故障,另外一台服务器能马上进行业务的切换,保证业务的正常运行。

任务要求:

备份数据库。

搭建双机热备数据库架构M-S。

课程目标:

了解什么是MySQL的replication (集群机制)复制架构AB

理解MySQL的Replication的架构原理。 复制架构

掌握MySQL的基本复制架构的搭建(M-S重点)高效稳定的数据库架构。

了解和掌握基于GTIDs的复制特点和搭建。5.6和5.7版本才引入的新的特性。

MySQL集群:

1、集群的主要类型:

高可用集群( High Available Cluster,HA)

高可用集群是指通过特殊的软件把多个独立的服务器连接在一起,组成一个能够提供故障切换的Fail Over 功能的集群。

Web集群

数据库集群

衡量指标:

高可用系统:99.99%,全年的宕机率不能超过52.6分钟。运维工程师,我们搭建一个高可用的架构还是很容易得。大多数是可以做到的。

之前SAS系统基本上可以定位为8.76小时/年。

常用的集群架构:

MySQL replication(MySQL主从架构)

MySQL Cluster (官方)

MySQL Group Replication (MGR 组复制)   5.7.17    多主一从
MariaDB Galera Cluster (也支持集群形式)
MHA |Keepalived|HeartBeat|Lvs,Haproxy等技术构建高可用集群

MySQL的复制:

Replication 可以实现将数据从一台数据库服务器(master)复制到一台或者多台数据库服务器(slave)。

默认情况下,属于异步复制,所以无需维持特长连接。

MySQL的复制原理(重点)

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

master: 主

slave: 从

Slave启动两个线程,一个是IO Thread,文件的读写操作,读到的文件是Relaylog 中继日志中。另外一个是SQL Thread 线程,读取中继日志内容,执行SQL语句操作数据库。

当主从同步配置完毕后:

  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

在配置文件中,开启中继日志的方法。

slave服务器中开始中继日志。

MySQL复制架构:

1)双机热备(AB复制):主从复制

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

slave只相当于备份服务器,数据只是从主服务器读取过来的, 如果往slave服务器写入数据,那么将破坏这个组织架构,因为两端的数据不一致了。

2)级联复制:

对master主服务器执行增、删、该操作,写入到Binlog二进制日志中。

slave1从主master服务器中读取二进制日志,写到Relaylog中,然后通过SQL Thread来读取中继日志,执行SQL语句,执行的结果也写到Slave1的二进制日志中。

slave2然后从slave1读取Binlog二进制日志。

优点:进一步分担读的压力。

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

并联复制:一主多从的架构

优点:解决上面的slave1的单点故障,同时也分担读压力,单台服务器都能读。
缺点:间接增加master的压力(传输二进制日志压力)文件读写的压力。IO Thead。

双主复制:

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


http://www.ppmy.cn/news/1132391.html

相关文章

SoloX:Android和iOS性能数据的实时采集工具

SoloX:Android和iOS性能数据的实时采集工具 github地址:https://github.com/smart-test-ti/SoloX 最新版本:V2.7.6 一、SoloX简介 SoloX是开源的Android/iOS性能数据的实时采集工具,目前主要功能特点: 无需ROOT/越狱…

区块链实验室(26) - 区块链期刊Blockchain: Research and Applications

Elsevier出版物“Blockchain: Research and Applications”是浙江大学编审的期刊。该期刊自2020年创刊,并出版第1卷。每年出版4期,最新期是第4卷第3期(2023年9月)。 目前没有官方的IF,Elsevier的引用因子Citescore是6.4。 虽然是新刊&#xf…

osg实现鼠标框选

目录 1. 需求的提出 2. 具体实现 2.1. 禁止场景跟随鼠标转动 2.2. 矩形框前置绘制 3. 附加说明 3.1. 颜色设置说明 3.2.矩形框显示和隐藏的另一种实现 1. 需求的提出 有时需要在屏幕通过按住键盘上的某个键如Ctrl键且按住鼠标左键,拖出一个矩形,实现框…

数据结构之美:如何优化搜索和排序算法

文章目录 搜索算法的优化1. 二分搜索2. 哈希表 排序算法的优化1. 快速排序2. 归并排序 总结 🎉欢迎来到数据结构学习专栏~数据结构之美:如何优化搜索和排序算法 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博客&#x…

中位数C++题解

T3 中位数 题目描述: 在玩正整数。他手里有一个串,每次会实施三种操作中的一种。 把没有加入的最小的正整数,从左边加入串中。把没有加入的最小的正整数,从右边加入串中。询问此时串的最中间的数,也就是假设当前有 个…

golang 对不同结构体中数据进行相互转换的几种常用方法

golang 对不同结构体中数据进行相互转换的几种常用方法 常用的不同结构体中的数据相互转换的方法1. 利用json包的marshal和unmarshal2. 使用第三方包 copier 进行数据转换3.对结构不同的结构体进行转换 常用的不同结构体中的数据相互转换的方法 1. 利用json包的marshal和unmar…

idea没有maven工具栏解决方法

背景:接手的一些旧项目,有pom文件,但是用idea打开的时候,没有认为是maven文件,所以没有maven工具栏,不能进行重新加载pom文件中的依赖。 解决方法:选中pom.xml文件,右键 选择添加为…

Python3数据科学包系列(一):数据分析实战

认识下数据科学中数据处理基础包: (1)NumPy 俗话说: 要学会跑需先学会走 (1)数据分析基础认知:NumPy是,Numerical Python的简称,它是目前Python数值计算中最为重要的基础包,大多数计算包提供了基于NumPy的科学函数功能;将NumPy的数值对象作为数据交换的通用语 NumPy通常用于处…