• 0
  • 0
分享
  • 一种分布式数据库的RTO测试方法——软件测试圈
  • 曼倩诙谐 2021-08-17 10:29:06 字数 1251 阅读 1163 收藏 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   QA评审底层测试的价值体现在这几个方面:  最重要的是利用QA的测试技能,可以发现Dev所写底层测试可能存在的问题,让测试更有效。  QA通过review底层测试,能够更好的了解测试覆盖情况,更清楚整体的测试状态。  QA看Dev写的测试,可以起到督促他们编写测试的作用。  但是,如果没做好,就会变成一种形式,Dev把测试给QA看一遍,QA就是稀里糊涂的过一遍,没有输入也没有反馈……这样的话,当然就没有价值了,而且还会浪费大家的时间。  虽然说的QA评审测试,其实是Dev和QA合作完成的事情,要想做好,对Dev和QA都有不同的要求。  首先,对Dev的要求:  自己要能清晰理解所有的测试,...
            0 0 433
            分享
          •   引言  一款完整的游戏,不仅有精美的画面,还有符合游戏的音乐、音效与配音。音乐提升玩家氛围,配音引导玩家,音效是游戏内涵的补充,它可以更好展现游戏开发者架构整个游戏的价值取向。  优秀的游戏音效可以让玩家在赏玩游戏之后,产生“余音绕梁三日而不绝” 的共鸣,这样游戏内涵也得到了提升,并更有效地延长了游戏的生命力。  1.游戏音效的分类  (1)环境音效:环境音效主要用于营造场景或者关卡的氛围和情绪,包括了下雨天、刮风、晴天、等天气相关的音效以及风吹的声音等其他与环境有关的音效。  (2)场景音效:场景音效的作用与环境音效一致。是场景内的各类物件的音效,主要是角色同物件交互时的音效。如打碎瓦罐...
            0 0 572
            分享
          •   Web 端测试和 App 端测试是针对不同平台的上的应用进行测试,Web应用和App端的应用实现方式不同,测试时的侧重点也不一样。  今天这篇文章就来介绍下两者的不同之处以及测试时的侧重点。  Web 端应用和 App 端应用的区别  · 平台兼容性  Web 端应用可以在任何具备浏览器的设备上运行,而 App 端应用需要在特定的操作系统上安装和运行。  · 安装方式  Web 端应用可以通过访问特定的网址来直接使用,而 App 端应用需要从应用商店或者其他渠道下载和安装。  · 功能和性能  App 端应用通常能够提供更加丰富的功能和更好的性能,因为它们可以直接与设备的硬件和操作系统进行...
            0 0 818
            分享
          • 最近在做移动端报表的测试,根据实际测下来的情况阿常先总结一版测试流程和测试方案(这是初版 v1.0,后续在此基础上做更新迭代)。由于不同的报表需求具有定制化差异,阿常这里仅针对自己测过的报表做测试经验归纳总结,可能并不适用于大家所负责的报表测试需求,大家可根据需要选择性阅读此文。一、测试流程序节点名称节点说明1    分析业务和需求    熟悉业务流程和业务规则:指标项的数据来源、取数口径、计算公式;源数据的更新(包括增、删、改或状态的变化),对报表中指标项的计算产生的影响。   2    制定测试方案和计划 &n...
            0 0 869
            分享
      • 51testing软件测试圈微信