一种分布式数据库的RTO测试方法

发表于:2021-8-04 09:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:周永恒    来源:51Testing软件测试网原创

  背景
  随着分布式数据库的日渐成熟,在金融行业逐渐推行分布式数据库的使用,如何验证分布式数据库的高可用性是应用方所关注的。
  本文针对主流的TDSQL分布式数据库,在测试环境模拟真实业务持续压测,通过人为制造数据节点故障,观测业务具体表现和赤免监控指标得出RTO数值。

  相关概念
  RTO:恢复时间目标,主要指的是所能容忍的业务停止服务的最长时间,也就是从灾难发生到业务系统恢复服务功能所需要的最短时间周期。
  数据库恢复时间,指数据库停止对外服务到重新提供服务的时间。
  Xmeter:一种性能测试发压工具,可以高效的模拟客户端发起高并发请求,同时统计测试结果。
  分片:是把数据库横向扩展到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。

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

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

  测试及验证方法
  在测试环境下模拟真实业务场景使用Xmeter平台持续压测,进行主动切换和人工模拟故障引起被动切换两种方式来查看和测试RTO指标。
  其中RTO分为两个层面进行关注,一是数据库中断时间,二是业务恢复时间。其中Xmeter的主要设置如下:

  故障模拟方法:kill掉相关实例在DB节点的mysqld进程,将oc _agent检查db节点存活的配置文件重命名,防止自动拉起进程。
  每个测试场景结束后恢复该文件,检查数据库恢复正常后进行下一个场景的测试。
  业务中断时间(RTO)检测方法:从xmeter监控何时业务恢复。
  数据库中断时间检测方法:通过shell脚本,每秒向数据库指定表插入一条数据,查看插入失败报错的时间段。

  测试结果

  结论及高可用表现
  通过测试,验证了数据库在主动切换和模扣故障场景下的高可用表现符合预期,具体表现如下:
  1.主动切换到异步备机,切换后异步备机提升为主,原主节点变为异步,原强同步节点仍为强同步。
  2.主动切换到强同步备机,切换后,指定强同步备机提升为主,新主同IDC备机由强同步变为异步,原主和原异步备机变为强同步。
  3.主节点down,如果同IDC异步备机没延迟,主节点切换到DC异步备机,备IDC强同步不变。
  如果同IDC异步备机有延迟,主节点切换到备IDC, 原异步备机变为强同步,原强同步备机变为异步。
  4.强同步备节点1个down, 对其他数据节点无影响。
  5.主和强同步备机down,无法确定剩余的强同步备机数据是否正确,数据库停止服务。
  6.主IDCDB 节点全down,主节点切换备IDC,新主节点同IDC的备机仍为强同步。
  7.备IDC数据节点全down,主节点不发生切换,原异步备机提升为强同步。

      版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号