如何解决mysql主从复制带来的数据延迟问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决mysql主从复制带来的数据延迟问题相关的知识,希望对你有一定的参考价值。

参考技术A 从DB2转到mysql,做过线上环境的配置,不过是先配置好,然后再把数据导入,前期测试好就行了,具体主主还是主备,还是主主备要看你们的需求了,网上都有配置过程。

AWS RDS MySQL 主从同步延迟总结

参考技术A 最近居然被 MySQL 主从同步的问题坑了, 简直丢尽了老司机的脸, 总结一下.

问题很简单, 一个业务由于 MySQL 主从同步延迟导致读取的数据有问题. 问题解决了, 但如何在 AWS RDS 中获取 MySQL 的延迟信息呢? 非 AWS RDS 的传统 MySQL 中, 可以直接连到 server 通过 SHOW SLAVE STATUS 获取延迟信息.

RDS 呢?

AWS 中大多数(我也不确定是不是所有服务)都接入了 Cloudwatch. Cloudwatch 的好处就是可以作为一个中间层抽象, 将不同系统的数据抽象成一个模型, 统一通过 Cloudwatch API 访问. 就拿主从延迟来说, MySQL/MariaDB 和 PostgeSQL 的计算方法显然是不一样的:

因此, 只要通过 Cloudwatch API 获取 ReplicaLag 这个 metric 的值就可以判断主从同步延迟, 不管是哪种 DB

看上去挺简单的 API, 还是需要"进城手册", 避免挠头:

由于 Cloudwatch 支持的最细颗粒度的 metric 是1分钟, 因此仅仅获取前一分钟的数据可能会有 Cloudwatch 数据还未抓取到的问题.
建议是获取前一段时间(比如10分钟)的数据, 确保前10分钟的 ReplicaLag 都为0(或者小于一个可以接受的值), 则认为现在的状态是满足数据需求的.

MySQL 主从同步从入行就知道是需要重点关注的, 结果还是忽略了一下就掉坑里了. AWS Cloudwatch 也支持根据 ReplicaLag 的值直接告警的, 建议一定要设置一个.

以上是关于如何解决mysql主从复制带来的数据延迟问题的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库运维之主从复制延迟问题排查

MySQL 如何解决主从分离带来的过期读问题

mysql主从复制延迟

mysql主从复制延迟问题的相关知识与解决方案

如何解决主从复制延迟?

AWS RDS MySQL 主从同步延迟总结