拓扑园

  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
  • 技术研究-密保
    • FG-MySQL
    • FG-Docker/K8S
    • FG-PostgreSQL
    • FG-ORACLE_BBED
    • FG-ORACLE
    • FG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 图灵小队
    • MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • PG安装配置于RHEL/9X系列-运行环境最优配置
    • 自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • 图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • 图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • 图灵小队-Oracle常用性能查询SQL语句(文章)
    • 图灵小队-Oracle数据库上线前检查(文章)
    • 图灵小队-Oracle常用SQL语句(文章)
    • 图灵小队-Oracle脚本合集(文章)
    • 图灵小队-Oracle技巧记录(文章)
    • LLL的Oracle培训(目录)
    • LLL的docker培训(目录)
    • 标准化文档系列(目录)
    • Oracle/MySQl等面试题
  • Oracle
    • Oracle
    • ADG
    • RAC
    • ASM
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
    • OGG
    • RMAN
  • 云计算
    • 云计算
    • docker
    • kubernetes
  • Linux
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 数据中心
    • EBS数据文件库容
    • VMware虚拟化
    • mysql
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
Oracle数据库恢复专家团队:TEL:18562510581(微信同号);QQ:284833194;QQ群:496333360
天高任鸟飞
  1. 首页
  2. 技术学习系列
  3. FG-MySQL
  4. 正文

6.2.1—企业级MySQL高可用复制与分布式集群架构—MySQL主从复制项目实施与维护01(MR)—MySQL主从复制相关技术概念讲解01

2023年3月28日 118点热度 0人点赞 0条评论

目录

  • 一、MySQL复制技术的介绍
    • 1、主从复制:
    • 2、主从复制的应用场景
    • 3、主从复制架构图
    • 4、重做日志与二进制日志( redo log与binlog )区别
  • 二、MySQL主从复制是如何工作的
    • 1、主从流程
    • 2、主服务器
    • 3、从服务器
    • 4、主从复制架构图

6.2.1—企业级MySQL高可用复制与分布式集群架构—MySQL主从复制项目实施与维护01(MR)—MySQL主从复制相关技术概念讲解01

1.MySQL复制技术基础之基本原理
2.MySQL复制技术基础之常用主从拓扑
3.MySQL复制技术基础之同步方式(异步/半同步/无损同步/全同步)
4.MySQL复制技术基础之同步模式(传统/GDIT)
5.MySQL复制技术基础之常用配置参数详解
6.MySQL真正的生产高可用复制环境1-传统异步复制项目
7.MySQL真正的生产高可用复制环境2-传统无损同步项目
8.MySQL真正的生产高可用复制环境3-基于GTID异步复制项目
9.MySQL真正的生产高可用复制环境4基于GTID无损同步项目
10.MySQL真正的生产高可用复制环境5~增加/删除/扩容复制节点
11.MySQL真正的生产高可用复制环境6-主多 从安全复制项目
12.MySQL真正的生产高可用复制环境7级联主从复制项目
13.MySQL真正的生产高可用复制环境8-多主- - -从多源复制项目

14.MySQL主从复制项目之主从切换(正常切换/宕机切换)
15.MySQL主从复制项目之在线开启/关闭GTID
16.MySQL主从复制项目之SSL安全配置
17.MySQL主从复制项目之主从同步数据校验

 

一、MySQL复制技术的介绍

1、主从复制:

是MySQL数据库的一种容灾备份方案,是MySQL自带的功能,无需借助第3三方工具,MySQL的主从复制并不是数据库磁盘上的文件直接拷贝,而是通过逻辑的binlog日志
复制到要同步的服务器本地,然后由本地的线程读取日志里面的SQL语句重新应用到MySQL数据库中。

2、主从复制的应用场景

(1)应用场景

数据备份与容灾、读写分离、业务拆分

(2)使用公司

适合于初创公司,小型电商/互联网公司,一些小型云环境。

(3)切换技术

手工切换,时间: >30分钟(含重做主从关系,数据校验等)

自动切换,时间:按分钟计算。

3、主从复制架构图

4、重做日志与二进制日志( redo log与binlog )区别

(1)日志分类

--二进制日志:

记录MySQL数据库相关的日志记录,包括InnoDB , MyISAM等其它存储弓|擎的日志。

--重做日志:

只记录InnoDB存储弓|擎本身的事务日志。

(2)写入内容

--二进制日志:

记录事务的具体操作内容,是逻辑日志。

--重做日志:

记录每个页的更改的物理情况。

(3)写入时间

--二进制日志:

只在事务(提交后)进行写入,只写磁盘-次,不论这时事务量多大。

--重做日志:

在事务进行中( 提交前和提交时) , 就不断有重做日志条目(redo entry)写入重做日志文件。

二、MySQL主从复制是如何工作的

1、主从流程

复制一共分3个步骤:

(1)master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件, binary log events)

master记录二进制日志,在每个事务更新数据完成之前, master在二日志记录这些改变。MySQL将事务串行的写入二进制日志,在事件写入二进制日志完成后,master通知存储引擎提交事务。

(2)slave将master的binary log events拷贝到它的中继日志(relay log);

首先, slave开始一个工作线程: I/O线程。
I/O线程在master上打开一个普通的连接,然后开始binlog dump process。
Binlog dump process从master的二进制日志中读取事件(接受的单位是event) ,如果已经跟上master ,它会睡眠并等待master产生新的事件。

I/O线程将这些事件写入中继日志。

(3)slave重做中继日志中的事件,将日志操作还原并生成数据。

SQL线程从中继日志读取事件,并重放其中的事件(回放的单位也是event而更新slave的数据,使其与master中的数据一致。 只要该线程与/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。

在master中也有一个工作线程:

和其它MySQL的连接-样, slave在master中打开一个连接也会使得master开始一个线程。

2、主服务器

(1)在MySQL 5.7版本中,prepare log部分的日志也是组提交的

prepare log和commit log写redo file ( iblogfile1、 iblogfile2 )

binlog写binlig.00000X文件

(2)binglog,redo log先写哪个

redo log在事物执行期间,连续写入;

binlog在commit之后只写一次。

(3)InnoDB commit的3个阶段:

1阶段. wite prepare log -写入Xid
2阶段. write binlog
3阶段. write commit log

(4)MySQL Dump Thread把binlog推送到远程的Slave服务器

每一个Slave,就会对应有一 个dump线程

(5)同时,在MySQL主机上还有一个Master Thread在每隔1秒从redo log buffer中写入redo file

3、从服务器

(1)IO Thread负责接收Dump线程发送过来的binlog , 并且记录到本地的relay log

接受的单位是event

(2)SQL Thread/Coordinator Thread协调线程负责将relay log日志回放到从机

回放的单位也是event
有了多线程以后, coordinator线程负责任务指派, work thread负责回放

(3)在MySQL 5.6中的多线程回放是基于库的,单个库还是单线程
(4)在MySQL5.7中的多线程是在主.上如何并行执行的,从机上也是如何并行回放的
(5)master-info.log存放了接受到的binlog的位置( event的位置 )
(6)relay-info.log存放了回放到的relay log的位置( event的位置)

4、主从复制架构图

5、

 

 

 

 

标签: 暂无
最后更新:2023年4月3日

admin

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号