MySQL学习笔记25

逻辑备份

物理备份

在线热备:

真实案例:

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

案例背后的核心技术:

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.mzph.cn/news/91297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机视觉|人脸建模】PanoHead:360度几何感知的3D全头合成

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:PanoHead: Geometry-Aware 3D Full-Head Synthesis in 360 ∘ ^{\circ} ∘ 链接:[2303.13071] PanoHead: Geometry-Aware 3D Full-Head Synthesis in 360 ∘ ^{\circ} ∘ (arx…

大数据Doris(三):Doris编译部署篇

文章目录 Doris编译部署篇 一、Doris编译

学信息系统项目管理师第4版系列13_立项管理

1. 项目立项管理包括 1.1. 项目建议与立项申请 1.2. 项目可行性研究 1.2.1. 初步可行性研究 1.2.2. 详细可行性研究 1.2.2.1. 不可缺少 1.2.2.1.1. 【高21上选21】 1.2.3. 可以依据项目的规模和繁简程度合二为一 1.3. 项目评估与决策 2. 立项申请 2.1. 项目建议书 2…

Lua语法之简单变量

--nil有点类似空null a nil print(a) --type函数得到类型 返回值是string print(type(a)) print("*****")--number是数值 int float这些 --lua的变量可以随便赋值 自动识别类型 a 1 print(a) print(type(a)) print("*****")--siting可以用单引号双引号 a…

华为云HECS云服务器docker环境下安装nginx

前提:有一台华为云服务器。 华为云HECS云服务器,安装docker环境,查看如下文章。 华为云HECS安装docker-CSDN博客 一、拉取镜像 下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest ) docker pull nginx查看镜像 dock…

实体行业数字化转型怎么做?线上线下相结合的新零售体系怎么做?

如今,实体行业想要取得收入增长,只做线下业务或者只做线上业务,在当前的市场环境中是难以长久生存的,因此一定要线上线下相结合,将流量运作与线下转化进行充分结合,才能更好地发挥实体优势,带来…

Linux学习记录——삼십일 socket编程---TCP套接字

文章目录 TCP套接字简单通信1、服务端1、基本框架2、获取连接 2、客户端3、多进程4、多线程5、线程池6、简单的日志系统7、守护进程8、其它 TCP套接字简单通信 本篇gitee 学习完udp套接字通信后,再来看TCP套接字。 四个文件tcp_server.hpp, tcp_serve…

什么是Local Storage和Session Storage?它们之间有什么区别?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是 Local Storage 和 Session Storage?Local Storage(本地存储)Session Storage(会话存储) ⭐ 区别⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的…

程序员的浪漫:如何用java代码画❤️表白呢?

有位小伙伴说,看到一个帖子,一个计算机博士接亲时,要求现场写代码,5分钟做出一个爱心。我们就看看如何用java设计出心形的代码。 我找了一下,发现方法竟然很多,我们就来见识一下,最后我们看一下…

TouchGFX之字体缓存

使用二进制字体需要将整个字体加载到存储器。 在某些情况下,如果字体很大,如大字号中文字体,则这样做可能不可取。 字体缓存使应用能够从外部存储器只能加载显示字符串所需的字母。 这意味着整个字体无需保存到在可寻址闪存或RAM上&#xff…

Java自学(三)面向对象编程

目录 什么是面向对象 举例 this关键字和构造器 实体类 电影小案例 什么是面向对象 我们日常生活中谈到一个事物,总会描述它的性质与行为,这个事物也就是 ”对象”。比如一个学生对象,他的属性有姓名、学号、成绩......他的行为有上课、…

装饰器模式详解和实现(设计模式 二)

装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地将对象添加到现有对象中,以提供额外的功能,同时又不影响其他对象。 实现示例 1.定义一个接口或抽象类,表示被装饰对象的公共接口 //抽…

关于 自定义的RabbitMQ的RabbitMessageContainer注解-实现原理

概述 RabbitMessageContainer注解 的主要作用就是 替换掉Configuration配置类中的各种Bean配置; 采用注解的方式可以让我们 固化配置,降低代码编写复杂度、减少配置错误情况的发生,提升编码调试的效率、提高业务的可用性。 为什么说“降低…

QT编译报错stdlib.h:No such file or directory

如图,需要将第19行,INCLUDEPATH /usr/include 注释掉 原因分析: 在Ubuntu的CSTDLIB中,使用的是#include_next下“stdlib.h” ,自行增加/usr/include 把include_next的顺序打乱,造成编译错误。但是在cento…

Ubuntu 20.04编译GPMP2过程记录

前言 GPMP2是董靖博士等人在16-17年提出的结合GTSAM因子图框架与Gaussian Processes完成motion planning的一项工作。前身源于Barfoot教授的课题组提出的STEAM(Simultaneous Trajectory Estimation and Mapping)问题及其相关工作。在提出董靖博士提出GPMP2后,borgl…

同步、异步

何为同步、异步? 同步任务(synchronous) 同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;同步任务进栈顺序:先进后出,后进先出&…

网页采集工具-免费的网页采集工具

在当今数字化时代,网页采集已经成为了众多领域的必备工具。无论是市场研究、竞争情报、学术研究还是内容创作,网页采集工具都扮演着不可或缺的角色。对于许多用户来说,寻找一个高效、免费且易于使用的网页采集工具太不容易了。 147SEO工具的强…

Go-Ldap-Admin | openLDAP 同步钉钉、企业微信、飞书组织架构实践和部分小坑

目录 一、Docker-compose快速拉起demo测试环境 二、原生部署流程 安装MySQL:5.7数据库 安装openLDAP 修改域名,新增con.ldif 创建一个组织 安装OpenResty 下载后端 下载前端 部署后端 部署前端 三、管理动态字段 钉钉 企业微信 飞书 四、…

基于微信小程序的刷题考试系统设计与实现(适用于各类考试类、答题类程序)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

JavaScript Web APIs第二天笔记

Web APIs - 第2天 学会通过为DOM注册事件来实现可交互的网页特效。 能够判断函数运行的环境并确字 this 所指代的对象理解事件的作用,知道应用事件的 3 个步骤 学习会为 DOM 注册事件,实现简单可交互的网页特交。 事件 事件是编程语言中的术语&#xff…