MySQL主从架构之Slave数据滞后Master怎么办?教你一招制敌!

简介: MySQL主从架构之Slave数据滞后Master怎么办?教你一招制敌!

写在开篇,问题现象

❝

这个是说主从复制中由于某些原因从库的数据总是滞后于主库,这时候就需要我们手动定期的进行主从库的数据同步了,使得主从数据差距能够减到最小。常用的方法就是:在负载较低时暂时阻塞主数据库的更新,强制主从数据库更新同步。

❝

一般,通常,大部分来说,slave的数据滞后于master的主要原因是:slave因某些未知的原因没有连接上master,比如下面的情况,在slave服务器上查看复制的状态,发现Replica_IO_Running和Replica_SQL_Running两个线程都是NO,其实,只要有1个是NO,那么都是不正常的,因此要确保两个线程都是YES。

mysql> show replica status\G;
*************************** 1. row ***************************
             Replica_IO_State: Queueing source event to the relay log
                  Source_Host: 192.168.11.151
                  Source_User: syn_a
                  Source_Port: 3306
                Connect_Retry: 60
              Source_Log_File: mysql-bin.000030
          Read_Source_Log_Pos: 44702579
               Relay_Log_File: zbx-db02-relay-bin.000003
                Relay_Log_Pos: 25782831
        Relay_Source_Log_File: mysql-bin.000029
           Replica_IO_Running: NO
          Replica_SQL_Running: NO
❝

小小的温馨提示:不过还有一些不可预知的情况,就算Slave库的IO线程和SQL线程都是YES,说不定slave的数据也是滞后于master,那么不管什么原因导致slave的数据滞后于master,那么都可以通过手动定期的进行主从库的数据同步。


开始手动同步操作

  1. 在master上操作
# 1. 在master上锁表,阻止应用写入或更新数据
```shell
FLUSH TABLES WITH READ LOCK;
# 2. 查看master状态
查主库状态
mysql> show master status\G;
*************************** 1. row ***************************
             File: mysql-bin.000047
         Position: 27610714
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 9208096f-4731-11ec-a23e-005056210589:1-22,
92099aae-4731-11ec-a3da-00505629525b:1-820702
1 row in set (0.00 sec)
ERROR: 
No query specified
mysql>
❝

记住上面的这两个数值,File的二进制文件名字mysql-bin.000047,Position的数值27610714,这个数值是从库复制的目的坐标。

  1. 在slave上操作 在从库上,执行内置的MASTER_POS_WAIT函数
mysql> select MASTER_POS_WAIT('mysql-bin.000047','27610714');
+------------------------------------------------+
| MASTER_POS_WAIT('mysql-bin.000047','27610714') |
+------------------------------------------------+
|                                              0 |
+------------------------------------------------+
1 row in set, 1 warning (0.32 sec)
❝

通过select语句执行MASTER_POS_WAIT函数后,会进入阻塞状态,直到从库达到指定的日志文件和偏移量后,正常的话就返回0,否则返回-1,如果返回-1,则表示超时退出。

  1. 最后再回到master上操作 在主库上执行解锁操作,使其能够进行读写。
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.01 sec)

写在最后

❝

如果按笔者的方法不能让您一招制敌,那请你关注我,我免费帮你修。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
canal 关系型数据库 MySQL
Canal是怎么伪装成 MySQL slave?
Canal是怎么伪装成 MySQL slave?
10517 41
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
SQL 存储 缓存
MySQL的架构与SQL语句执行过程
MySQL架构分为Server层和存储引擎层,具有高度灵活性和可扩展性。Server层包括连接器、查询缓存(MySQL 8.0已移除)、分析器、优化器和执行器,负责处理SQL语句;存储引擎层负责数据的存储和读取,常见引擎有InnoDB、MyISAM和Memory。SQL执行过程涉及连接、解析、优化、执行和结果返回等步骤,本文详细讲解了一条SQL语句的完整执行过程。
784 3
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
1173 4
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。

推荐镜像

更多