当前位置: 首页 > news >正文

MySQL入门篇-MySQL 8.0 延迟复制

备注:测试数据库版本为MySQL 8.0

这个blog我们来聊聊MySQL 延迟复制

概述

MySQL的复制一般都很快,虽然有时候因为 网络原因、大事务等原因造成延迟,但是这个无法人为控制。
生产中可能会存在主库误操作,导致数据被删除了,Oracle有flashback技术,MySQL官方目前没有退出对应的flashback技术。
此时,我们可以通过设置延迟复制,设置从库比主库慢半个小时,这个时候就可以从从库进行数据恢复到主库了。

MySQL支持延迟复制,以便从库故意执行比主库晚至少在指定时间间隔的事务。在MySQL 8.0中,延迟复制的方法取决于两个时间戳:immediate_commit_timestamp和original_commit_timestamp。如果复制拓扑中的所有服务器都运行MySQL 8.0.1或更高版本,则使用这些时间戳测量延迟复制。如果从库未使用这些时间戳,则执行MySQL 5.7的延迟复制。

复制延迟默认为0秒。使用CHANGE MASTER TO MASTER_DELAY = N语句将延迟设置为N秒。从主库接收的事务比主库上的提交至少晚N秒才在从库上执行。每个事务发生延迟(不是以前MySQL版本中的事件),实际延迟仅强制在gtid_log_event或anonymous_gtid_log_event事件上。二进制日志中的每个GTID事务始终都以Gtid_log_event开头,匿名事务没有分配GTID,MySQL确保日志中的每个匿名事务都以Anonymous_gtid_log_event开头。对于事务中的其它事件,不会对它们施加任何等待时间,而是立即执行。注意,START SLAVE和STOP SLAVE立即生效并忽略任何延迟,RESET SLAVE将延迟重置为0。

延迟复制测试

环境要求

服务器类别IP
主库192.168.10.102
从库192.168.10.103
mysql> show slave status\G;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.10.102Master_User: repllMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000019Read_Master_Log_Pos: 5280Relay_Log_File: hadoop103-relay-bin.000003Relay_Log_Pos: 1316Relay_Master_Log_File: mysql-bin.000019Slave_IO_Running: Yes Slave_SQL_Running: Yes

 此时已经搭建了异步复制的主从

开启延迟复制

从库

stop slave sql_thread;
CHANGE MASTER TO MASTER_DELAY = 3000;
start slave sql_thread;

主库

create table t6 as select * from dept;
select * from t6;
mysql>  create table t6 as select * from t4; 
Query OK, 1 row affected (0.02 sec)
Records: 1  Duplicates: 0  Warnings: 0mysql> 
mysql> select * from t6;
+--------+------------+----------+
| deptno | dname      | loc      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     34 | faddsf     | fadsf    |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+
5 rows in set (0.00 sec)

从库

mysql> select remaining_delay from performance_schema.replication_applier_status;
+-----------------+
| remaining_delay |
+-----------------+
|            300 |
+-----------------+
1 row in set (0.01 sec)
mysql> select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2020-07-29 11:00:44 |
+---------------------+
1 row in set (0.00 sec)mysql> select * from t6;
ERROR 1146 (42S02): Table 'test.t6' doesn't exist
mysql> 
mysql>  select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2020-07-29 11:03:30 |
+---------------------+
1 row in set (0.00 sec)mysql> select * from t6;
ERROR 1146 (42S02): Table 'test.t6' doesn't exist
mysql> 
mysql> select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2020-07-29 11:05:29 |
+---------------------+
1 row in set (0.00 sec)mysql> select * from t6;
+------+------+
| id   | name |
+------+------+
|    1 | aaa  |
+------+------+
1 row in set (0.00 sec)
mysql> select remaining_delay from performance_schema.replication_applier_status;
+-----------------+
| remaining_delay |
+-----------------+
|            NULL |
+-----------------+
1 row in set (0.01 sec)

监控延迟复制

在MySQL 8之前的老版本中,监控复制的延迟(滞后)最常用的方法之一是依赖于show slave status输出中的seconds_behind_master字段。但是,当使用比传统主从复制更复杂的复制拓扑,例如组复制时,此度量标准不再适用。MySQL 8中添加的immediate_commit_timestamp和original_commit_timestamp可提供有关复制延迟的更精细的信息。监控支持这些时间戳的复制延迟的推荐方法是使用以下performance_schema模式中的表。

replication_connection_status:与主服务器连接的当前状态,提供有关连接线程排队到中继日志中的最后和当前事务的信息。
replication_applier_status_by_coordinator:协调器线程的当前状态,仅在使用多线程复制时显示该信息,提供有关协调器线程缓冲到工作队列的最后一个事务的信息,以及当前正在缓冲的事务。
replication_applier_status_by_worker:应用从主服务器接收事务的线程的当前状态,提供有关应用程序线程或使用多线程复制时每个工作线程应用的事务信息。
使用这些表,可以监控相应线程处理的最后一个事务以及该线程当前正在处理的事务的信息,包括:

事务的GTID。
从库中继日志中检索的事务的original_commit_timestamp和immediate_commit_timestamp。
线程开始处理事务的时间。
对于上次处理的事务,线程完成处理它的时间。
除Performance Schema表之外,show slave status的输出还有三个字段与延迟复制有关:

SQL_Delay:非负整数,表示使用CHANGE MASTER TO MASTER_DELAY = N配置的复制延迟,以秒为单位。与performance_schema.replication_applier_configuration.desired_delay值相同。
SQL_Remaining_Delay:当Slave_SQL_Running_State等待主执行事件后的MASTER_DELAY秒时,该字段包含一个整数,表示延迟剩余的秒数。在它他时候,此字段为NULL。与performance_schema.replication_applier_status.remaining_delay值相同。
Slave_SQL_Running_State:一个字符串,指示SQL线程的状态(类似于Slave_IO_State)。该值与SHOW PROCESSLIST显示的SQL线程的State值相同。
当从库的SQL线程在执行事件之前等待延迟时,SHOW PROCESSLIST将其状态值显示为:Waiting until MASTER_DELAY seconds after master executed event。
参考

MySQL 8.0 延迟复制_只是甲的博客-CSDN博客

相关文章:

MySQL入门篇-MySQL 8.0 延迟复制

备注:测试数据库版本为MySQL 8.0 这个blog我们来聊聊MySQL 延迟复制 概述 MySQL的复制一般都很快,虽然有时候因为 网络原因、大事务等原因造成延迟,但是这个无法人为控制。 生产中可能会存在主库误操作,导致数据被删除了,Oracl…...

FPGA时序约束与分析 --- 实例教程(1)

注意: 时序约束辅助工具或者相关的TCL命令,都必须在 open synthesis design / open implemention design 后才能有效运行。 1、时序约束辅助工具 2、查看相关时序信息 3、一般的时序约束顺序 1、 时序约束辅助工具(1)时序约束编辑…...

go深拷贝和浅拷贝

1、深拷贝(Deep Copy)拷贝的是数据本身,创造一个样的新对象,新创建的对象与原对象不共享内存,新创建的对象在内存中开辟一个新的内存地址,新对象值修改时不会影响原对象值。既然内存地址不同,释…...

linux网络系统层面的配置、管理及操作命令汇总

前几篇文章一一介绍了LINUX进程管理控制命令,关于linux系统中的软件包管理内容等,作为一名运维工程师,前两天刚处理了一起linux网络层面的情况,那么今天这篇文章就以linux网络层面为主题吧。当说到linux网络系统层面,e…...

R数据分析:孟德尔随机化中介的原理和实操

中介本身就是回归,基本上我看到的很多的调查性研究中在中介分析的方法部分都不会去提混杂,都是默认一个三角形画好,中介关系就算过去了,这里面默认的逻辑就是前两步回归中的混杂是一样的,计算中介效应的时候就自动消掉…...

【C++】 类和对象 (下)

文章目录📕再谈构造函数1. 构造函数体赋值2. 初始化列表3. explicit 关键字📕static 成员1. 概念2. static 成员变量3. static 成员函数📕 友元1. 友元函数2. 友元类📕内部类📕编译器优化📕再谈构造函数 1…...

asp获取毫秒时间戳的方法 asp获取13位时间戳的方案

一、背景。时间戳就是计算当前与"1970-01-01 08:00:00"的时间差,在asp中通常是使用Datediff函数来计算两个日期差,代码:timestamp Datediff("s", "1970-01-01 08:00:00",now)返回结果:1675951060可…...

Python基础篇(十五)-- Python程序接入MySQL数据库

程序运行时,数据都在内存中,程序终止时,需要将数据保存到磁盘上。为了便于程序保存和读取,并能直接通过条件快速查询到指定数据,数据库(Database)应运而生,本篇主要学习使用Python操作数据库,在…...

程序员不得不知道的 API 接口常识

说实话,我非常希望自己能早点看到本篇文章,大学那个时候懵懵懂懂,跟着网上的免费教程做了一个购物商城就屁颠屁颠往简历上写。 至今我仍清晰地记得,那个电商教程是怎么定义接口的: 管它是增加、修改、删除、带参查询…...

【项目精选】基于Java的银行排号系统的设计与实现

银行排号系统是为解决一些服务业营业大厅排队问题而设计的,它能够有效地提高工作人员的工作效率,也能够使顾客合理的安排等待时间,让顾客感到服务的公平公正。论文首先讨论了排号系统的背景、意义、应用现状以及研究与开发现状。本文在对C/S架…...

前端 基于 vue-simple-uploader 实现大文件断点续传和分片上传

文章目录一、前言二、后端部分新建Maven 项目后端pom.xml配置文件 application.ymlHttpStatus.javaAjaxResult.javaCommonConstant.javaWebConfig.javaCheckChunkVO.javaBackChunk.javaBackFileList.javaBackChunkMapper.javaBackFileListMapper.javaBackFileListMapper.xmlBac…...

解决报错: ERR! code 128npm ERR! An unknown git error occurred

在github下载的项目运行时,进行npm install安装依赖时,出现如下错误:npm ERR! code 128npm ERR! An unknown git error occurrednpm ERR! command git --no-replace-objects ls-remote ssh://gitgithub.com/nhn/raphael.gitnpm ERR! gitgithu…...

聊城高新技术企业认定7项需要注意的问题 山东同邦科技分享

聊城高新技术企业认定7项需要注意的问题 山东同邦科技分享 山东省高新技术企业认定办公室发布《关于开展2021年度本市高新技术企业认定管理工作的通知》,高企认定中有哪些问题需要注意呢?下面我们一起来看一下。 一、知识产权 知识产权数量和质量双达…...

菊乐食品更新IPO招股书:收入依赖单一地区,规模不及认养一头牛

近日,四川菊乐食品股份有限公司(下称“菊乐食品”)预披露更新招股书,准备在深圳证券交易所主板上市,保荐机构为中信建投证券。据贝多财经了解,这已经是菊乐食品第四次冲刺A股上市,此前三次均未能…...

Elasticsearch安装IK分词器、配置自定义分词词库

一、分词简介 在Elasticsearch中,假设搜索条件是“华为手机平板电脑”,要求是只要满足了其中任意一个词语组合的数据都要查询出来。借助 Elasticseach 的文本分析功能可以轻松将搜索条件进行分词处理,再结合倒排索引实现快速检索。Elasticse…...

Linux嵌入式开发——shell脚本

文章目录Linux嵌入式开发——shell脚本一、shell脚本基本原则二、shell脚本语法2.1、编写shell脚本2.2、交互式shell脚本2.3、shell脚本的数值计算2.4、test命令&&运算符||运算符2.5、中括号[]判断符2.6、默认变量三、shell脚本条件判断if thenif then elsecase四、she…...

CV【5】:Layer normalization

系列文章目录 Normalization 系列方法(一):CV【4】:Batch normalization Normalization 系列方法(二):CV【5】:Layer normalization 文章目录系列文章目录前言2. Layer normalizati…...

跳跃游戏 II 解析

题目描述给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处:0 < j < nums[i] i j < n返回到达 nums[n - 1] 的…...

易基因|猪肠道组织的表观基因组功能注释增强对复杂性状和人类疾病的生物学解释:Nature子刊

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。2021年10月6日&#xff0c;《Nat Commun》杂志发表了题为“Pig genome functional annotation enhances the biological interpretation of complex traits and human disease”的研究论文…...

01- NumPy 数据库 (机器学习)

numpy 数据库重点: numpy的主要数据格式: ndarray 列表转化为ndarray格式: np.array() np.save(x_arr, x) # 使用save可以存一个 ndarray np.savetxt(arr.csv, arr, delimiter ,) # 存储为 txt 文件 np.array([1, 2, 5, 8, 19], dtype float32) # 转换…...

RapperBot僵尸网络最新进化:删除恶意软件后仍能访问主机

自 2022 年 6 月中旬以来&#xff0c;研究人员一直在跟踪一个快速发展的 IoT 僵尸网络 RapperBot。该僵尸网络大量借鉴了 Mirai 的源代码&#xff0c;新的样本增加了持久化的功能&#xff0c;保证即使在设备重新启动或者删除恶意软件后&#xff0c;攻击者仍然可以通过 SSH 继续…...

拦截器interceptor总结

拦截器一. 概念拦截器和AOP的区别&#xff1a;拦截器和过滤器的区别&#xff1a;二. 入门案例2.1 定义拦截器bean2.2 定义配置类2.3 执行流程2.4 简化配置类到SpringMvcConfig中一. 概念 引入&#xff1a; 消息从浏览器发送到后端&#xff0c;请求会先到达Tocmat服务器&#x…...

轻松实现微信小程序上传多文件/图片到腾讯云对象存储COS(免费额度)

概述 对象存储&#xff08;Cloud Object Storage&#xff0c;COS&#xff09;是腾讯云提供的一种存储海量文件的分布式存储服务&#xff0c;用户可通过网络随时存储和查看数据。个人账户首次开通COS可以免费领取50GB 标准存储容量包6个月&#xff08;180天&#xff09;的额度。…...

Golang中defer和return的执行顺序 + 相关测试题(面试常考)

参考文章&#xff1a; 【Golang】defer陷阱和执行原理 GO语言defer和return 的执行顺序 深入理解Golang defer机制&#xff0c;直通面试 面试富途的时候&#xff0c;遇到了1.2的这个进阶问题&#xff0c;没回答出来。这种题简直是 噩梦\color{purple}{噩梦}噩梦&#xff0c;…...

谁说菜鸟不会数据分析,不用Python,不用代码也轻松搞定

作为一个菜鸟&#xff0c;你可能觉得数据分析就是做表格的&#xff0c;或者觉得搞个报表很简单。实际上&#xff0c;当前有规模的公司任何一个岗位如果没有数据分析的思维和能力&#xff0c;都会被淘汰&#xff0c;数据驱动分析是解决日常问题的重点方式。很多时候&#xff0c;…...

php mysql保健品购物商城系统

目 录 1 绪论 1 1.1 开发背景 1 1.2 研究的目的和意义 1 1.3 研究现状 2 2 开发技术介绍 2 2.1 B/S体系结构 2 2.2 PHP技术 3 2.3 MYSQL数据库 4 2.4 Apache 服务器 5 2.5 WAMP 5 2.6 系统对软硬件要求 6 …...

Vue3电商项目实战-首页模块6【22-首页主体-补充-vue动画、23-首页主体-面板骨架效果、4-首页主体-组件数据懒加载、25-首页主体-热门品牌】

文章目录22-首页主体-补充-vue动画23-首页主体-面板骨架效果24-首页主体-组件数据懒加载25-首页主体-热门品牌22-首页主体-补充-vue动画 目标&#xff1a; 知道vue中如何使用动画&#xff0c;知道Transition组件使用。 当vue中&#xff0c;显示隐藏&#xff0c;创建移除&#x…...

linux 使用

一、操作系统命令 1、版本命令&#xff1a;lsb_release -a 2、内核命令&#xff1a;cat /proc/version 二、debian与CentOS区别 debian德班和CentOS是Linux里两个著名的版本。两者的包管理方式不同。 debian安装软件是用apt(apt-get install)&#xff0c;而CentOS是用yum de…...

基于遗传算法的微电网调度(风、光、蓄电池、微型燃气轮机)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…...

方向导数与梯度下降

文章目录方向角与方向余弦方向角方向余弦方向导数定义性质梯度下降梯度下降法&#xff08;Gradient descent&#xff09;是一个一阶最优化算法&#xff0c;通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值&#xff0c;必须向函数上当前点对应梯度&#xff08…...

soho在哪里做网站/产品网络营销策划

JavaScript&#xff0c;DOM操作表格 学习要点&#xff1a; 1.操作表格 DOM在操作生成HTML上&#xff0c;还是比较简明的。不过&#xff0c;由于浏览器总是存在兼容和陷阱&#xff0c;导致最终的操作就不是那么简单方便了。本章主要了解一下DOM操作表格和样式的一些知识。 一&am…...

可以做图的网站/网络公关

什么是WebPack&#xff1f; 征战图 看图就知道了&#xff0c;如图左边的是我们平常编码的一些文件&#xff0c;他们种类繁多复杂&#xff0c; 有css,less,cjs,js,sass,还有各种各样的图片资源。webpack需要做的 就是将我们编码的原始文件资源&#xff0c;通过特定的手段将其…...

房山网站建设服务/seo优化常识

说明&#xff1a; 本文原创作者『Allen5G』 首发于微信公众号『Allen5G』&#xff0c;同时也更新在我的&#xff1a;CSDN&#xff0c;简书 标签&#xff1a;嵌入式软件&#xff0c;算法&#xff0c;通信 上拉电路 --- 应用于总线或者开漏模式&#xff0c;提供稳定电压 码字不…...

哪个平台免费招人最快/搜索引擎优化的方式

参考链接: 11周精通python计划&#xff08;完结&#xff09; 总结: # 演示类的使用 # 1.类属性, 类对象的属性, 由所有实例对象所共享,通过(类名.属性)或者(实例名.属性)来访问 # 2.实例属性, 实例对象的属性, 由各实例对象所独享,通过(实例名.属性)来访问代码实验展示: # 演…...

上海高中生做课题的网站/百度股市行情上证指数

TouchSlide滚动切换效果时 nextCell设定自己的class名后无效&#xff0c;需要用".next"或不设置 转载于:https://www.cnblogs.com/lichuntian/p/4820053.html...

做彩票网站代理/淘宝大数据查询平台

如何玩转iPhone手机&#xff1f;最近手机连接投影仪被大家关注&#xff0c;那么苹果手机是如何连接投影仪的呢&#xff1f;新出的iPhone8可以连接吗&#xff1f;跟随小编一起来了解一下详细的步骤教程吧。苹果手机与投影仪连接的方法教程&#xff08;步骤&#xff09; 1、第一次…...