• 0
  • 0
分享
  • 一种分布式数据库的RTO测试方法——软件测试圈
  • 曼倩诙谐 2021-08-17 10:29:06 字数 1251 阅读 1282 收藏 0

  背景

  随着分布式数据库的日渐成熟,在金融行业逐渐推行分布式数据库的使用,如何验证分布式数据库的高可用性是应用方所关注的。

  本文针对主流的TDSQL分布式数据库,在测试环境模拟真实业务持续压测,通过人为制造数据节点故障,观测业务具体表现和赤免监控指标得出RTO数值。

  相关概念

  RTO:恢复时间目标,主要指的是所能容忍的业务停止服务的最长时间,也就是从灾难发生到业务系统恢复服务功能所需要的最短时间周期。

  数据库恢复时间,指数据库停止对外服务到重新提供服务的时间。

  Xmeter:一种性能测试发压工具,可以高效的模拟客户端发起高并发请求,同时统计测试结果。

  分片:是把数据库横向扩展到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。

  测试环境

  本次采用性能测试集群(测试环境模拟本部和同城),环境均使用1主3从跨IDC强同步,不开启退化,均采用物理服务器。两个分片的数据库节点如下表所示:

1-1.png

  为简化测试,本次仅针对无分片的业务交易进行测试,选定分片1进行故障模拟测试。

  测试及验证方法

  在测试环境下模拟真实业务场景使用Xmeter平台持续压测,进行主动切换和人工模拟故障引起被动切换两种方式来查看和测试RTO指标。

  其中RTO分为两个层面进行关注,一是数据库中断时间,二是业务恢复时间。其中Xmeter的主要设置如下:

1-2.png

  故障模拟方法:kill掉相关实例在DB节点的mysqld进程,将oc _agent检查db节点存活的配置文件重命名,防止自动拉起进程。

  每个测试场景结束后恢复该文件,检查数据库恢复正常后进行下一个场景的测试。

  业务中断时间(RTO)检测方法:从xmeter监控何时业务恢复。

  数据库中断时间检测方法:通过shell脚本,每秒向数据库指定表插入一条数据,查看插入失败报错的时间段。

  测试结果

1-3.png

  结论及高可用表现

  通过测试,验证了数据库在主动切换和模扣故障场景下的高可用表现符合预期,具体表现如下:

  1.主动切换到异步备机,切换后异步备机提升为主,原主节点变为异步,原强同步节点仍为强同步。

  2.主动切换到强同步备机,切换后,指定强同步备机提升为主,新主同IDC备机由强同步变为异步,原主和原异步备机变为强同步。

  3.主节点down,如果同IDC异步备机没延迟,主节点切换到DC异步备机,备IDC强同步不变。

  如果同IDC异步备机有延迟,主节点切换到备IDC, 原异步备机变为强同步,原强同步备机变为异步。

  4.强同步备节点1个down, 对其他数据节点无影响。

  5.主和强同步备机down,无法确定剩余的强同步备机数据是否正确,数据库停止服务。

  6.主IDCDB 节点全down,主节点切换备IDC,新主节点同IDC的备机仍为强同步。

  7.备IDC数据节点全down,主节点不发生切换,原异步备机提升为强同步。



作者:周永恒   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:如何做 APP 安装测试 ?阿常回答:这个问题我分别从 1、安装方式;2、安装平台;3、正常流程安装;4、异常流程安装 这四个方面来回答。一、安装途径tips:安装完毕请确认你安装的版本是正确的版本!一)官方渠道验证1、通过扫描二维码的方式下载安装。2、通过官网主页的 http 链接下载安装。3、从其他第三方平台下载安装。二)测试环境验证测试环境可以拿开发给的 apk 或者 ipa 包直接安装。二、安装平台1、Android 平台(包括EMUI、MIUI、OriginOS、ColorOS 等等)2、iOS 平台三、正常流程安装1、安装过程中出现的提示信息...
            0 0 1243
            分享
          •   综合南方都市报、香港金融管理局网站消息,在 10 月底举行的第九届香港金融科技周活动中,香港金融管理局总裁余伟文表示,为了打破支付障碍,香港金管局正与中国人民银行紧密合作,建立香港“转数快”(FPS)快速支付系统与内地网上银行支付系统(IBPS)之间的互联,将支持 7x24 小时、实时、小额跨境汇款,并可使用手机号码等账户识别代号转账。  “转数快”(FPS)即“快速支付系统”,是香港金管局在 2018 年推出的支付金融基建,由香港银行同业结算有限公司负责运作,在香港推行即时支付,全日 24 小时为消费者及商户提供零售支付服务。  余伟文指出,现在香港居民使用“转数快”,只需输入电话号码,...
            0 0 166
            分享
          • (一)Monkey简介Monkey意指猴子,顽皮淘气。所以Monkey测试,顾名思义也就像猴子一样在软件上乱敲按键,猴子什么都不懂,就爱捣乱。Monkey原理也是类似,通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、滑动Trackball、手势输入等操作),来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,在功能测试完成后进行monkey测试。Monkey包括许多选项,它们大致分为四大类:(1)基本配置选项,如设置尝试的事件数量;(2)运行约束选项,如设置只对单独的一个包进行测试;(3)事件类型和频率;(4)调试选项;总结:Monkey测试用于发现App测试中的问题(如AN...
            15 15 1908
            分享
          •   测试江湖:聊聊“情商”那些事儿  程序员们,你们是否也曾在提到“情商”时,脑海中浮现出各种“梗”和“表情包”?实际上,每当看到那些把程序员描绘成情商“退化”到极点的故事,我都忍不住想笑。在这背后,实际上揭示了测试同学这一群体在传统印象中可能被认为具有较高技术能力但较低情商水平的真相。在我所熟悉的IT圈子里,我真没遇到过几个真正的“极品”。相反,许多程序员都具备出色的技术能力,同时在应对职场挑战时也展现出了坚韧不拔的精神。  这些流行的“情商故事”大多是由外行人杜撰出来开玩笑的成分。说不定,这些故事的杜撰者自己本身还是个程序员!言归正传,让我们来聊聊程序员中那些比较典型的“情商不足”表现吧!...
            0 0 550
            分享
          •   测试人员日常接触的测试多为针对应用系统的测试,如果测试对象是开发平台呢?这里的开发平台指的是开发人员使用的开发框架,与有运行时的应用系统相比,它提供的服务是基础框架和插件,天然的不具有可运行系统的特征。开发平台的测试该怎么测呢?下文从接口测试方面介绍开发平台的测试思路。  首先来分析一下开发平台的接口测试与应用系统接口测试的区别。  开发平台与应用系统接口测试的区别  1.接口及其使用场景的区别  应用系统的接口包括用户与系统间的接口以及系统与系统间的接口,因有业务规则在内使其使用场景固定,功能明确。  而开发平台接口的使用场景则复杂的多,开发平台的接口是指其将某类功能封装后的jar包,插...
            12 12 2237
            分享
      • 51testing软件测试圈微信