数据库测试方法及装置制造方法及图纸

技术编号:13073966 阅读:192 留言:0更新日期:2016-03-30 09:53
一种数据库测试方法及装置,所述方法包括:停止备份数据库对主数据库的复制,所述备份数据库为所述主数据库的备份数据库;获取在预设时间内对所述主数据库的第一数据操作请求;根据所获取的在预设时间内对所述主数据库的第一数据操作请求,向所述备份数据库发起第二数据操作请求;当备份数据库根据所接收的第二数据操作请求执行相应的数据操作时,对于备份数据库进行数据库测试,得到数据库测试结果。上述的方案可以有效提高数据库测试结果的准确性。

【技术实现步骤摘要】

本申请涉及数据库
,特别是涉及一种数据库测试方法及装置
技术介绍
MySQL,是一种开放源代码的关系型数据库管理系统,属于中、小型关系型数据库管理系统,它将数据保存在不同的表中,而不是将所有数据放在一起,因此可以提高数据处理速度和灵活性。MySQL数据库系统,其使用最常用的数据库管理语言一结构化查询语言(Structured Query Language,简称SQL)进行数据库管理。MySQL数据库开放源码,具有体积小、速度快、成本低,尤其是这一特点,使得MySQL为一般的中小型网站的开发者所喜爱,将其作为网站数据库。MySQL数据库性能测试可以帮助用户了解MySQL数据库的性能。现有技术中,由于MySQL性能测试一般采用随机程序生成的样本数据进行数据库性能测试,因此,测试结果无法准确地反映MySQL数据库的真实性能。
技术实现思路
本申请实施例解决的是如何进行数据库测试,以得到真实准确地数据库测试结果。为解决上述问题,本申请实施例提供了一种数据库测试方法,所述方法包括:停止备份数据库对主数据库的复制;获取在预设时间内对主数据库的第一数据操作请求;根据所获取的所述第一数据操作请求,向备份数据库发起相应的第二数据操作请求,所述备份数据库为所述主数据库的备份数据库;当所述备份数据库根据所述相应的第二数据操作请求执行相应的数据操作时,对所述备份数据库进行测试。可选地,所述获取在预设时间内对于主数据库的第一数据操作请求包括:获取预设时间内所述主数据库所接收的第一数据操作请求;存储所获取的第一数据操作请求,生成压力文本文件。可选地,所述根据所获取的在预设时间内对于主数据库的第一数据操作请求,向所述备份数据库发起第二数据操作请求,包括:读取所述压力文本文件中存储的第一数据操作请求;根据所读取的压力文本文件中存储的第一数据操作请求,向所述备份数据库发起相应的第二数据操作请求,其中,向备份数据库发起的相应的第二数据操作请求与所读取的压力文本文件中存储的第一数据操作请求成比例。可选地,所述方法还包括:当数据库测试结束时,对所述备份数据库进行数据回滚。可选地,所述对所述备份数据库进行数据回滚,包括:获取并解析所述备份数据库在预定时间内的二进制日志文件,得到明文日志文件,所述明文日志文件中包括预定时间内所述备份数据库的事务的信息,所述事务信息中包括数据操作语句;将所述事务信息中的数据操作语句替换为所述数据操作语句的反向操作语句;将数据操作语句替换为反向数据操作语句的事务按照时间顺序倒置;将所述事务中的反向数据操作语句按照所述反向数据操作语句相应的数据操作语句的时间顺序进行倒置,得到回滚日志文件,所述二进制回滚日志文件被所述备份数据库执行,进行数据回滚。可选地,所述方法还包括:将经过数据回滚的备份数据库与所述主数据库进行同止/J/ ο可选地,所述数据操作语句包括:数据删除语句、数据插入语句和数据更新语句中至少一种。可选地,所述主数据库和所述备份数据库均为MySQL数据库。本申请实施例还提供了一种数据库测试装置,所述装置包括:停止单元,适于停止备份数据库对主数据库的复制;获取单元,适于获取在预设时间内对主数据库的第一数据操作请求;请求单元,适于根据所获取的所述第一数据操作请求,向所述备份数据库发起第二数据操作请求;测试单元,适于当所述备份数据库根据所述相应的第二数据操作请求执行相应的数据操作时,对所述备份数据库进行测试。可选地,所述获取单元包括:获取子单元,适于获取预设时间内所述主数据库所接收的第一数据操作请求;存储子单元,适于存储所获取的第一数据操作请求,生成压力文本文件。可选地,所述请求单元包括:读取子单元,适于读取所述压力文本文件中存储的第一数据操作请求;请求子单元,适于根据所读取的压力文本文件中的数据操作请求,向所述备份数据库发起相应的第二数据操作请求,其中,向所述备份数据库发起的数据操作请求与所读取的压力文本文件中存储的第一数据操作请求成比例。可选地,所述装置还包括:回滚单元,适于当数据库测试结束时,对所述备份数据库进行数据回滚。可选地,所述回滚单元包括:解析子单元,适于获取并解析所述备份数据库在预定时间内的二进制日志文件,得到明文日志文件,所述明文日志文件中包括预定时间内所述备份数据库的事务的信息,所述事务信息中包括数据操作语句;替换子单元,适于将所述事务信息中的数据操作语句替换为所述数据操作语句的反向操作语句;第一倒置子单元,适于将数据操作语句替换为反向数据操作语句的事务按照时间顺序倒置;第二倒置子单元,适于将所述事务中的反向数据操作语句按照所述反向数据操作语句相应的数据操作语句的时间顺序进行倒置,得到回滚日志文件,所述回滚日志文件被所述备份数据库执行,进行数据回滚。可选地,所述装置还包括:同步单元,适于将经过数据回滚的备份数据库与所述主数据库进行同步。可选地,所述数据操作语句包括:数据删除语句、数据插入语句和数据更新语句中至少一种。可选地,所述主数据库和所述备份数据库均为MySQL数据库。与现有技术相比,本申请实施例的技术方案具有以下的优点:上述的方案,由于通过获取预设时间内主数据库的第一数据操作请求,并将所获取的第一数据操作请求向所述主数据库的备份数据库发起第二数据操作请求,在备份数据库根据所述数据操作请求执行数据操作的过程中进行数据库测试,由于采用的数据操作请求从真实运行过程的主数据库中获取,因此,可以真实地反映数据库所承受的数据操作压力,可以有效提高数据库测试结果的准确性。进一步地,由于在数据库测试结束时对于备份数据库进行数据回滚,并与主数据库中的数据进行同步,使得数据库测试不会对数据库的运行产生任何影响。【附图说明】图1是本申请实施例中的一种数据库测试方法的流程图;图2是本申请实施例中另一种数据库测试方法的流程图;图3是本申请实施例中的一种数据库测试装置的结构示意图;图4是本申请实施例中的另一种数据库测试装置的结构示意图;图5是本申请实施例中的数据库测试装置中的回滚子单元的结构示意图。【具体实施方式】现有技术中,MySQL数据库测试通常采用如下的做法:配置与线上数据库相同的机器;将线上的数据表同步到性能数据库上;按照线上业务数据规则通过随机程序生成和线上相同基本等量的样本数据。了解业务得到业务逻辑,按照这样的逻辑通过压测工具进行压测。上述的数据库测试方法,其所使用的测试数据是随机生成的,而随机生成的测试数据在数据量、数据分布等方面与线上数据库的真实数据存在着差异,且配置出来的测试场景也无法反应真实的数据库运行状况。因此,采用这种测试方法得到的数据库测试结果将无法确切地反映数据库的真实性能。为解决上述问题,本申请实施例通过获取主数据库在线上运行过程中所接收的第一数据操作请求,并将根据第一数据操作请求将第二数据操作请求应用于所述主数据库的备份数据库,在该备份数据库处理第二数据操作请求的过程中进行数据库测试,可以有效提高数据库测试结果的准确性。在此,本领域技术人员应能理解,第一数据操作请求、第二数据操作请求并不限定该两数据操作请求的时间顺序或执行顺序,而是旨在区分分别作用于主数据库、备份数据库的数据操作请求。为使本申请的上述目的、特征和优点能够更为当前第1页1 2&nb本文档来自技高网...

【技术保护点】
一种数据库测试方法,其特征在于,包括:停止备份数据库对主数据库的复制,获取在预设时间内对所述主数据库的第一数据操作请求;根据所获取的所述第一数据操作请求,向所述备份数据库发起相应的第二数据操作请求;当所述备份数据库根据所述相应的第二数据操作请求执行相应的数据操作时,对所述备份数据库进行测试。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈锦赋李圣陶和利孙莎莎戴其量
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1