CN112214411A - 一种容灾系统测试方法、装置、设备及存储介质 - Google Patents

一种容灾系统测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112214411A
CN112214411A CN202011121934.2A CN202011121934A CN112214411A CN 112214411 A CN112214411 A CN 112214411A CN 202011121934 A CN202011121934 A CN 202011121934A CN 112214411 A CN112214411 A CN 112214411A
Authority
CN
China
Prior art keywords
database
fault
target
state change
change information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011121934.2A
Other languages
English (en)
Other versions
CN112214411B (zh
Inventor
李昱
杨军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011121934.2A priority Critical patent/CN112214411B/zh
Publication of CN112214411A publication Critical patent/CN112214411A/zh
Application granted granted Critical
Publication of CN112214411B publication Critical patent/CN112214411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请提供一种容灾系统测试方法、装置、设备及存储介质,可以应用于云安全等数据安全相关领域,用于提高测试容灾系统的效率。该方法包括:根据预先配置的目标故障配置信息,针对所述目标故障配置信息指示的至少一个数据库触发目标故障;获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息;当所述状态变化信息和参考状态变化信息相匹配时,确定所述待测试容灾系统成功处理所述目标故障,其中,所述参考状态变化信息是预先根据参考容灾系统针对目标故障的成功处理过程确定的。

Description

一种容灾系统测试方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种容灾系统测试方法、装置、设备及存储介质。
背景技术
在一些场景下,例如云计算场景,设备通常需要基于数据库工作,例如,设备不断在数据库中进行读写操作。如果数据库出现故障,会导致设备工作异常,从而影响当前正在进行的业务流程,那么就需要针对数据库设置故障处理流程,保证数据库出现故障时,设备能够及时对数据库的故障进行处理,使得设备当前正在进行的业务流程不会受到影响。
针对数据库设置了故障处理流程之后,通常需要对故障处理流程进行测试,确保该故障处理流程可以正确处理数据库的故障。常用的测试方法是测试人员根据测试经验判断数据库可能出现的故障,然后手动编写代码测试故障处理流程。然而,数据库发生故障的因素多种多样,每测试一种故障时,测试人员都需要编写一次相应的代码,可见,这种人工测试的方式,测试效率较低。
发明内容
本申请实施例提供一种容灾系统测试方法、装置、设备及存储介质,用于提高测试容灾系统的效率。
第一方面,提供一种容灾系统测试方法,所述容灾系统用于对数据库集群进行故障处理,所述测试方法包括:
根据预先配置的目标故障配置信息,针对所述目标故障配置信息指示的至少一个数据库触发目标故障;
获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息;
当所述状态变化信息和参考状态变化信息相匹配时,确定所述待测试容灾系统成功处理所述目标故障,其中,所述参考状态变化信息是预先根据参考容灾系统针对目标故障的成功处理过程确定的。
第二方面,提供一种容灾系统测试装置,所述容灾系统用于对数据库集群进行故障处理,所述测试装置包括:
触发模块:用于根据预先配置的目标故障配置信息,针对所述目标故障配置信息指示的至少一个数据库触发目标故障;
处理模块:用于获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息;以及,当所述状态变化信息和参考状态变化信息相匹配时,确定所述待测试容灾系统成功处理所述目标故障,其中,所述参考状态变化信息是预先根据参考容灾系统针对目标故障的成功处理过程确定的。
可选的,所述预先配置的目标故障配置信息包括故障节点和故障类型,所述触发模块具体用于:
根据所述目标故障配置信息中故障节点所指示的至少一个数据库,按照所述故障类型对所述至少一个数据库中每个数据库进行配置,触发目标故障。
可选的,所述处理模块还用于:
在获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息之后,针对各个目标故障中每两个目标故障关联的状态变化信息,确定两个状态变化信息之间的匹配程度;
基于各个匹配程度,对各个目标故障关联的状态变化信息进行归类,获得各个基础目标故障,以及各个基础目标故障关联的状态变化信息。
可选的,所述预先配置的目标故障配置信息包括故障节点、故障类型和故障条件,所述故障条件表示配置每个故障节点的顺序或时间间隔,所述触发模块具体用于:
根据所述目标故障配置信息中故障节点所指示的至少一个数据库,按照故障条件所指示的顺序或时间间隔,依次根据所述故障类型对至少一个数据库中每个数据库进行配置,触发目标故障。
可选的,所述处理模块还用于:
在获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息之后,针对各个目标故障关联的状态变化信息,确定每个目标故障关联的状态变化信息,与各个基础目标故障关联的状态变化信息之间的匹配程度;
基于各个匹配程度,确定匹配程度低于预设匹配阈值的目标故障关联的状态变化信息,获得各个新增目标故障关联的状态变化信息。
可选的,所述处理模块还用于:
在针对所述目标故障配置信息指示的至少一个数据库触发目标故障之后,根据当前的主数据库的读写规则,生成模拟数据,并向当前的主数据库写入模拟数据,直到获得所述数据库集群中各数据库的状态变化信息时停止写入;
在确定所述待测试容灾系统成功处理所述目标故障之前,读取在针对所述目标故障配置信息指示的至少一个数据库触发目标故障之后写入的所有数据;确认所述写入的所有数据,与生成的模拟数据相匹配。
可选的,所述处理模块具体用于:
在针对所述目标故障配置信息指示的至少一个数据库触发目标故障之后开始计时,并记录所述数据库集群中各数据库的初始状态;
若在预设时长内,确定所述数据库集群中各数据库的状态发生变化,则记录变化后的中间状态,并重新计时,直到在预设时长的结束时刻到达时,所述数据库集群中各数据库的状态均未发生变化,记录所述数据库集群中各数据库的最终状态;
根据所有记录的状态,获得所述数据库集群中各数据库的状态变化信息。
第三方面,一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面所述的方法。
第四方面,一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的方法。
本申请实施例中,在对容灾系统进行测试时,可以根据预先配置的目标故障配置信息,针对数据库触发目标故障,不需要由测试人员先依据测试经验考虑到该目标故障,并手动触发该目标故障,实现了测试用例的自动生成,提高了触发目标故障的效率。且,通过待测试容灾系统处理目标故障的过程中,获取的状态变化信息,可以反映出待测试容灾系统处理目标故障的处理流程,不需要在容灾系统处理完成目标故障之后,由测试人员手动查看待测试容灾系统处理目标故障的处理流程。且,通过比较状态变化信息和参考状态变化信息是否匹配,确定待测试容灾系统是否成功处理目标故障,实现了对待测试容灾系统的处理流程的自动化分析,不需要测试人员在查看待测试容灾系统的处理流程之后,再针对处理流程进行分析,确定待测试容灾系统的处理流程是否合理,也不需要测试人员根据不同的目标故障,编写不同的代码进行测试,提高了确定待测试容灾系统的处理流程是否合理的效率,从而提高了测试容灾系统的效率。
附图说明
图1为本申请实施例提供的容灾系统测试方法的一种应用场景;
图2为本申请实施例提供的容灾系统测试方法的一种流程示意图;
图3为本申请实施例提供的容灾系统测试方法的一种原理示意图一;
图4为本申请实施例提供的容灾系统测试方法的一种原理示意图二;
图5为本申请实施例提供的容灾系统测试方法的一种原理示意图三;
图6为本申请实施例提供的容灾系统测试方法的一种原理示意图四;
图7为本申请实施例提供的容灾系统测试方法的一种交互示意图;
图8为本申请实施例提供的容灾系统测试方法的一种原理示意图五;
图9为本申请实施例提供的容灾系统测试方法的一种原理示意图六;
图10为本申请实施例提供的容灾系统测试装置的结构示意图一;
图11为本申请实施例提供的容灾系统测试装置的结构示意图二。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)容灾系统和当前主数据库:
容灾系统用于对数据库集群进行故障处理,例如,在当前主数据库产生故障时,对当前主数据库,以及与当前主数据库互为备份的一个数据库进行主备切换处理,使得数据库可以不间断的提供服务。并对故障数据库进行故障处理,保证数据库集群中各数据库正常工作。数据库包括关系型数据库,如MySQL数据库等,还包括非关系型数据库,如redis数据库等;
当前主数据库表示当前作为主数据库进行业务流程的数据库,例如,在进行主备切换之后,当前主数据库为切换为主数据库进行业务流程的数据库。
(2)互为备份的数据库之间的主备复制:
当前主数据库定期或实时将数据复制到与当前主数据库互为备份的数据库当中,使得互为备份的数据库之间数据同步。
(3)MySQL数据库:
MySQL数据库为一种关系型数据库,将数据保存在不同的数据表中,而不是将所有数据保存在同一个数据表中,使得读写数据时的速度更快,灵活性更高。
本申请实施例涉及服务器、数据库、云技术和云安全等。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible Markup Language,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1.云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2.安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3.云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
下面对本申请实施例提供的容灾系统测试方法的应用领域进行简单介绍。
在安全存储领域中,由于互为备份的数据库之间会进行主备复制,因此,容灾系统可以在当前主数据库发生故障时,将与当前主数据库互为备份的数据库切换为主数据库,将故障的数据库切换为备份数据库,从而数据库可以不间断地提供服务,避免数据丢失等情况,提高数据的安全性。在将容灾系统应用于处理数据库发生的真实故障之前,通常需要对容灾系统进行测试,确定容灾系统针对数据库可能发生的各个故障的处理流程是否存在问题。
通常测试人员可以依据以往的测试经验,考虑到一些需要进行测试的故障,并依次针对数据库触发这些故障。在针对数据库触发某一故障之后,容灾系统会针对该故障进行处理,测试人员通过编写代码,来确定容灾系统针对每个故障的处理结果,从而确定处理流程是否存在问题,最终确定容灾系统是否可以成功处理每个故障。在容灾系统针对测试人员触发的所有故障的处理流程均没有问题时,测试人员确定容灾系统测试完成,可以用于处理数据库发生的真实故障。
然而,数据库可能发生的故障多种多样,测试人员可能无法考虑到所有可能的故障场景,因此,可能会出现测试人员测试的所有故障中,并不包括数据库发生的真实故障的情况,无法保证容灾系统对该真实故障的处理流程是否有误。因此,依据测试人员的测试经验,对容灾系统进行测试的方法,测试准确性较低。且,在需要测试的目标故障的数量为多个时,测试人员需要依次针对数据库触发每个故障来进行测试,且需要测试人员为每个目标故障编写一个测试代码,且在测试的过程中,需要与测试人员进行多次交互,使得测试过程效率较低。且,测试人员需要对故障处理流程进行分析之后,才可以确定容灾系统的故障处理流程是否有误,同样使得测试过程效率较低。在整个测试过程中,过多依赖于测试人员,使得人工成本较高。
为了解决相关技术中容灾系统的测试效率较低等问题,本申请提供一种容灾系统测试方法。该方法预先根据参考容灾系统对各种故障进行处理,获得参考容灾系统成功处理不同故障的过程中,数据库的状态变化信息,并作为参考状态变化信息与对应的故障的配置信息建立关联关系。当对容灾系统进行测试时,可以根据目标故障配置信息,触发目标故障,针对该目标故障进行测试。
需要进行测试的目标故障可以是一个,也可以是多个,不需要测试人员手动触发目标故障,也不需要测试人员编写代码,且,在需要进行测试的目标故障为多个时,可以依次触发每个目标故障,不需要测试人员在每个目标故障测试完成之后,再手动触发下一个目标故障,提高了触发目标故障的效率。在容灾系统针对目标故障进行处理的过程中,通过获得数据库的状态变化信息,来反映容灾系统针对目标故障的处理流程,并根据获得的状态变化信息与预先针对目标故障确定的参考状态信息进行匹配的匹配结果,来判断容灾系统的处理流程是否正确。不需要在容灾系统处理完成目标故障之后,由测试人员手动查看待测试容灾系统对目标故障的处理流程。也不需要测试人员在查看待测试容灾系统的处理流程之后,再针对处理流程进行分析,确定待测试容灾系统的处理流程是否正确。减少了与测试人员之间的交互过程,提高了确定待测试容灾系统的处理流程是否正确的效率,从而提高了容灾系统的测试效率。
下面对本申请提供的容灾系统测试方法的应用场景进行说明。
请参考图1,为容灾系统测试方法的一种应用场景。该应用场景中包括数据库101、容灾设备102和测试设备103。数据库101包括第一数据库1011、第二数据库1012、第三数据库1013、第四数据库1014、第五数据库1015和第六数据库1016。第一数据库1011、第二数据库1012、第三数据库1013、第四数据库1014、第五数据库1015和第六数据库1016可以设置在同一个地点,或者可以设置在不同的地点,在此不作限制。图1中以第一数据库1011为触发目标故障之前的主数据库,第二数据库1012、第三数据库1013、第四数据库1014、第五数据库1015和第六数据库1016为与第一数据库1011互为备份的数据库为例。
应当说明的是,数据库101可以只包括一个主数据库和一个备份数据库,或者,可以包括一个主数据库和多个备份数据库,也就是说,数据库101中包括至少两个数据库,具体数量不做限制。
数据库101和容灾设备102之间可以通信,容灾设备102和测试设备103之间可以通信,数据库101和测试设备103之间可以通信。通信方式可以是有线通信方式,例如通过连接网线或串口线进行通信;也可以是无线通信方式,例如蓝牙或无线保真(wirelessfidelity,WIFI)等技术进行通信,具体不做限制。
容灾设备102泛指包括容灾系统的设备,可以对互为备份的数据库进行主备切换处理,和对故障数据库进行故障处理的设备,例如服务器或终端设备等。服务器可以是本地服务器或云服务器等。终端设备可以是手机、台式计算机或平板电脑等。
测试设备103泛指可以对容灾设备102进行测试的设备,例如服务器、终端设备或客户端等。客户端可以是安装在终端设备中的第三方应用程序或终端设备可以访问的网页等。
作为一种实施例,数据库101和容灾设备102可以是同一个设备,即数据库101可以实现容灾设备102的功能,或者,容灾设备102和测试设备103可以是同一个设备,即容灾设备102可以实现测试设备103的功能,或者,数据库101和测试设备103可以是同一个设备,数据库101可以实现测试设备103的功能,或者,数据库101、容灾设备102和测试设备103可以是同一个设备,即数据库101可以实现容灾设备102和测试设备103的功能,具体不做限制。本申请实施例中,以数据库101、容灾设备102和测试设备103分别为不同的设备为例进行介绍。
下面基于图1的应用场景,对各个设备之间的交互过程进行简单介绍。
测试设备103获取预先配置的目标故障配置信息,并根据预先配置的目标故障配置信息,触发目标故障。
根据目标故障配置信息,触发目标故障可以包括多种情况,下面以其中的三种为例进行介绍。
情况一:
根据目标故障配置信息,针对第一数据库1011触发目标故障。
在图1中,触发目标故障之前,第一数据库1011为主数据库。根据目标故障配置信息,测试设备103可以针对第一数据库1011触发目标故障。在测试设备103针对第一数据库1011触发目标故障之后,容灾设备102中的待测试容灾系统在与第一数据库1011互为备份的第二数据库1012、第三数据库1013、第四数据库1014、第五数据库1015和第六数据库1016中,确定一个备份数据库,如第二数据库1012。容灾设备102中的待测试容灾系统对第一数据库1011和第二数据库1012进行主备切换处理,并对第一数据库1011进行故障处理。
情况二:
根据目标故障配置信息,针对第二数据库1012触发目标故障。
在图1中,触发目标故障之前,第二数据库1012为第一数据库1011的备份数据库。根据目标故障配置信息,测试设备103可以针对第二数据库1012触发目标故障。在测试设备103针对第二数据库1012触发目标故障之后,容灾设备102中的待测试容灾系统对第二数据库1012进行故障处理。
情况三:
根据目标故障配置信息,针对第一数据库1011和第二数据库1012触发目标故障。
在图1中,触发目标故障之前,第一数据库1011为主数据库,第二数据库1012为第一数据库1011的备份数据库。根据目标故障配置信息,测试设备103可以针对第一数据库1011和第二数据库1012触发目标故障。在测试设备103针对第一数据库1011和第二数据库1012触发目标故障之后,容灾设备102中的待测试容灾系统在与第一数据库1011互为备份的第三数据库1013、第四数据库1014、第五数据库1015和第六数据库1016中,确定一个备份数据库,如第三数据库1013。容灾设备102中的待测试容灾系统对第一数据库1011和第三数据库1013进行主备切换处理,并对第一数据库1011和第二数据库1012进行故障处理。
测试设备103在容灾设备102进行处理的过程中,获取数据库集群中各数据库的状态变化信息,其中,数据库集群中各数据库的状态变化信息可以包括状态发生变化了的数据库的状态变化信息,即第一数据库1011和第二数据库1012的状态变化信息;或者,可以包括数据库集群中所有数据库的状态变化信息;或者,可以包括数据库集群中处于工作状态的数据库的状态变化信息等,具体获取哪些数据库的状态变化信息可以根据实际情况设置,在此不做限制。测试设备103在获得状态变化信息之后,比对状态变化信息与参考状态变化信息是否匹配,如果状态变化信息与参考状态变化信息匹配,那么测试设备103确定容灾设备102中的待测试容灾系统成功处理目标故障。
应当说明的是,根据目标故障配置信息触发目标故障的情况不限于上述三种,例如,还可以包括针对多个备份数据库触发目标故障的情况等。
本申请实施例中,可以根据预先配置的目标故障配置信息,针对数据库触发目标故障,不需要由测试人员先依据测试经验考虑到该目标故障,并手动触发该目标故障,实现了测试用例的自动生成,提高了触发目标故障的效率。通过状态变化信息反映待测试容灾系统的处理过程,不需要测试人员手动编写代码来确定待测试容灾系统的处理结果,提高了获得待测试容灾系统的处理过程的效率。并通过比对状态变化信息与参考状态变化信息是否匹配,确定待测试容灾系统是否成功处理目标故障,不需要测试人员手动查看并分析待测试容灾系统处理目标故障的处理流程之后,再确定待测试容灾系统的处理流程是否合理,提高了确定待测试容灾系统的处理流程是否合理的效率,从而提高了测试容灾系统的效率。
请参考图2,为本申请实施例提供的容灾系统测试方法的一种流程示意图。下面对容灾系统测试方法进行具体介绍。
S201,根据预先配置的目标故障配置信息,针对目标故障配置信息指示的至少一个数据库触发目标故障。
在根据预先配置的目标故障配置信息,针对目标故障配置信息指示的至少一个数据库触发目标故障之前,可以先获取预先配置的目标故障配置信息。目标故障配置信息可以包括故障节点、故障类型或故障条件中的一种或多种配置信息。故障节点表示触发目标故障的数据库,故障类型表示针对故障节点所配置的故障的类型,故障条件表示配置故障节点的时间,例如配置每个故障节点的顺序或时间间隔。
根据目标故障配置信息中故障节点所指示的至少一个数据库,根据故障类型进行配置,触发目标故障。或者,按照根据目标故障配置信息中故障条件指示的每个故障节点的配置顺序,对故障节点所指示的至少一个数据库,根据故障类型进行配置,触发目标故障。根据预先配置的目标故障配置信息,所触发的目标故障可以是一个或多个,本申请实施例中,以根据预先配置的目标故障配置信息所触发的目标故障是一个为例进行介绍。当根据预先配置的目标故障配置信息所触发的目标故障是多个时,可以依次触发每个目标故障,或者,每获得一个目标故障之后,触发该目标故障。当根据预先配置的目标故障配置信息所触发的目标故障是多个时,触发每个目标故障的过程与根据预先配置的目标故障配置信息所触发的目标故障是一个时,触发目标故障的过程相同,不再赘述。
作为一种实施例,当根据预先配置的目标故障配置信息所触发的目标故障是多个时,测试待测试容灾系统是否可以成功处理每个目标故障,如果待测试容灾系统可以成功处理每个目标故障,那么确定待测试容灾系统通过测试;如果待测试容灾系统无法成功处理任一目标故障,那么确定待测试容灾系统需要进一步调试。
作为一种实施例,故障条件还可以包括网络时断时续或部分丢包等情况。部分丢包表示概率性的丢失数据,例如,第一数据库1011和第二数据库1012之间存在50%的丢包概率,那么第一数据库1011和第二数据库1012之间传输的数据包有50%会被随机丢弃。
下面对获得目标故障配置信息的过程进行介绍。
一:目标故障配置信息包括故障节点和故障类型。
可以通过预先录入所有数据库节点,或者,可以通过接收其他设备发送的数据库节点,或者,可以通过存储的拓扑结构获取所有数据库节点,获得所有数据库节点,每个数据库节点可以作为一个可能的故障节点。例如,数据库节点包括主数据库、同步备份数据库、半同步备份数据库异步备份或数据库中的一种或多种。
可以预先录入数据库的所有故障类型,或者,可以通过接收其他设备发送的数据库的故障类型,或者,可以通过历史故障数据确定数据库的故障类型,获得所有可能的故障类型。例如,故障类型包括网络故障、数据库宕机或设备硬件故障中的一种或多种。
在获得所有故障节点和所有故障类型之后,可以将故障节点与故障类型进行排列组合,获得所有可能的目标故障。请参考图3,为获得目标故障配置信息的一种原理示意图。根据组合中每个故障节点的故障类型,确定每个故障节点的故障配置信息,获得目标故障配置信息。
例如,故障节点包括主数据库和半同步备份数据库,故障类型为网络故障,因此,目标故障为主数据库网络故障和半同步备份数据库网络故障的组合。根据将主数据库和半同步备份数据库分别配置为网络故障的配置信息,获得目标故障配置信息。
作为一种实施例,目标故障配置信息还可以包括标识信息,通过标识信息指定故障节点和故障类型的组合,获得指定的目标故障。通过测试待测试容灾系统是否可以成功处理指定的目标故障,可以确定待测试容灾系统是否调试成功。例如,待测试容灾系统已经针对每个目标故障进行了测试,并确定待测试容灾系统无法成功处理目标故障A,那么在对待测试容灾系统进行调试之后,可以进行第二轮测试,因此可以仅对待测试容灾系统是否可以成功处理目标故障A进行测试;或者,根据实际使用需求,仅需要确定待测试容灾系统是否可以成功处理目标故障A,那么,可以在目标故障配置信息中携带指示目标故障A的标识信息,从而,可以根据标识信息,触发指定的目标故障A,测试待测试容灾系统是否可以成功处理目标故障A,如果待测试容灾系统可以成功处理目标故障A,那么确定待测试容灾系统调试成功或测试成功;如果待测试容灾系统无法成功处理目标故障A,那么确定待测试容灾系统需要进一步调试,并可以在调试之后重新进行测试。
二:目标故障配置信息包括故障节点、故障类型和故障条件。
为了进一步提高获得的目标故障的全面性,在将故障节点与故障类型进行排列组合,或根据标识信息进行指定组合之前,可以预先录入每两个故障节点的配置时间等,例如,每两个故障节点故障发生的先后顺序,或每两个故障节点之间故障发生的时间间隔等;或者,可以通过接收其他设备发送的每两个故障节点的配置时间;或者,可以通过历史故障数据确定每两个故障节点的配置时间;或者,可以在配置故障节点时,随机设置每个故障节点的配置时间,获得所有可能的故障条件。
在将故障节点与故障类型进行排列组合,或根据标识信息进行指定组合之后,可以随机引入一种故障条件,例如,引入两个故障节点配置的先后顺序,或者,引入两个故障节点配置的时间间隔等。在将故障节点和故障类型,与故障条件结合之后,获得目标故障。请参考图4,为获得目标故障配置信息的一种原理示意图。根据组合中每个故障节点的故障类型,以及故障条件,确定每个故障节点的故障配置信息,获得目标故障配置信息。通过将故障节点、故障类型和故障条件进行组合的方式,可以获得各种不同的目标故障,例如,故障节点A和故障节点B发生网络异常的时间间隔不同,可能引发不同的目标故障,提高了获得目标故障的全面性,从而,在依据所有可能的目标故障,对待测试容灾系统进行测试的时候,由于测试的目标故障更加全面,因此相较于测试人员依据测试经验获得的目标故障进行测试的方法来说,测试容灾系统的准确性更高。且,通过随机引入故障条件的方式,而不是将所有故障条件与故障节点和故障类型进行排列组合,减少了在获得目标故障时,设备需要进行排列组合的数据处理量,以及针对每个目标故障进行测试的数据处理量,减少了网络爆炸的情况。
作为一种实施例,可以通过成对独立组合测试(pairwise independentcombinatorial testing,PICT)工具,将故障节点与故障类型进行随机组合,获得所有可能的组合情况。在将故障节点与故障类型进行随机组合之后,可以通过Monkey命令行工具,引入任意故障条件,提高容灾系统测试的全面性。
S202,获得待测试容灾系统对目标故障进行处理的过程中,数据库集群中各数据库的状态变化信息。
在针对目标故障配置信息指示的至少一个数据库触发目标故障之后,根据上述三种情况,待测试容灾系统对目标故障进行处理,例如,待测试容灾系统进行主备切换处理,或故障处理,或主备切换处理和故障处理过程。在待测试容灾系统针对目标故障进行处理的过程中,获取数据库集群中各数据库的状态变化信息。
下面对获取数据库集群中各数据库的状态变化信息的过程进行介绍。
在针对至少一个数据库触发目标故障之后,开始计时,并记录当前数据库集群中各数据库的状态,作为数据库集群中各数据库的初始状态。在开始计时之后,数据库集群中各数据库的状态可能发生变化,也可能不发生变化,例如,主数据库的状态可能由主数据库变为备份数据库。
如果在预设时长内,数据库集群中存在状态发生变化的数据库,即数据库集群中各数据库的状态发生变化,那么记录数据库集群中各数据库变化后的状态,作为数据库集群中各数据库的中间状态,并重新开始计时。重新开始计时可以理解为清除当前计时,并开始计时。
重新开始计时之后,如果在预设时长内,还存在状态发生变化的数据库,那么继续对中间状态进行记录。直到某次重新开始计时之后,在预设时长的结束时刻达到时,数据库集群中各数据库的状态均未发生变化,那么,记录当前数据库集群中各数据库的状态,作为数据库集群中各数据库的最终状态;或者,将最后依次记录的数据库集群中各数据库的状态,作为数据库集群中各数据库的最终状态等。
根据所有记录的状态,例如,数据库集群中各数据库的初始状态、各个中间状态和最终状态,获得数据库集群中各数据库的状态变化信息。数据库集群中各数据库的状态变化信息可以反映待测试容灾系统处理目标故障的过程,从而,可以根据状态变化信息,确定灾系统处理目标故障的过程是否合理。
作为一种实施例,数据库集群中各数据库包括触发目标故障的至少一个数据库,如果至少一个数据库中不包括主数据库,那么数据库集群中各数据库可以包括至少一个数据库和主数据库。
预设时长可以是预先设定的一个时间值,或者,可以是根据历史状态变化数据确定出的一个时间值等,具体不做限制。
初始状态表示触发目标故障之后,第一次记录的数据库集群中各数据库的状态;最终状态表示,待测试容灾系统处理完成故障时,最后一次记录的数据库集群中各数据库的状态;中间状态表示初始状态与最终状态之间,记录的数据库集群中各数据库的所有状态。中间状态可以包括一次记录的数据库集群中各数据库的状态,或者,可以包括多次记录的数据库集群中各数据库的状态,具体不做限制。
初始状态、中间状态和最终状态可以包括数据库集群中各数据库是否可以读写数据的状态、数据库集群中各数据库主备关系的状态、数据库集群中各数据库是否在线的状态、数据库集群中各数据库的插件配置状态或数据库集群中各数据库的数据复制状态等状态中的一种或多种。
作为一种实施例,获得最终状态还可以通过确定数据库中在线状态或数据库节点状态是否与预存的在线状态或数据库节点状态相同,来确定数据库集群中各数据库的最终状态等。例如,如果数据库A当前的在线状态为在线,预存的数据库A的在线状态为在线,那么可以确定数据库A的当前状态为最终状态等。如果记录的所有状态中,存在某一数据库的在线状态或数据库节点状态与预存的在线状态或数据库节点状态不同,那么即使预设时长达到,也可以继续记录数据库集群中各数据库的状态变化信息,直到数据库集群中各数据库的在线状态或数据库节点状态与预存的在线状态或数据库节点状态相同为止。
作为一种实施例,在针对至少一个数据库触发目标故障之后,可以根据当前的主数据库的读写规则,生成模拟数据。在生成模拟数据之后,向当前的主数据库写入模拟数据,直到获得数据库集群中各数据库的状态变化信息时,停止写入。从而,在待测试容灾系统处理完成目标故障之后,可以通过模拟数据确定当前的主数据库在待测试容灾系统处理目标故障的过程中,是否可以正常读写数据,以保证在待测试容灾系统处理目标故障的过程中可以正常提供数据库服务。
S203,当状态变化信息和参考状态变化信息相匹配时,确定待测试容灾系统成功处理目标故障。
在获得数据库集群中各数据库的状态变化信息之后,可以将状态变化信息与参考状态变化信息进行比对,确定状态变化信息与参考状态变化信息是否匹配。如果状态变化信息与参考状态变化信息匹配,那么确定待测试容灾系统成功处理目标故障;如果状态变化信息与参考状态变化信息不匹配,那么确定待测试容灾系统未成功处理目标故障。
参考状态变化信息是预先根据参考容灾系统针对目标故障的成功处理过程确定的。参考容灾系统可以是对待测试容灾系统进行仿真获得的,参考容灾系统针对目标故障的成功处理过程可以是通过仿真获得的。或者,参考容灾系统可以是与待测试容灾系统相同的容灾系统,参考容灾系统针对目标故障的成功处理过程可以是测试人员预测的处理过程等。
参考状态变化信息包括参考容灾系统在针对目标故障的成功处理过程中,数据库集群中各数据库的状态变化信息,可以包括触发目标故障之后,数据库集群中各数据库的初始状态,以及参考容灾系统在处理目标故障的过程中,数据库集群中各数据库的中间状态,以及参考容灾系统成功处理目标故障之后,数据库集群中各数据库的最终状态。
作为一种实施例,在向当前的主数据库写入模拟数据的同时可以记录写入的数据在当前的主数据库中的标识,从而,在获得数据库集群中各数据库的状态变化信息之后,可以根据数据在当前的主数据库中的标识,读取当前的主数据库中所有写入的数据。在获取当前的主数据库中所有写入的数据之后,确定所有写入的数据,与所有生成的模拟数据是否匹配,例如,确定当前的主数据库中所有写入的数据,分别与所有生成的模拟数据是否对应相同,或者,数据库集群中各数据库中所有写入的数据,分别与所有生成的模拟数据是否对应相同等。
数据的标识用于唯一表征该数据,可以是数据的ID,或者,可以是数据的名称等。
如果当前的主数据库中所有写入的数据,与所有生成的模拟数据匹配,那么确定待测试容灾系统成功处理目标故障。如果当前的主数据库中所有写入的数据,与所有生成的模拟数据不匹配,那么确定待测试容灾系统未成功处理目标故障。例如,如果当前的主数据库中所有写入的数据,分别与所有生成的模拟数据对应相同,那么确定待测试容灾系统成功处理目标故障。如果存在一个写入的数据与,所有生成的模拟数据中每个模拟数据均不同,那么确定待测试容灾系统未成功处理目标故障。或者,如果存在一个生成的模拟数据,与所有写入的数据均不同,那么确定待测试容灾系统未成功处理目标故障。
作为一种实施例,如果当前的主数据库中所有写入的数据,与所有生成的模拟数据匹配,且,状态变化信息与参考状态变化信息匹配,那么确定待测试容灾系统成功处理目标故障;否则,确定待测试容灾系统未成功处理目标故障。
如果待测试容灾系统未成功处理目标故障,可以发出提示信息,或记录未成功处理的目标故障,以便测试人员可以及时地且有针对性地对未成功处理的目标故障的处理过程进行调整。
确定状态变化信息与参考状态变化信息是否匹配可以有多种,下面以其中的三种为例进行介绍。
方法一:
状态变化信息中的最终状态,与参考状态变化信息中的最终状态相同时,确定状态变化信息与参考状态变化信息匹配。
如果状态变化信息中的最终状态与参考状态变化信息中数据库集群中各数据库的最终状态相同,那么可以确定状态变化信息,与参考状态变化信息匹配。如果状态变化信息中的最终状态与参考状态变化信息中数据库集群中各数据库的最终状态不同,那么可以确定状态变化信息,与参考状态变化信息不匹配。
方法二:
状态变化信息中的每个状态,分别与参考状态变化信息中的各个状态对应相同时,确定状态变化信息与参考状态变化信息匹配。
如果状态变化信息中的每个状态,与参考状态变化信息中的每个状态分别对应相同,那么确定状态变化信息与参考状态变化信息匹配。或者,如果参考状态变化信息中存在,与状态变化信息中的每个状态分别对应相同的状态,那么确定状态变化信息与参考状态变化信息匹配。如果状态变化信息中存在一个状态,与参考状态变化信息中的每个状态均不同,那么确定状态变化信息与参考状态变化信息不匹配。
方法三:
状态变化信息中,与参考状态变化信息中相同的状态的数量在预设范围内时,确定状态变化信息与参考状态变化信息匹配。
如果状态变化信息中,与参考状态变化信息中的状态相同的状态的数量在预设范围内,那么确定状态变化信息与参考状态变化信息匹配。如果状态变化信息中,与参考状态变化信息中的状态相同的状态的数量不在预设范围内,那么确定状态变化信息与参考状态变化信息不匹配。预设范围可以是预先设定的一个数值范围,或者,可以是根据历史状态变化信息,与参考状态变化信息中的状态相同的数量确定的一个范围,或者,可以根据实际应用场景自定义的一个范围,具体不做限制。
作为一种实施例,在获得各个目标故障关联的状态变化信息之后,为了减少设备存储的数据量,可以对获得的各个目标故障关联的状态变化信息进行归类处理。在对所有目标故障进行归类之后,获得各个基础目标故障,以及各个基础目标故障关联的状态变化信息。请参考图5,为一种获得各个基础目标故障,以及各个基础目标故障关联的状态变化信息的原理示意图。
针对各个目标故障关联的状态变化信息中每两个目标故障关联的状态变化信息,确定两个状态变化信息之间的匹配程度。基于各个匹配程度对各个目标故障关联的状态变化信息进行归类,获得各个基础目标故障,以及各个基础目标故障关联的状态变化信息。例如,将匹配程度大于预设匹配程度的各个目标故障关联的状态变化信息归为一类,或者,将匹配程度取匹配程度最大值的各个目标故障关联的状态变化信息归为一类等。预设匹配程度可以是预先设定的数值,或者,可以是根据历史目标故障关联的状态变化信息之间的匹配程度确定的值,或者,可以根据实际应用场景自定义的值,具体不做限制。
作为一种实施例,如果在归类处理的过程中,存在目标故障相同,且目标故障关联的状态变化信息完全相同的两个目标故障,那么可以删除其中一个目标故障,以及该目标故障关联的状态变化信息,减少重复的情况。
确定两个状态变化信息之间的匹配程度的方法有多种,下面以其中的两种为例进行介绍。
方法A:
如果两个目标故障的故障类型相同,且故障节点属于同一个数据库实例,那么将两个目标故障关联的状态变化信息的匹配程度确定为匹配程度最大值。
如果针对同一个数据库实例,不同的故障节点触发了相同故障类型的目标故障,那么目标故障关联的状态变化信息可能不同,然而,容灾系统针对这种目标故障的处理过程基本相同,因此,可以将故障类型相同,且故障节点属于同一个数据库实例的各个目标故障归为一类。将各个目标故障合并,获得基础目标故障,将各个目标故障关联的状态变化信息合并,获得基础目标故障关联的状态变化信息。
方法B:
如果两个目标故障关联的状态变化信息中相同状态的数量大于预设数量,那么将两个目标故障关联的状态变化信息的匹配程度确定为匹配程度最大值。
如果两个状态变化信息中相同状态的数量大于预设数量,那么可能容灾系统针对这种目标故障的处理过程基本相同,因此,可以将状态变化信息中相同状态的数量大于预设数量的各个目标故障归为一类。将各个目标故障合并,获得基础目标故障,将各个目标故障关联的状态变化信息合并,获得基础目标故障关联的状态变化信息。预设数量可以是预先设定的数值,或者,可以是根据历史两个目标故障关联的状态变化信息中相同状态的数量确定的值,或者,可以根据实际应用场景自定义的值,具体不做限制。
作为一种实施例,获得的各个基础目标故障,以及各个基础目标故障关联的状态变化信息可以作为参考容灾系统的参考状态变化信息,用于后续的测试过程。
作为一种实施例,在根据故障条件所指示的顺序或时间间隔,依次根据故障类型配置每个故障节点,触发目标故障时,相较于没有引入故障条件触发的目标故障,可能故障条件并不会对目标故障关联的状态变化信息产生影响,即对于相同的故障节点和故障类型,不同故障条件的情况下,容灾系统处理目标故障的处理过程可能相同或相似,因此,依据故障节点、故障类型和故障条件触发的目标故障,在确定待测试容灾系统成功处理目标故障之后,可以将各个目标故障关联的状态变化信息,与上述依据故障节点和故障类型获得的各个基础目标故障关联的状态变化信息进行比对,确定匹配程度。
基于各个匹配程度,确定匹配程度低于预设匹配阈值的目标故障关联的状态变化信息,获得各个新增目标故障,以及各个新增目标故障关联的状态变化信息。预设匹配阈值可以是预先设定的数值,或者,可以是根据历史目标故障关联的状态变化信息,与基础目标故障关联的状态变化信息之前的匹配程度确定的值,或者,可以根据实际应用场景自定义的值,具体不做限制。
请参考图6,为获得各个新增目标故障,以及各个新增目标故障关联的状态变化信息一种原理示意图。确定两个状态变化信息之间的匹配程度的方法可以参照方法A或方法B,在此不再赘述。
新增目标故障表示在引入了故障条件之后,状态变化信息与基础目标故障关联的状态变化信息之间的差异较大的目标故障,也就是说,该引入了故障条件之后的目标故障,与未引入故障条件的目标故障,是两个不同的目标故障,新增目标故障是与各个基础目标故障均不同的目标故障。从而,实现基础目标故障关联的状态变化信息的自动扩充,提高了获得目标故障的全面性。
作为一种实施例,各个新增目标故障,以及各个新增目标故障关联的状态变化信息可以作为参考容灾系统的参考状态变化信息,用于后续的测试过程,实现了故障场景的自动扩充,故障测试用例的自动扩充,提高了测试容灾系统的自动化程度。
基于图1的应用场景,请参见图7,下面对各设备之间的交互过程进行示例说明。以第一数据库1011作为触发目标故障的主数据库,第二数据库1012为与第一数据库1011互为备份的数据库,即上述情况一为例,进行介绍。
S701,测试设备103获取预先配置的目标故障配置信息。
测试设备103获取预先配置的目标故障配置信息的方法,与步骤S201中介绍的获取预先配置的目标故障配置信息的方法相同,在此不再赘述。
S702,测试设备103根据预先配置的目标故障配置信息,针对第一数据库1011触发目标故障。
测试设备103获得预先配置的目标故障配置信息之后,可以根据预先配置的目标故障配置信息,针对第一数据库1011的故障节点,根据故障类型进行配置,触发目标故障。触发目标故障的过程与步骤S201中介绍的触发目标故障的过程相同,在此不再赘述。
S703,测试设备103根据第一数据库1011的读写规则,生成模拟数据,并向第一数据库1011写入模拟数据,第一数据库1011与第二数据库1012之间进行主备复制。
测试设备103向第一数据库1011写入模拟数据的过程与步骤S202中介绍的过程相同,在此不再赘述。
测试设备103向第一数据库1011写入模拟数据之后,第一数据库1011可以向第二数据库1012复制写入的数据,例如,测试设备103每向第一数据库1011写入一个模拟数据,第一数据库1011可以向第二数据库复制该写入的数据;或者,测试设备103向第一数据库1011写入多个模拟数据之后,第一数据库1011定时向第二数据库复制该写入的多个数据等,实现第一数据库1011和第二数据库1012之间的数据同步。第一数据库1011也可以向其他备份数据库复制写入的数据,在此不再赘述。
S704,容灾设备102中待测试容灾系统对第一数据库1011和第二数据库1012进行主备切换处理,对第一数据库1011进行故障处理。
在第一数据库1011发生目标故障时,容灾设备102确定第一数据库1011无法写入数据。容灾设备102确定第二数据库1012为与第一数据库1011互为备份关系的数据库。容灾设备102对第一数据库1011和第二数据库1012进行主备切换处理。将第一数据库1011切换为备份数据库,将第二数据库1012切换为主数据库。在将第一数据库1011切换为备份数据库之后,对第一数据库1011进行故障处理。
S705,测试设备103获得第一数据库1011和第二数据库1012的状态变化信息。
在第一数据库1011发生目标故障时,测试设备103开始计时,并记录当前第一数据库1011和第二数据库1012的初始状态。如果在容灾设备102对第一数据库1011和第二数据库1012进行主备切换处理,以及对第一数据库1011进行故障处理的过程中,在预设时长内,第一数据库1011和第二数据库1012的状态未发生变化,那么确定第一数据库1011和第二数据库1012的当前状态为第一数据库1011和第二数据库1012的最终状态。如果在预设时长内,第一数据库1011和第二数据库1012的状态发生变化,那么记录第一数据库1011和第二数据库1012变化后的状态,并重新开始计时。直到容灾设备102对第一数据库1011和第二数据库1012主备切换处理完成,以及对第一数据库1011故障处理完成,获得第一数据库1011和第二数据库1012的状态变化信息。
例如,请参考图8,为数据库集群中各数据库状态变化的一种示意图。第一数据库1011为主数据库,第二数据库1012为与主数据库互为备份的数据库。请参考图9,为获得状态变化信息的原理示意图。
在测试设备103针对第一数据库1011触发目标故障之后,测试设备103开始计时,并记录第一数据库1011和第二数据库1012的初始状态,请参考图8(1),初始状态包括:业务状态为正常写入;数据库状态为第一数据库1011为主数据库,第二数据库1012为备份数据库;在线状态为第一数据库1011在线,第二数据库1012在线。
在容灾设备102中的待测试容灾系统对第一数据库1011和第二数据库1012进行主备切换的处理,以及对第一数据库1011进行故障处理的过程中,测试设备103确定在1分钟内,第一数据库1011和第二数据库1012的状态发生变化,测试设备103重新开始计时,并记录第一数据库1011和第二数据库1012的第一中间状态,请参考图8(2),第一中间状态包括:业务状态为无法写入;数据库状态为第一数据库1011为进程不存在,第二数据库1012为备份数据库;在线状态为第一数据库1011下线,第二数据库1012在线。
测试设备103确定在1分钟内,数据库集群中各数据库的状态再次发生变化,测试设备103重新开始计时,并记录第一数据库1011和第二数据库1012的第二中间状态,请参考图8(3),第二中间状态包括:业务状态为无法写入;数据库状态为第一数据库1011为进程不存在,第二数据库1012为主数据库;在线状态为第一数据库1011下线,第二数据库1012在线。
测试设备103确定在1分钟内,数据库集群中各数据库的状态再次发生变化,测试设备103重新开始计时,并记录第一数据库1011和第二数据库1012的第三中间状态,请参考图8(4),第三中间状态包括:业务状态为正常写入;数据库状态为第一数据库1011为备份数据库,第二数据库1012为主数据库;在线状态为第一数据库1011在线,第二数据库1012在线。
测试设备103确定在1分钟计时结束时,数据库集群中各数据库的状态不再发生变化,测试设备103将数据库集群中各数据库当前的状态作为最终状态,即参考图8(5)所示的状态。
测试设备103根据初始状态、第一中间状态、第二中间状态和最终状态,获得数据库集群中各数据库的状态变化信息。
S706,测试设备103确定状态变化信息和参考状态变化信息是否匹配。
测试设备103在确定状态变化信息和参考状态变化信息是否匹配的过程与步骤S203中介绍的内容相同,在此不再赘述。
S707,测试设备103确定第二数据库1012中所有写入的数据,与所有生成的模拟数据是否匹配。
测试设备103在确定所有写入的数据,与所有生成的模拟数据是否匹配的过程与步骤S203中介绍的内容相同,在此不再赘述。
S708,当状态变化信息和参考状态变化信息相匹配,且,第二数据库1012中所有写入的数据,与所有生成的模拟数据匹配,测试设备103确定待测试容灾系统成功处理目标故障。
测试设备103在确定待测试容灾系统成功处理目标故障的过程与步骤S203中介绍的内容相同,在此不再赘述。
基于同一发明构思,本申请实施例提供一种容灾系统测试装置,该装置相当于前文论述的测试设备103,能够实现前述容灾系统测试方法对应的功能,该装置用于对数据库集群进行故障处理。请参考图10,该装置包括触发模块1001和处理模块1002,其中:
触发模块1001:用于根据预先配置的目标故障配置信息,针对目标故障配置信息指示的至少一个数据库触发目标故障;
处理模块1002:用于获得待测试容灾系统对目标故障进行处理的过程中,数据库集群中各数据库的状态变化信息;以及,当状态变化信息和参考状态变化信息相匹配时,确定待测试容灾系统成功处理目标故障,其中,参考状态变化信息是预先根据参考容灾系统针对目标故障的成功处理过程确定的。
在一种可能的实施例中,预先配置的目标故障配置信息包括故障节点和故障类型,触发模块1001具体用于:
根据目标故障配置信息中故障节点所指示的至少一个数据库,按照故障类型对至少一个数据库中每个数据库进行配置,触发目标故障。
在一种可能的实施例中,处理模块1002还用于:
在获得待测试容灾系统对目标故障进行处理的过程中,数据库集群中各数据库的状态变化信息之后,针对各个目标故障中每两个目标故障关联的状态变化信息,确定两个状态变化信息之间的匹配程度;
基于各个匹配程度,对各个目标故障关联的状态变化信息进行归类,获得各个基础目标故障,以及各个基础目标故障关联的状态变化信息。
在一种可能的实施例中,预先配置的目标故障配置信息包括故障节点、故障类型和故障条件,故障条件表示配置每个故障节点的顺序或时间间隔,触发模块1001具体用于:
根据目标故障配置信息中故障节点所指示的至少一个数据库,按照故障条件所指示的顺序或时间间隔,依次根据故障类型对至少一个数据库中每个数据库进行配置,触发目标故障。
在一种可能的实施例中,处理模块1002还用于:
在获得待测试容灾系统对目标故障进行处理的过程中,数据库集群中各数据库的状态变化信息之后,针对各个目标故障关联的状态变化信息,确定每个目标故障关联的状态变化信息,与各个基础目标故障关联的状态变化信息之间的匹配程度;
基于各个匹配程度,确定匹配程度低于预设匹配阈值的目标故障关联的状态变化信息,获得各个新增目标故障关联的状态变化信息。
在一种可能的实施例中,处理模块1002还用于:
在针对目标故障配置信息指示的至少一个数据库触发目标故障之后,根据当前的主数据库的读写规则,生成模拟数据,并向当前的主数据库写入模拟数据,直到获得数据库集群中各数据库的状态变化信息时停止写入;
在确定待测试容灾系统成功处理目标故障之前,读取在针对目标故障配置信息指示的至少一个数据库触发目标故障之后写入的所有数据;确认写入的所有数据,与生成的模拟数据相匹配。
在一种可能的实施例中,处理模块1002具体用于:
在针对目标故障配置信息指示的至少一个数据库触发目标故障之后开始计时,并记录数据库集群中各数据库的初始状态;
若在预设时长内,确定数据库集群中各数据库的状态发生变化,则记录变化后的中间状态,并重新计时,直到在预设时长的结束时刻到达时,数据库集群中各数据库的状态均未发生变化,记录数据库集群中各数据库的最终状态;
根据所有记录的状态,获得数据库集群中各数据库的状态变化信息。
基于同一发明构思,本申请实施例提供一种计算机设备,下面对该计算机设备1100进行介绍。
请参照图11,上述容灾系统测试装置可以运行在计算机设备1100上,容灾系统测试程序的当前版本和历史版本以及容灾系统测试程序对应的应用软件可以安装在计算机设备1100上,该计算机设备1100包括显示单元1140、处理器1180以及存储器1120,其中,显示单元1140包括显示面板1141,用于显示由用户交互操作界面等。
在一种可能的实施例中,可以采用液晶显示器(Liquid Crystal Display,LCD)或有机发光二极管OLED(Organic Light-Emitting Diode)等形式来配置显示面板1141。
处理器1180用于读取计算机程序,然后执行计算机程序定义的方法,例如处理器1180读取容灾系统测试程序或文件等,从而在该计算机设备1100上运行容灾系统测试程序,在显示单元1140上显示对应的界面。处理器1180可以包括一个或多个通用处理器,还可包括一个或多个DSP(Digital Signal Processor,数字信号处理器),用于执行相关操作,以实现本申请实施例所提供的技术方案。
存储器1120一般包括内存和外存,内存可以为随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)等。外存可以为硬盘、光盘、USB盘、软盘或磁带机等。存储器1120用于存储计算机程序和其他数据,该计算机程序包括各客户端对应的应用程序等,其他数据可包括操作系统或应用程序被运行后产生的数据,该数据包括系统数据(例如操作系统的配置参数)和用户数据。本申请实施例中程序指令存储在存储器1120中,处理器1180执行存储器1120中的程序指令,实现前文图论述的任意的一种容灾系统测试方法。
上述显示单元1140用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与计算机设备1100的用户设置以及功能控制有关的信号输入等。具体地,本申请实施例中,该显示单元1140可以包括显示面板1141。显示面板1141例如触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在显示面板1141上或在显示面板1141的操作),并根据预先设定的程式驱动相应的连接装置。
在一种可能的实施例中,显示面板1141可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测玩家的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理器1180发来的命令并加以执行。
其中,显示面板1141可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。除了显示单元1140,计算机设备1100还可以包括输入单元1130,输入单元1130可以包括图形输入设备1131和其他输入设备1132,其中其他输入设备可以但不限于包括物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
除以上之外,计算机设备1100还可以包括用于给其他模块供电的电源1190、音频电路1160、近场通信模块1170和RF电路1110。计算机设备1100还可以包括一个或多个传感器1150,例如加速度传感器、光传感器、压力传感器等。音频电路1160具体包括扬声器1161和麦克风1162等,例如计算机设备1100可以通过麦克风1162采集用户的声音,进行相应的操作等。
作为一种实施例,处理器1180的数量可以是一个或多个,处理器1180和存储器1120可以是耦合设置,也可以是相对独立设置。
作为一种实施例,图11中的处理器1180可以用于实现如图10中的触发模块1001和处理模块1002的功能。
作为一种实施例,图11中的处理器1180可以用于实现前文论述的测试设备103对应的功能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种容灾系统测试方法,其特征在于,所述容灾系统用于对数据库集群进行故障处理,所述测试方法包括:
根据预先配置的目标故障配置信息,针对所述目标故障配置信息指示的至少一个数据库触发目标故障;
获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息;
当所述状态变化信息和参考状态变化信息相匹配时,确定所述待测试容灾系统成功处理所述目标故障,其中,所述参考状态变化信息是预先根据参考容灾系统针对目标故障的成功处理过程确定的。
2.根据权利要求1所述的方法,其特征在于,所述预先配置的目标故障配置信息包括故障节点和故障类型,根据预先配置的目标故障配置信息,针对所述目标故障配置信息指示的至少一个数据库触发目标故障,具体包括:
根据所述目标故障配置信息中故障节点所指示的至少一个数据库,按照所述故障类型对所述至少一个数据库中每个数据库进行配置,触发目标故障。
3.根据权利要求2所述的方法,其特征在于,在获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息之后,还包括:
针对各个目标故障中每两个目标故障关联的状态变化信息,确定两个状态变化信息之间的匹配程度;
基于各个匹配程度,对各个目标故障关联的状态变化信息进行归类,获得各个基础目标故障,以及各个基础目标故障关联的状态变化信息。
4.根据权利要求1所述的方法,其特征在于,所述预先配置的目标故障配置信息包括故障节点、故障类型和故障条件,所述故障条件表示配置每个故障节点的顺序或时间间隔,根据预先配置的目标故障配置信息,针对所述目标故障配置信息指示的至少一个数据库触发目标故障,具体包括:
根据所述目标故障配置信息中故障节点所指示的至少一个数据库,按照故障条件所指示的顺序或时间间隔,依次根据所述故障类型对至少一个数据库中每个数据库进行配置,触发目标故障。
5.根据权利要求4所述的方法,其特征在于,在获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息之后,还包括:
针对各个目标故障关联的状态变化信息,确定每个目标故障关联的状态变化信息,与各个基础目标故障关联的状态变化信息之间的匹配程度;
基于各个匹配程度,确定匹配程度低于预设匹配阈值的目标故障关联的状态变化信息,获得各个新增目标故障,以及各个新增目标故障关联的状态变化信息。
6.根据权利要求1所述的方法,其特征在于,在针对所述目标故障配置信息指示的至少一个数据库触发目标故障之后,还包括:
根据当前的主数据库的读写规则,生成模拟数据,并向当前的主数据库写入模拟数据,直到获得所述数据库集群中各数据库的状态变化信息时停止写入;
所述确定所述待测试容灾系统成功处理所述目标故障之前,还包括:
读取在针对所述目标故障配置信息指示的至少一个数据库触发目标故障之后写入的所有数据;
确认所述写入的所有数据,与生成的模拟数据相匹配。
7.根据权利要求1~6任一项所述的方法,其特征在于,获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息,具体包括:
在针对所述目标故障配置信息指示的至少一个数据库触发目标故障之后开始计时,并记录所述数据库集群中各数据库的初始状态;
若在预设时长内,确定所述数据库集群中各数据库的状态发生变化,则记录变化后的中间状态,并重新计时,直到在预设时长的结束时刻到达时,所述数据库集群中各数据库的状态均未发生变化,记录所述数据库集群中各数据库的最终状态;
根据所有记录的状态,获得所述数据库集群中各数据库的状态变化信息。
8.一种容灾系统测试装置,其特征在于,所述容灾系统用于对数据库集群进行故障处理,所述测试装置包括:
触发模块:用于根据预先配置的目标故障配置信息,针对所述目标故障配置信息指示的至少一个数据库触发目标故障;
处理模块:用于获得所述待测试容灾系统对所述目标故障进行处理的过程中,所述数据库集群中各数据库的状态变化信息;以及,当所述状态变化信息和参考状态变化信息相匹配时,确定所述待测试容灾系统成功处理所述目标故障,其中,所述参考状态变化信息是预先根据参考容灾系统针对目标故障的成功处理过程确定的。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1~7中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1~7中任一项所述的方法。
CN202011121934.2A 2020-10-20 2020-10-20 一种容灾系统测试方法、装置、设备及存储介质 Active CN112214411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011121934.2A CN112214411B (zh) 2020-10-20 2020-10-20 一种容灾系统测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011121934.2A CN112214411B (zh) 2020-10-20 2020-10-20 一种容灾系统测试方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112214411A true CN112214411A (zh) 2021-01-12
CN112214411B CN112214411B (zh) 2024-05-14

Family

ID=74055917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011121934.2A Active CN112214411B (zh) 2020-10-20 2020-10-20 一种容灾系统测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112214411B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094266A (zh) * 2021-04-06 2021-07-09 中国工商银行股份有限公司 一种容器数据库的故障测试方法、平台及设备
CN113708993A (zh) * 2021-08-13 2021-11-26 视联动力信息技术股份有限公司 一种异常状态测试方法、装置、终端设备和存储介质
CN113727381A (zh) * 2021-08-31 2021-11-30 中国联合网络通信集团有限公司 网络容灾方法、装置、系统及存储介质
CN114802283A (zh) * 2022-06-27 2022-07-29 宁波均胜智能汽车技术研究院有限公司 智能驾驶故障处理系统及方法、智能车辆、可读存储介质
CN115904663A (zh) * 2022-12-02 2023-04-04 滨州心若网络科技有限公司 一种基于数据库的信息容灾方法、系统及云平台

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100077257A1 (en) * 2008-09-24 2010-03-25 At&T Intellectual Property I, L.P. Methods for disaster recoverability testing and validation
US20110016457A1 (en) * 2009-07-14 2011-01-20 International Business Machines Corporation Fault detection and localization in dynamic software applications requiring user inputs and persistent states
US20170093629A1 (en) * 2015-09-25 2017-03-30 EMC IP Holding Company LLC Method and apparatus for presenting status of storage cluster
US20180032688A1 (en) * 2013-03-18 2018-02-01 Tuomas Sandholm Edge tests in barter exchanges
CN107704392A (zh) * 2017-09-30 2018-02-16 华为技术有限公司 一种测试用例的处理方法及服务器
US20180165185A1 (en) * 2016-12-08 2018-06-14 Sap Se Automatic testing of disaster recovery scenarios in cloud environments
CN108664391A (zh) * 2018-03-13 2018-10-16 北京邮电大学 一种面向程序状态的故障分类方法、变异测试方法及设备
KR20180134677A (ko) * 2017-06-09 2018-12-19 슈어소프트테크주식회사 결함 주입 테스트 방법 및 장치
WO2019152404A1 (en) * 2018-02-02 2019-08-08 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery test
CN110209556A (zh) * 2018-04-04 2019-09-06 腾讯科技(深圳)有限公司 容灾测试方法、支付方法、装置、介质及服务设备
US20200050522A1 (en) * 2018-08-13 2020-02-13 Remote DBA Experts, LLC Highly available cloud-based database services
CN111694706A (zh) * 2020-05-08 2020-09-22 广州微算互联信息技术有限公司 一种云手机故障处理方法、系统和存储介质
CN111782522A (zh) * 2020-06-29 2020-10-16 Oppo广东移动通信有限公司 追踪消息的输出方法、电子设备及存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100077257A1 (en) * 2008-09-24 2010-03-25 At&T Intellectual Property I, L.P. Methods for disaster recoverability testing and validation
US20110016457A1 (en) * 2009-07-14 2011-01-20 International Business Machines Corporation Fault detection and localization in dynamic software applications requiring user inputs and persistent states
US20180032688A1 (en) * 2013-03-18 2018-02-01 Tuomas Sandholm Edge tests in barter exchanges
US20170093629A1 (en) * 2015-09-25 2017-03-30 EMC IP Holding Company LLC Method and apparatus for presenting status of storage cluster
US20180165185A1 (en) * 2016-12-08 2018-06-14 Sap Se Automatic testing of disaster recovery scenarios in cloud environments
KR20180134677A (ko) * 2017-06-09 2018-12-19 슈어소프트테크주식회사 결함 주입 테스트 방법 및 장치
CN107704392A (zh) * 2017-09-30 2018-02-16 华为技术有限公司 一种测试用例的处理方法及服务器
WO2019152404A1 (en) * 2018-02-02 2019-08-08 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery test
CN108664391A (zh) * 2018-03-13 2018-10-16 北京邮电大学 一种面向程序状态的故障分类方法、变异测试方法及设备
CN110209556A (zh) * 2018-04-04 2019-09-06 腾讯科技(深圳)有限公司 容灾测试方法、支付方法、装置、介质及服务设备
US20200050522A1 (en) * 2018-08-13 2020-02-13 Remote DBA Experts, LLC Highly available cloud-based database services
CN111694706A (zh) * 2020-05-08 2020-09-22 广州微算互联信息技术有限公司 一种云手机故障处理方法、系统和存储介质
CN111782522A (zh) * 2020-06-29 2020-10-16 Oppo广东移动通信有限公司 追踪消息的输出方法、电子设备及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094266A (zh) * 2021-04-06 2021-07-09 中国工商银行股份有限公司 一种容器数据库的故障测试方法、平台及设备
CN113708993A (zh) * 2021-08-13 2021-11-26 视联动力信息技术股份有限公司 一种异常状态测试方法、装置、终端设备和存储介质
CN113727381A (zh) * 2021-08-31 2021-11-30 中国联合网络通信集团有限公司 网络容灾方法、装置、系统及存储介质
CN113727381B (zh) * 2021-08-31 2023-06-27 中国联合网络通信集团有限公司 网络容灾方法、装置、系统及存储介质
CN114802283A (zh) * 2022-06-27 2022-07-29 宁波均胜智能汽车技术研究院有限公司 智能驾驶故障处理系统及方法、智能车辆、可读存储介质
CN114802283B (zh) * 2022-06-27 2022-11-01 宁波均胜智能汽车技术研究院有限公司 智能驾驶故障处理系统及方法、智能车辆、可读存储介质
CN115904663A (zh) * 2022-12-02 2023-04-04 滨州心若网络科技有限公司 一种基于数据库的信息容灾方法、系统及云平台
CN115904663B (zh) * 2022-12-02 2024-01-05 中雄世纪征信有限公司 一种基于数据库的信息容灾方法、系统及云平台

Also Published As

Publication number Publication date
CN112214411B (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
CN112214411B (zh) 一种容灾系统测试方法、装置、设备及存储介质
US20220206889A1 (en) Automatic correlation of dynamic system events within computing devices
KR102268355B1 (ko) 클라우드 배치 기반구조 검증 엔진
TWI608419B (zh) 軟體相容性預先檢測方法與其系統
US10048978B2 (en) Apparatus and method for identifying a virtual machine having changeable settings
WO2017165018A1 (en) Automated event id field analysis on heterogeneous logs
CN110209684A (zh) 数据库ddl变更操作的跟踪方法、装置、系统及介质
CN107656705B (zh) 一种计算机存储介质和一种数据迁移方法、装置及系统
CN112131237A (zh) 数据同步方法、装置、设备及计算机可读介质
CN110178121A (zh) 一种数据库的检测方法及其终端
CN111177165A (zh) 数据一致性检测的方法、装置及设备
US9998544B2 (en) Synchronization testing of active clustered servers
CN112256593B (zh) 一种程序处理方法、装置、计算机设备和可读存储介质
US20230350769A1 (en) Method and apparatus for generating log data having increased filterability
Han et al. Fingerprinting the checker policies of parallel file systems
CN111176887A (zh) MySQL误操作回滚方法、设备及系统
CN113190531A (zh) 一种数据库迁移方法、装置、设备和存储介质
CN110928945A (zh) 一种针对数据库的数据处理方法及装置,数据处理系统
CN111209138A (zh) 数据存储系统的运维方法及装置
CN113849328A (zh) 一种容灾系统的管理方法和装置
CN114003497A (zh) 业务系统的测试方法、装置、设备及存储介质
US20130013558A1 (en) Semantic checks for synchronization: imposing ordinality constraints for relationships via learned ordinality
CN112463883A (zh) 基于大数据同步平台的可靠性监控方法、装置、设备
CN101882159A (zh) 数据库的检测方法及装置
JP2005250819A (ja) レプリケーションdb整合性確認方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant