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

MySQL的延迟复制

目录

1 MySQL 延迟复制介绍

1.1 延迟复制语法:

1.2 延迟复制可用于多种用途:

1.3 延迟复制的有关的参数

1.4 延迟复制的操作

2 MySQL 延迟复制 实操

2.1 实验环境

2.2 对 SLAVE --MySQL-3 进行延迟复制操作

2.3 停止相关进程的原因

2.4 实验测试

2.5 动图演示全过程


1 MySQL 延迟复制介绍

MySQL 5.7 支持延迟复制,使得 副本服务器故意滞后于源服务器至少一个 指定的时间量。默认延迟为 0 秒。使用 CHANGE MASTER TO 选项设置延迟 到 N 秒:MASTER_DELAY

1.1 延迟复制语法:

CHANGE MASTER TO MASTER_DELAY = N;

1.2 延迟复制可用于多种用途:

  • 为了防止用户在MASTER头上出现错误。DBA 可以滚动 将延迟的SLAVE返回到灾难发生前的时间。

  • 检查数据库很久以前的样子,没有必须重新加载备份。例如,如果延迟为 1 周,DBA 需要查看数据库的外观 在最近几天的发展之前,耽误了可以检查SLAVE。

1.3 延迟复制的有关的参数

SHOW SLAVE STATUS 有三个字段 提供有关延迟的信息:

  • SQL_Delay:一个非负整数,表示 副本必须滞后于源的秒数。

  • SQL_Remaining_Delay:此字段包含一个整数,表示 延迟的剩余秒数。

  • Slave_SQL_Running_State:一个字符串 指示 SQL 线程的状态(类似于 )。该值等于 将 SQL 线程的值为 由 SHOW PROCESSLIST显示。Slave_IO_StateState

1.4 延迟复制的操作

延迟复制在哪台机子上做呢?是由哪个线程来完成

  • 延迟复制时用来控制sql线程的,和i/o线程无关
  • 这个延迟复制不是i/o线程过段时间来复制,i/o是正常工作的
  • 是日志已经保存在slave端了,那个sql要等多久进行回放

2 MySQL 延迟复制 实操

2.1 实验环境

MASTER/SLAVE服务器名称          IP地址server-id
MASTERMySQL-01192.168.239.210 10        
SLAVE-1MySQL-02192.168.239.22020
SLAVE-2MySQL-03192.168.239.23030

2.2 对 SLAVE --MySQL-3 进行延迟复制操作

mysql> show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.239.210Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000007Read_Master_Log_Pos: 194Relay_Log_File: mysql-3-relay-bin.000007Relay_Log_Pos: 367Relay_Master_Log_File: mysql-bin.000007Slave_IO_Running: YesSlave_SQL_Running: YesExec_Master_Log_Pos: 194Relay_Log_Space: 742Master_Server_Id: 10Master_UUID: cd27e5ae-5fe3-11ef-a5d8-000c29a51779Master_Info_File: /data/mysql/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULL

# 停止 SQL_thread 进程,停止本地回放
mysql> stop slave sql_thread;
Query OK, 0 rows affected (0.00 sec)# 改变 本地回放的延迟时间
mysql> change master to master_delay=60;
Query OK, 0 rows affected (0.00 sec)# 打开本地回放 sql_thread 进程
mysql> start slave sql_thread;
Query OK, 0 rows affected (0.00 sec)

2.3 停止相关进程的原因

为什么要停止本地 sql_thread 进程而不是停止IO_thread呢?

这是由于停止sql_thread 只是 停止的是本地的回放,而不是停止IO_thread的复制。即使停掉本地的回放,IO_thread 进程仍然会对MASTER 的bin-log 进行接收并写入本地的 Relay log,而不是停止写入本地 Relay log 。等待sql_thread进程再次启动进程就会去读取本地Realy log 并 将本地的 Relay log 回放到数据库中。这样子做 能在保证成功修改SLAVE参数的同时也能保持MASTER与SLAVE的数据一致性。

2.4 实验测试

MASTER 上操作

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ZUCONG             |
| mysql              |
| performance_schema |
| shuyan             |
| sys                |
+--------------------+
6 rows in set (0.03 sec)mysql> use shuyan;
mysql> show tables;
+------------------+
| Tables_in_shuyan |
+------------------+
| wawa             |
+------------------+
mysql> select * from wawa;
+----+------+
| id | name |
+----+------+
|  1 | wawa |
+----+------+
mysql> insert into wawa(id,name) values(2,'shuyan');

SLAVE 上 查看  

MySQL-02 并没有做延迟复制

mysql> select * from shuyan.wawa;
+----+--------+
| id | name   |
+----+--------+
|  1 | wawa   |
|  2 | shuyan |
+----+--------+

MySQL-03 做了60秒的延迟复制

mysql> select * from shuyan.wawa;
+----+------+
| id | name |
+----+------+
|  1 | wawa |
+----+------+

2.5 动图演示全过程

接下来是一个动图的演示 修改 master_delay 参数并增加master 数据 观察slave延迟复制的过程

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL存储过程详细讲解和常见问题及性能优化
  • QT opencv(显示图片和视频)
  • 抢单源码修正版,带教程,自动抓取订单,十几种语言可自动切换
  • [数据集][目标检测]电力场景输电线防震锤检测数据集VOC+YOLO格式2721张2类别
  • 在AES加密中,设主密钥为“2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C”,试计算迭代第1轮使用的轮密钥。
  • 合合信息文档解析Coze插件发布,PDF转Markdown功能便捷集成
  • 云计算实训32——roles基本用法、使用剧本安装nginx、使用roles实现lnmp
  • AI入门指南(四):分类问题、回归问题、监督、半监督、无监督学习是什么?
  • 【3】AT32F437 OpenHarmony轻量系统第一个程序:点灯
  • C#与其它编程语言有什么区别,以及相关优势有哪些
  • Java 事务管理:确保数据一致性
  • FPGA开发——DS18B20读取温度并且在数码管上显示
  • 【达梦数据库】锁超时的处理方法-错误码[-6407]
  • 微软edge浏览器开发工具全解析
  • MYSQL -NATURAL JOIN ,exist 函数
  • JS 中的深拷贝与浅拷贝
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • CSS相对定位
  • download使用浅析
  • ES6核心特性
  • fetch 从初识到应用
  • golang中接口赋值与方法集
  • Gradle 5.0 正式版发布
  • JAVA 学习IO流
  • Markdown 语法简单说明
  • nginx 配置多 域名 + 多 https
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Python - 闭包Closure
  • Vue官网教程学习过程中值得记录的一些事情
  • Vue全家桶实现一个Web App
  • 阿里云前端周刊 - 第 26 期
  • 大主子表关联的性能优化方法
  • 订阅Forge Viewer所有的事件
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 计算机常识 - 收藏集 - 掘金
  • 经典排序算法及其 Java 实现
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 前端存储 - localStorage
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 再次简单明了总结flex布局,一看就懂...
  • k8s使用glusterfs实现动态持久化存储
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​linux启动进程的方式
  • (C语言)逆序输出字符串
  • (Matlab)使用竞争神经网络实现数据聚类
  • (笔记)M1使用hombrew安装qemu
  • (多级缓存)多级缓存
  • (多级缓存)缓存同步
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (六)DockerCompose安装与配置
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转载)Linux 多线程条件变量同步
  • .NET Micro Framework 4.2 beta 源码探析