• 高温“烤验”,品读这些自带凉意的避暑诗词 2019-09-14
  • 钱江潮评 让高质量发展插上人才的翅膀 2019-09-14
  • 如何制订企业发展计划 2019-09-12
  • APUS创始人李涛:我凭什么培养出全球发展最快的“独角兽” 2019-09-12
  • 地铁工地围挡要大变样了 下月实施围挡新标准——浙江在线 2019-09-10
  • 酒旅行走于法国葡萄酒香之路 品味美景与美酒美景酒香 2019-09-10
  • 父亲节当天 美国第一夫人跟特朗普唱了个反调 2019-09-09
  • 河北经济日报官方微信 2019-08-25
  • 商务部新闻发言人对美白宫6月18日声明发表谈话 2019-08-25
  • 网约车管理,“家规”之外有“行规” 2019-08-23
  • 南京:音乐嘉年华 嗨翻小长假 2019-08-23
  • 高清:世界杯小组赛B组摩洛哥对阵伊朗 两队球迷花样助阵 2019-08-20
  • 《中国国家地理》杂志社在拉萨林周县举行“黑颈鹤观察拍摄基地”授牌仪式文章中国国家地理网 2019-08-17
  • 3岁小孩骑童车绊倒老人算交通事故警察这样解释 2019-08-17
  • 组图:第96届全国糖酒会开幕 白酒馆“庄正大气”引人瞩目 2019-08-17
  • 您的位置:首页>>电脑软件

    慈善一尾中特平:UCloud高可用数据库UDB主从复制延时的解决

    发布时间:2019-04-04 14:46:30  来源:互联网    背景:

    白最准一尾中特平 www.thvwf.tw   MySQL主从复制的延时一直是业界困扰已久的问题。延时的出现会降低主从读写分离的价值,不利于数据实时性较高的业务使用MySQL。

      UDB是UCloud推出的云数据库服务,上线已达六年,运营了数以万计的UDB MySQL实例。除了提供高可用、高性能、便捷易用的产品特性,团队还平均每天帮助用户解决2-3起MySQL实例主从复制延时的问题。从大量实践中我们总结了主从复制延时的各种成因和解决方法,现分享于此。

      延时问题的重要性

      主从复制机制广泛应用在UDB的内部实现中:UDB创建的从库和主库就采用了“主从复制”的数据复制;另外,UDB的主打产品“UDB MySQL高可用实例”,也是采用2个数据库互为主从的“双主模式”来进行数据复制,而双主模式的核心就是主从复制机制。

      如果主从复制之间出现延时,就会影响主从数据的一致性。

      在高可用复制场景下,我们在UDB高可用容灾设计上考虑到,若出现主备数据不一致的场景,默认是不允许进行高可用容灾切换的。因为在主备数据不一致的情况下,此时发生容灾切换,且在新的主库写入了数据,那么从业务角度上,会产生意想不到的严重后果。

      复制延时问题,不仅在UDB高可用中会带来不良后果,在只读从库的场景下,若从库产生复制延时,也可能会对业务造成一定影响,比如在业务上表现为读写不一致——新增/修改数据查不到等现象。

      由此可见,主从复制的延时问题在数据库运营中需要特别关注。一般来说,DBA在库上执行’SHOW SLAVE STATUS’,并且观察

      ‘Seconds_Behind_Master’的值,就能够了解当前某个数据库和它的主库之间的数据复制延时。这个值是如此的重要,因此在UDB的监控界面上,我们将这个值单独抽取来,设计了“从库同步延时”监控项,以便于运维人员能够直接在控制台上观察。

      生产环境中延时问题的分析及解决

      我们将最常见的主从复制延时案例总结为几类,以下是相关案例的现象描述、原因分析和解决方法汇总。

      ◆ 案例一:主库DML请求频繁

      某些用户在业务高峰期间,特别是对于数据库主库有大量的写请求操作,即大量insert、delete、update等并发操作的情况下,会出现主从复制延时问题。

      现象描述

      我们通过观察主库的写操作的QPS的值,会看到主库的写操作的QPS值突然升高,伴随主从复制延时的上升,可以判断是由于主库DML请求频繁原因造成的。

      如上图,可以看出,在17:58分左右QPS突增,查看控制台上的写相关QPS,也有相应提升。而QPS突增的时间,对应的延时也在逐步上升,如下图所示。

      原因分析

      经过分析,我们认为这是由于主库大量的写请求操作,在短时间产生了大量的binlog。这些操作需要全部同步到从库,并且执行,因此产生了主从的数据复制延时。

      从深层次分析原因,是因为在业务高峰期间的主库写入数据是并发写入的,而从库SQL Thread为单线程回放binlog日志,很容易造成relaylog堆积,产生延时。

      解决思路

      如果是MySQL 5.7以下的版本,可以做分片(sharding),通过水平扩展(scale out)的方法打散写请求,提升写请求写入binlog的并行度。

      如果是MySQL 5.7以上的版本,在MySQL 5.7,使用了基于逻辑时钟(Group Commit)的并行复制。而在MySQL 8.0,使用了基于Write Set的并行复制。这两种方案都能够提升回放binlog的性能,减少延时。

      ◆ 案例二:主库执行大事务

      大事务指一个事务的执行,耗时非常长。常见产生大事务的语句有:

      ?使用了大量速度很慢的导入数据语句,比如:INSERT INTO $tb、SELECT * FROM $tb、LOAD DATA INFILE等;

      ?使用了UPDATE、DELETE语句,对于一个很大的表进行全表的UPDATE和DELETE等。

      当这个事务在从库执行回放执行操作时,就有可能会产生主从复制延时。

      现象描述

      我们从SHOW SLAVE STATUS的结果进行分析,会发现 Exec_Master_Log_Pos 字段一直未变,且second_behinds_master持续增加,而 Slave_SQL_Running_State 字段的值为”Reading event from the relay log”;同时,分析主库binlog,看主库当前执行的事务,会发现有一些大事务,这样基本可以判定是执行大事务的原因导致的主从复制延时。

      原因分析

      当大事务记录入binlog并同步到从库之后,从库执行这个事务的操作耗时也非常长,这段时间,就会产生主从复制延时。

      举个例子,假如主库花费200s更新了一张大表,在主从库配置相近的情况下,从库也需要花几乎同样的时间更新这张大表,此时从库延时开始堆积,后续的events无法更新。

      解决思路

      对于这种情况引起的主从复制延时,我们的改进方法是:拆分大事务语句到若干小事务中,这样能够进行及时提交,减小主从复制延时。

      ◆ 案例三:主库对大表执行DDL语句

      DDL全称为 Data Definition Language ,指一些对表结构进行修改操作的语句,比如,对表加一个字段或者加一个索引等等。当DDL对主库大表执行DDL语句的情况下,可能会产生主从复制延时。

      现象描述

      从现象上,如果从库执行SHOW SLAVE STATUS的输出中,检查Exec_Master_Log_Pos一直未动,在排除主库执行大事务的情况下,那么就有可能是在执行大表的 DDL。这一点结合分析主库binlog,看主库当前执行的事务就可以进行确认。

      DDL语句的执行情况,可以进一步细分现象来更好地判断:

      1. DDL未开始,被阻塞,这时SHOW SLAVE STATUS的结果能检查到Slave_SQL_Running_State为waiting for table metadata lock,且Exec_Master_Log_Pos不变;

      2. DDL正在执行,SQL Thread单线程应用导致延时增加。这种情况下观察SHOW SLAVE STATU的结果能发现Slave_SQL_Running_State为altering table,而Exec_Master_Log_Pos不变。

      如果有上述的现象,那么很有可能主库对大表执行DDL语句,同步到从库并在从库回放时,就产生了主从复制延时。

      原因分析

      DDL导致的主从复制延时的原因和大事务类似,也是因为从库执行DDL的binlog较慢而产生了主从复制延时。

      解决思路

      遇到这种情况,我们主要通过SHOW PROCESSLIST或对information_schema.innodb_trx做查询,来找到阻塞DDL语句,并KILL掉相关查询,让DDL正常在从库执行。

      DDL本身造成的延时难以避免,建议考虑:

      ?避免业务高峰,尽量安排在业务低峰期执行 ;

      ?set sql_log_bin=0后,分别在主从库上手动执行DDL(此操作对于某些DDL操作会造成数据不一致,请务必严格测试),这一条如果用户使用云数据库UDB,可以联系UCloud UDB运维团队进行协助操作。

      ◆ 案例四:主库与从库配置不一致

      如果主库和从库使用了不同的计算资源和存储资源,或者使用了不同的内核调教参数,可能会造成主从不一致。

      现象描述

      我们会详细比对主库和从库的性能监控数据,如果发现监控数据差异巨大,结合查看主从的各个配置情况,即可作出明确判断。

      原因分析

      各种硬件或者资源的配置差异都有可能导致主从的性能差异,从而导致主从复制延时发生:

      ?硬件上:比如,主库实例服务器使用SSD磁盘,而从库实例服务器使用普通SAS盘,那么主库产生的写入操作在从库上不能马上消化掉,就产生了主从复制延时;

      ?配置上:比如,RAID卡写策略不一致、OS内核参数设置不一致、MySQL落盘策略不一致等,都是可能的原因。

      解决思路

      考虑尽量统一DB机器的配置(包括硬件及选项参数)。甚至对于某些OLAP业务,从库实例硬件配置需要略高于主库。

      ◆ 案例五:表缺乏主键或合适索引

      如果数据库的表缺少主键或者合适索引,在主从复制的binlog_format设置为’row’的情况下,可能会产生主从复制延时。

      现象描述

      我们进行数据库检查时,会发现:

      ?观察SHOW SLAVE STATUS的输出,发现Slave_SQL_Running_State为Reading event from the relay log;

      ?SHOW OPEN TABLES WHERE in_use=1的表一直存在;

      ?观察SHOW SLAVE STATUS的Exec_Master_Log_Pos字段不变;

      ?mysqld进程的CPU接近100%(无读业务时),IO压力不大。

      这些现象出现的情况下,可以认为很可能有表缺乏主键或唯一索引。

      原因分析

      在主从复制的binlog_format设置为’row’的情况下,比如有这样的一个场景,主库更新一张500万表中的20万行数据。binlog在row格式下,记录到binlog的为20万次update操作,也就是每次操作更新1条记录。如果这条语句恰好有不好的执行计划,如发生全表扫描,那么每一条update语句需要全表扫描。此时SQL Thread重放将特别慢,造成严重的主从复制延时。

      解决思路

      这种情况下,我们会去检查表结构,保证每个表都有显式自增主键,并协助用户建立合适索引。

      ◆ 案例六:从库自身压力过大

      有时候,从库性能压力很大的情况下,跟不上主库的更新速度,就产生了主从复制延时。

      现象描述

      观察数据库实例时,会发现CPU负载过高,IO利用率过高等现象,这些导致SQL Thread应用过慢。这样就可以判断是因为从库自身压力过大引起主从复制延时。

      原因分析

      部分UCloud用户对于数据库的主从会使用读写分离模式,读请求大部分在从库上执行。在业务有大量读请求的场景下,从库会产生比主库大得多的性能压力。有的用户甚至会在从库运行十分耗费计算资源的OLAP业务,这也对从库造成了更高的性能挑战,这些都会造成主从复制的延时。

      解决思路

      这种情况下,我们会建议用户建立更多从库,打散读请求,降低现有从库实例的压力。对于OLAP业务来说,可以专门建立一个从库来做OLAP业务,并对这个从库,允许适当的主从复制延时。

      总结

      在使用MySQL的主从复制模式进行数据复制时,主从复制延时是一个需要考量的关键因素。它会影响数据的一致性,进而影响数据库高可用的容灾切换。

      在遇到数据库之间出现主从复制延时的情况下,我们团队基于过往经验,归纳出以下方法与流程来协助排查问题:

      ?通过SHOW SLAVE STATUS与SHOW PROCESSLIST查看现在从库的情况。(顺便也可排除在从库备份时的类似原因);

      ?若Exec_Master_Log_Pos不变,考虑大事务、DDL、无主键,检查主库对应的binlog及position即可;

      ?若Exec_Master_Log_Pos变化,延时逐步增加,考虑从库机器负载,如IO、CPU等,并考虑主库写操作与从库自身压力是否过大。

      UDB的高可用、高性能、便捷易用,可以大量减轻使用者的运维负担。在使用过程中, UDB团队也会利用多年累积的运营经验,帮助用户及时分析、排查问题原因,并给出合理的解决方法。

    特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。


    白最准一尾中特平 本文来源:互联网

    本文评论
    友情提示:评论功能暂时关闭,请扫描上方二维码进群交流!
    Win10负优化总算解除:不再卡顿
    8月30日,微软面向Windows 10五月更新(v1903)用户推送了补丁KB4512941,没想到意外翻车,造成部分用...
    日期:09-12
    高玩用Excel重制《文明1》 ,四核i5占用率100%
    根据PC Game的报道,最初的《文明》已有28年的历史,1991年首次在MS-DOS上发布。现在,国外一名高玩...
    日期:09-08
    SpreadJS与Vue集成,苏宁集团『极客办公』系统开发案例
    “造极”如今已成为苏宁集团的年度核心关键词。“造极”在具体工作上的体现,...
    日期:09-05
    联想发布 IdeaPad S540:2K屏,可选AMD R5 3500U
    9月4日消息 在IFA 2019上,联想宣布了一款13.3英寸的IdeaPad S540,搭载了QHD显示屏,可选英特尔第1...
    日期:09-05
    宏碁推出22英寸专业显示器:99% Adobe RGB,75Hz刷新率
    9月5日消息 宏碁在IFA公布了全新的ConceptD系列产品,面向专业用户。如果你喜欢小屏显示器的话,接...
    日期:09-05
    联想推出新款IdeaPad S340:13.3英寸,十代酷睿+MX 250
    9月4日消息 在IFA 2019上,联想推出了更新版的IdeaPad S系列,搭载Intel 10th Comet Lake-U和NVIDIA...
    日期:09-05
    ROG推出新款Zephyrus S笔记本,搭载 300 Hz刷新率屏幕
    9月4日消息 今天,在IFA 2019上,华硕ROG发布了Zephyrus S GX701游戏笔记本电脑,配有300赫兹超刷新...
    日期:09-05
    宏碁推出ConceptD 9 Pro 笔记本:i9+RTX 5000,17.3英寸4K翻转屏
    9月4日消息 今天宏碁推出了一系列的新品,包括四五千的入门级别笔记本到十几万的“电竞椅&rdqu...
    日期:09-05
    华为:搭载鸿蒙OS的笔记本电脑和智能手表将在海外上市
    9月4日消息 上个月,华为公布了自研操作系统HarmonyOS(鸿蒙OS)。日前,华为在英国伦敦举办媒体活动...
    日期:09-05
    华硕推出新款AsusPro B9商务笔记本,仅重880克
    9月4日消息 据Liliputing报道,华硕推出了AsusPro B9450FA笔记本,官方称是世界上最轻的14英寸商务...
    日期:09-05
    英伟达与华硕推出最强移动工作站:搭载RTX 6000,24GB显存
    9月4日消息 根据WCCFTECH的报道,英伟达和华硕在IFA2019上合作推出了一款最强移动工作站—&mda...
    日期:09-05
    OneWeb宣布2020年在北极地区提供高速卫星互联网
    9月5日消息,据国外媒体报道,当地时间周三晚些时候,卫星互联网提供商OneWeb表示其将在2020年前为...
    日期:09-05
    雷蛇推出灵刃13潜行版水银:25W i7-1065G7,Iris Plus核显
    9月4日消息 今天雷蛇在IFA 2019上推出了雷蛇灵刃13潜行版水银,采用了25W的英特尔10nm处理器,支持...
    日期:09-04
    游戏网络延迟优化,MediaTek G90T芯片助红米Note8 Pro实力圈粉
    9月3日倍受关注的的红米Redmi Note 8 Pro正式上市,作为1399元价位里最耀眼的新机型, Redmi品牌总...
    日期:09-04
    英特尔Lakefield 3D堆叠芯片曝光:超低压5核心,性能比肩奔腾G5400
    9月3日消息 根据Tom's Hardware报道,英特尔即将推出的3D堆叠处理器代号为Lakefield,@TUM_APISAK最...
    日期:09-03
    无需公网IP,蒲公英帮你实现远程访问OA系统
    行业背景
      办公自动化简称OA,是将计算机、通信等现代化技术运用到传统办公方式中,进而形...
    日期:09-03
    微软宣布:Windows 10 Edge浏览器将停止支持ePub电子书
      9月3日消息 2019年4月,微软宣布Windows 10商店不再销售电子书籍,近期微软发布了新的支持页面,称E...
    日期:09-03
    骁龙8cx版Windows 10 PC跑分曝光:单核3327分,多核11154分
    9月3日消息 跑分网站Geekbench上已经曝光了新的高通骁龙处理器的基准测试,该处理器似乎是骁龙8cx,...
    日期:09-03
    微软OneDrive iOS测试新版:全新黑暗模式,支持iPad多窗口
    9月3日消息 微软近期发布了针对Office Insiders的新iOS版OneDrive更新。此更新带有新的黑暗模式和改...
    日期:09-03
      专栏介绍
    王涵 的专栏
    王涵发表的文章
    积分:
    自我介绍 :
     
  • 高温“烤验”,品读这些自带凉意的避暑诗词 2019-09-14
  • 钱江潮评 让高质量发展插上人才的翅膀 2019-09-14
  • 如何制订企业发展计划 2019-09-12
  • APUS创始人李涛:我凭什么培养出全球发展最快的“独角兽” 2019-09-12
  • 地铁工地围挡要大变样了 下月实施围挡新标准——浙江在线 2019-09-10
  • 酒旅行走于法国葡萄酒香之路 品味美景与美酒美景酒香 2019-09-10
  • 父亲节当天 美国第一夫人跟特朗普唱了个反调 2019-09-09
  • 河北经济日报官方微信 2019-08-25
  • 商务部新闻发言人对美白宫6月18日声明发表谈话 2019-08-25
  • 网约车管理,“家规”之外有“行规” 2019-08-23
  • 南京:音乐嘉年华 嗨翻小长假 2019-08-23
  • 高清:世界杯小组赛B组摩洛哥对阵伊朗 两队球迷花样助阵 2019-08-20
  • 《中国国家地理》杂志社在拉萨林周县举行“黑颈鹤观察拍摄基地”授牌仪式文章中国国家地理网 2019-08-17
  • 3岁小孩骑童车绊倒老人算交通事故警察这样解释 2019-08-17
  • 组图:第96届全国糖酒会开幕 白酒馆“庄正大气”引人瞩目 2019-08-17
  • 浙江省12选5手机版 四川时时下载手机版 手机下载pcdd二维码 梭哈要全部人同意吗 重庆快乐10分钟吧 大乐透6十6多少钱一注 辽宁35选七的走势图 重庆彩五星基本走势图 国际米兰意甲排名 单机福州麻将