热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

awsmysql副本滞后_使用AmazonRDSforMySQL排查高副本滞后问题

示例输出B显示主日志文件是mysql-bin-changelog.066552。这也是主状态的文件参数,意味着IO_THREAD与主数据库实例保持一致。在副本输出中&

示例输出 B 显示主日志文件是 mysql-bin-changelog.066552。这也是主状态的文件参数,意味着IO_THREAD 与主数据库实例保持一致。在副本输出中,SQL 线程正在执行 Relay_Master_Log_File: mysql-bin-changelog.066530。这意味着 SQL_THREAD 滞后 12 个二进制日志。

通常,IO_THREAD 不会导致较高的复制延迟,因为 IO_THREAD 仅从主数据库实例读取二进制日志。但是,网络连接和网络延迟会影响服务器之间的读取速度。副本 IO_THREAD 可能会由于高带宽的使用而变慢。

如果副本 SQL_THREAD 是复制延迟的产生原因,那么这些延迟可能是由于以下原因导致的:

主数据库实例上长时间运行的查询

数据库实例类大小或存储空间不足

在主数据库实例上执行的并行查询

同步到副本数据库实例上的磁盘的二进制日志

副本上的 Binlog_format 设置为 ROW

副本创建滞后

主实例上长时间运行的查询

在主数据库实例上长时间运行的查询需要花费相同的时间在副本数据库实例上运行,这会增加 seconds_behind_master。例如,如果您在主数据库实例上启动了更改,该更改的运行时间为一个小时,那么在副本开始运行更改时,滞后时间将为一小时。由于更改可能还需要一个小时才能在副本上完成,因此在更改完成时,总滞后大约为两小时。这种延迟在预料之中,但您可以通过监控主实例上的缓慢查询日志来尽可能减少这种滞后。您还可以通过识别长时间运行的语句来减少滞后。然后,将长时间运行的语句分解为多个较小的语句或事务。有关更多信息,请参阅访问 MySQL 慢速查询日志和常规日志。

数据库实例类大小或存储空间不足

如果副本数据库实例类或存储配置小于主实例,则副本将受到限制,无法与主实例上的更改保持同步。确保副本的数据库实例类型与主数据库实例相同或级别更高。为保证复制有效运行,每个只读副本需要与源数据库实例相同数量的计算和存储资源。有关更多信息,请参阅数据库实例类。

在主数据库实例上执行的并行查询

如果您在主实例上执行并行查询,则它们将以串行顺序在副本上提交。这是因为默认情况下,MySQL 复制是单线程 (SQL_THREAD)。如果并行执行对源数据库实例的大量写入,则应使用单个 SQL_THREAD 序列化对只读副本的写入。这可能会导致源数据库实例和只读副本之间的滞后。

多线程(并行)复制适用于 MySQL 5.6、MySQL 5.7 及更高版本。有关多线程复制的更多信息,请参阅 二进制日志记录选项和变量的MySQL 文档部分。

多线程复制会导致复制中出现差距。例如,在跳过复制错误时,因为很难识别跳过了哪些事务,所以多线程复制并非最佳实践。这可能会导致主数据库实例和副本数据库实例之间的数据一致性存在差距。

同步到副本数据库实例上的磁盘的二进制日志

如果在副本上启用自动备份,则可能需要执行额外操作才能将二进制日志同步到副本上的磁盘。sync_binlog 参数的默认值设置为 1。如果将此值更改为0,则您将禁用 MySQL 服务器将二进制日志同步到磁盘的功能。操作系统 (OS) 偶尔会将二进制日志刷入磁盘,而非直接将日志记录到磁盘。

如果禁用二进制日志同步,这可以减少在每次提交时将二进制日志同步到磁盘所需的性能开销。然而,如果出现电源故障或操作系统崩溃,则某些提交可能无法同步到二进制日志。这可能会影响时间点恢复 (PITR) 功能。有关更多信息,请参阅 sync_binlog的 MySQL 文档部分。

副本上的 Binlog_format 设置为 ROW

如果将副本上的 binlog_format 设置为 ROW,并且执行更新的表缺少主键,则默认情况下,slave-rows-search-algorithms = TABLE_SCAN,INDEX_SCAN运行。此参数还会在副本上执行全表扫描。在这种情况下,短期解决方案是将搜索算法更改为 INDEX_SCAN,HASH_SCAN,以减少全表扫描的开销。对于永久解决方案,请向每个表添加显式主键。

有关 slave-rows-search-algorithms 参数的更多信息,请参阅slave-rows-search-algorithms的 MySQL 文档部分。

副本创建滞后

Amazon RDS 通过生成主实例的数据库快照来创建 MySQL 主实例的只读副本。然后,Amazon RDS 会恢复快照以创建新的数据库实例(副本)并在两者之间建立复制关系。

Amazon RDS 需要花时间来创建新的只读副本。建立复制关系后,会出现相当于创建主实例备份所需时长的滞后。要尽可能减少此滞后,请在调用副本创建之前创建手动备份。然后,副本创建过程生成的快照属于增量备份,速度更快。

从快照恢复只读副本时,副本不会等待所有数据从 Amazon Simple Storage Service (Amazon S3) 全部传输到与副本数据库实例关联的 Amazon Elastic Block Store (Amazon EBS) 卷。副本数据库实例可用于执行数据库操作,并且通过现有 Amazon EBS 快照创建的新卷会在后台加载(延迟加载)。

对于 Amazon RDS for MySQL 副本(基于 EBS 的卷),最初副本滞后可能会增加,因为加载效应可能会影响复制性能。有关更多信息,请参阅初始化 Amazon EBS 卷。

考虑启用 InnoDB 缓存预热功能,该功能可通过保存主数据库实例缓存池的当前状态,然后在还原的只读副本上重新加载缓存池来提高性能。有关 InnoDB 缓存预热的更多信息,请参阅 Amazon RDS 上的 MySQL。



推荐阅读
  • vue使用
    关键词: ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 本文介绍了解决MySQL数据库Error Code: 1030错误的方法和原因。通过检查文件权限和磁盘空间,注释掉innodb_force_recovery参数等步骤,可以解决无法插入数据和修改文件的问题。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 解决php错误信息不显示在浏览器上的方法
    本文介绍了解决php错误信息不显示在浏览器上的方法。作者发现php中的各种错误信息并不显示在浏览器上,而是需要在日志文件中查看。为了解决这个问题,作者提供了一种解决方式:通过修改php.ini文件中的display_errors参数为On,并重启服务。这样就可以在浏览器上直接显示php错误信息了。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
author-avatar
ET
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有