GreatSQL社区

搜索

GreatSQL社区

分布式数据库测试平台构建之路-探索篇(2)

GreatSQL社区 已有 399 次阅读2022-8-23 17:47 |个人分类:技术分享|系统分类:原理&产品解读

本文来源:原创投稿

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。


在上一篇 分布式数据库测试平台构建之路-探索篇(1),笔者简单总结了在单机数据库测试工作中,“测什么”与“怎么测”这样两个关键问题。而在单机数据库中需要测试的内容,在分布式数据库上也一样需要测试,至于那些只有分布式数据库才需要进行的测试内容,笔者则将从本篇开始逐步总结。

轻轻扣响分布式数据库的大门

就像单机数据库到分布式数据库的过渡不是一蹴而就的那样,我们的脚步也不需要太快,不要一下子就跳进分布式事务、分布式一致性这些会令人头大的概念中。我们先从数据副本、备份恢复之类,在单机数据库场景下也同样存在的概念开始。

数据的备份与恢复

每年毕业季总会听闻这样的故事:某某的电脑硬盘坏了,导致辛辛苦苦写的毕业论文都打了水漂。好在现在各种网盘、云盘和在线协作类的服务发展起来了,稍微聪慧点的后辈们就吸取了诸多前辈们的教训,知道重要的资料和文件不能只存在自己的电脑里。

刻在石壁上的壁画会因为风化而模糊不清,写在纸张上的文字可能毁灭于火焰,而硬盘上的数据则可能由于一次震动、一次断电就再也无法完整读取。故而,对于承诺了数据持久性保证的数据库软件来说,除了在单个数据库程序实例的内部需要有专门的机制,在位于不同物理机器上的两个数据库程序之间,也需要一定的机制进行数据的备份。

备份的分类

在对备份这个话题进行展开之前,我们先对备份这个概念进行一些分类:


分类规则类型1类型2
备份时机冷备份:在数据库服务停止之后,进行的数据备份热备份:在保证数据库服务不停机的情况下,进行数据备份
备份数据的量全量备份:对数据库中的数据,进行整体性的备份。在许多场景中,可能不会对数据库中的所有库表进行备份,这里的整体性是指每个需要备份的库表的整体性。增量备份:将数据库中的数据,自某一时间点之后所发生的数据变化进行的备份。
备份的实现机制基于数据文件:在源端数据库实例导出csv等格式的数据文件,在目标端数据库再将数据文件导入;直接拷贝源端的数据目录,在目标端使用使用这个数据目录直接启动基于日志:在源端数据库实例上,将所有用户操作语句或是数据的实际变化记录成日志文件,在目标端将日志文件回放

对于增量备份,如果强调实时性,就变成了数据同步。关于数据同步的内容,笔者会放到后续的文章中。

对于备份的测试

对于数据库的开发者和用户而言,数据备份的各种分类都有很重要的意义,但对于测试人员来说,如果只关心备份恢复过程中数据库实例的状态变化,将应该自动化完成的操作步骤放到一边,最后其实只有冷热备份之分——由于涉及到在线服务,热备要比冷备多出一些测试指标。


测试指标指标具体的描述测试的方法
数据备份的数据正确性在源端与目标端的数据起点状态一致的情况下,经过备份恢复操作源端与目标端的数据终点状态一致。小数据量或测试时长允许的情况下,可以通过各种粗暴的方法进行全量校验;数据量特别大的情况,可以考虑随机抽取若干数据段进行对比校验;在数据库本身支持校验和功能的情况下,如果可以的话,尽量使用校验和进行数据校验。
备份和恢复的速度单纯的性能测试。根据实际生产场景,设计测试所需的库表与数据量,记录备份和恢复的耗时,与过程中的硬件资源消耗、必要的数据库监控项等。
备份和恢复操作对在线业务的影响除了备份恢复操作之外,还要同时模拟业务压力,现在的用户一般都有不能停机的业务,很看重各种重操作对在线业务的影响。除了备份恢复相关的必要监控项之外,还要观察在线业务在备份恢复操作开始结束前后,TPS、QPS等重要指标的变化幅度。

小结

从备份恢复开始,数据库中的数据就不再只存放在一台机器一个实例上了,相当于朝着分布式数据库迈出了最初的一小步,这一阶段的测试工作还是很简单的。在打开这扇大门之后,就会进入一个复杂性陡增的世界。


评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-4-29 14:58 , Processed in 0.013006 second(s), 8 queries , Redis On.
返回顶部