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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 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 
相关文章
|
12月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
10月前
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
542 0
|
9月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
719 10
|
10月前
|
SQL 存储 缓存
MySQL 如何高效可靠处理持久化数据
本文详细解析了 MySQL 的 SQL 执行流程、crash-safe 机制及性能优化策略。内容涵盖连接器、分析器、优化器、执行器与存储引擎的工作原理,深入探讨 redolog 与 binlog 的两阶段提交机制,并分析日志策略、组提交、脏页刷盘等关键性能优化手段,帮助提升数据库稳定性与执行效率。
279 0
|
存储 SQL 缓存
mysql数据引擎有哪些
MySQL 提供了多种存储引擎,每种引擎都有其独特的特点和适用场景。以下是一些常见的 MySQL 存储引擎及其特点:
317 0
|
8月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
540 158
|
8月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1427 152
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1035 156
|
8月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
584 156

推荐镜像

更多