CN101789002A - 一种服务器上数据库兼容性的测试的装置及方法 - Google Patents

一种服务器上数据库兼容性的测试的装置及方法 Download PDF

Info

Publication number
CN101789002A
CN101789002A CN201010100359A CN201010100359A CN101789002A CN 101789002 A CN101789002 A CN 101789002A CN 201010100359 A CN201010100359 A CN 201010100359A CN 201010100359 A CN201010100359 A CN 201010100359A CN 101789002 A CN101789002 A CN 101789002A
Authority
CN
China
Prior art keywords
test
data
database
module
server
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
CN201010100359A
Other languages
English (en)
Other versions
CN101789002B (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry 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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN 201010100359 priority Critical patent/CN101789002B/zh
Publication of CN101789002A publication Critical patent/CN101789002A/zh
Application granted granted Critical
Publication of CN101789002B publication Critical patent/CN101789002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种服务器上数据库兼容性的测试的装置及方法;方法包括:在服务器上进行建库,并采用生成的数据或实际数据进行数据库的数据填充;模拟数据库管理员的操作对数据库所提供的功能组件进行调整测试;删除所述数据库中的数据,并测试删除后数据库是否能访问,以及是否能恢复;模拟多个客户端对所述数据库的访问,以测试服务器的极限性能,测试硬件平台所能提供的最大并发数和事务处理能力;根据所述功能组件测试模块、容错模块及压力测试模块的测试结果,判断所建立的数据库与所述服务器是否兼容。本发明及时、准确、灵活性强、不需要人值守,能基于真实的数据库协议进行测试。

Description

一种服务器上数据库兼容性的测试的装置及方法
技术领域
本发明涉及数据库领域,尤其涉及一种服务器上数据库兼容性测试的装置及方法。
背景技术
当前,由于硬件产品和软件更新的不同步以及软件产品的性能功能表现依赖于硬件平台的支持的问题,这些都要求高端服务器研发人员在对服务器设计研发过程中需要对不同版本不同平台的关系型数据库产品进行兼容性测试,以确保该数据库产品能够在高端服务器平台上兼容。另外,在服务器采购的竞标型测试或者新产品测试过程中,客户需要了解基于某个应用的数据库产品在该服务器平台上的性能表现,判定新硬件平台能否满足客户业务的需要和选择数据库产品时该硬件平台能否支持。
现有的技术中往往通过一个模型数据进行模拟,不能代表实际意义,所得测试结果与实际偏离较大,参考价值有限;而且实现时只能按照固定参数进行。另外,现有技术中不能对数据库的容错性能进行测试。
发明内容
本发明要解决的技术问题是提供一种服务器上数据库兼容性测试的技术方法,及时、准确、灵活性强、不需要人值守,能基于真实的数据库协议进行测试。
为了解决上述问题,本发明提供了一种服务器上数据库兼容性测试的装置,包括:建库模块、功能组件测试模块、容错模块、压力测试模块及数据收集模块;
所述建库模块用于在服务器上进行建库,并采用生成的数据或实际数据进行数据库的数据填充,完成后启动所述功能组件测试模块;
所述功能组件测试模块用于模拟数据库管理员的操作对数据库所提供的功能组件进行调整测试;测试完毕后启动所述容错模块或压力测试模块;
所述容错模块用于删除所述数据库中的数据,并测试删除后数据库是否能访问,以及是否能恢复;如果由压力测试模块启动,则测试完毕后启动所述数据收集模块,如果由功能组件测试模块启动,则测试完毕后启动所述压力测试模块;
所述压力测试模块用于模拟多个客户端对所述数据库的访问,以测试服务器的极限性能,测试硬件平台所能提供的最大并发数和事务处理能力;如果由容错模块启动,则测试完毕后启动所述数据收集模块,如果由功能组件测试模块启动,则测试完毕后启动所述容错模块;
所述数据收集模块用于根据所述功能组件测试模块、容错模块及压力测试模块的测试结果,判断所建立的数据库与所述服务器是否兼容。
进一步地,所述建库模块具体包括:
文件创建单元、用户管理单元及数据生成单元;
所述文件创建单元用于根据硬件配置确定数据库表空间及数据文件的分布,然后创建表空间和数据文件,创建完毕后启动所述用户管理单元;
所述用户管理单元用于创建进行用户访问的用户,并赋予相应的权限;完成后启动所述数据生成单元;
所述数据生成单元用于进行数据的加载;利用系统数据生成器自动生成测试数据,或直接加载用户的真实数据。
进一步地,所述功能组件测试模块具体包括:
参数测试单元、语句测试单元、接口测试单元及模式切换测试单元;
所述参数测试单元用于进行内存参数的调整并测试,以及测试锁数量、后台进程数据量、日志模式,测试完毕后启动所述语句测试单元;
所述语句测试单元用于在数据库临时表空间区进行数据库的DDL和DML语句测试;测试完毕后启动所述接口测试单元;
所述接口测试单元用于对数据库数据进行存储过程、触发器函数等接口的测试,测试完毕后启动所述模式切换测试单元;
所述模式切换测试单元用于保存不同数据库协议对应的切换模式,根据不同的协议选择对应的切换模式,在数据库底层调用存储过程或者函数直接切入到模式切换当中;然后系统睡眠一段时间后,再进行联机切换,模式切换完成通过数据传输查看日志验证是否成功。
进一步地,所述容错模块具体包括:
数据损坏测试单元及恢复测试单元;
所述数据损坏测试单元用于以root身份强制删除数据文件,查看数据库是否能对外提供访问;根据建库模块中创建的用户名密码进行非交互式登录验证,同时将反馈结果输出的错误数据流中,如果错误日志非空,则表明破坏性测试成功;完毕后启动所述恢复测试单元;
所述恢复测试单元用于对数据文件利用备份数据对数据库执行全库冷恢复;在进行恢复完成后,进行数据恢复成功的验证,首先根据数据建库模块的统计数据存放到结构体中,该结构体包含数据量大小,表的个数,每个表中的记录数成员变量,通过对恢复前和恢复后的结构体进行比较来判定数据恢复是否成功。
进一步地,所述压力测试模块具体包括:
加压测试单元及性能收集单元;
所述加压测试单元用于建立一个并发请求发送梯度数组和每个请求所携带的客户访问量,根据数组中的记录并发的发送请求,然后请求所述性能收集单元指示;根据所述性能收集单元的继续指示,按照预定的步长递增生成访问的请求数量,并请求所述性能收集单元指示;根据所述性能收集单元的停止指示,保存当前的访问请求的个数作为最大并发数;
所述性能收集单元用于监控所述服务器中各资源的利用率,包括处理器,磁盘,内存,磁盘IO使用情况;当收到所述加压测试单元的请求后,如果所述利用率为递增状态,则发送继续指示给所述加压测试单元,否则发送停止指示,并保存当前的利用率。
本发明还提供了一种服务器上数据库兼容性测试的方法,包括:
A、在服务器上进行建库,并采用生成的数据或实际数据进行数据库的数据填充;
B、模拟数据库管理员的操作对数据库所提供的功能组件进行调整测试;先进行C1、C2中任一步,完成后进行另一步,C1、C2都完成后进行D;
C1、删除所述数据库中的数据,并测试删除后数据库是否能访问,以及是否能恢复;
C2、模拟多个客户端对所述数据库的访问,以测试服务器的极限性能,测试硬件平台所能提供的最大并发数和事务处理能力;
D、根据所述功能组件测试模块、容错模块及压力测试模块的测试结果,判断所建立的数据库与所述服务器是否兼容。
进一步地,所述步骤A具体包括:
根据硬件配置确定数据库表空间及数据文件的分布,然后创建表空间和数据文件;
创建进行用户访问的用户,并赋予相应的权限;
进行数据的加载;利用系统数据生成器自动生成测试数据,或直接加载用户的真实数据。
进一步地,所述步骤B具体包括:
进行内存参数的调整并测试,以及测试锁数量、后台进程数据量、日志模式;
在数据库临时表空间区进行数据库的DDL和DML语句测试;
对数据库数据进行存储过程、触发器函数等接口的测试;
保存不同数据库协议对应的切换模式,根据不同的协议选择对应的切换模式,在数据库底层调用存储过程或者函数直接切入到模式切换当中;然后系统睡眠一段时间后,再进行联机切换,模式切换完成通过数据传输查看日志验证是否成功。
进一步地,所述步骤C1具体包括:
以root身份强制删除数据文件,查看数据库是否能对外提供访问;根据步骤A中创建的用户名密码进行非交互式登录验证,同时将反馈结果输出的错误数据流中,如果错误日志非空,则表明破坏性测试成功;
对数据文件利用备份数据对数据库执行全库冷恢复;在进行恢复完成后,进行数据恢复成功的验证,首先根据数据建库模块的统计数据存放到结构体中,该结构体包含数据量大小,表的个数,每个表中的记录数成员变量,通过对恢复前和恢复后的结构体进行比较来判定数据恢复是否成功。
进一步地,所述步骤C2具体包括:
建立一个并发请求发送梯度数组和每个请求所携带的客户访问量,根据数组中的记录并发的发送请求;监控所述服务器中各资源的利用率,包括处理器,磁盘,内存,磁盘IO使用率;
如果所述利用率为递增状态,则按照预定的步长递增生成访问的请求数量,否则保存当前的利用率,保存当前的访问请求的个数作为最大并发数。
本发明的技术方案可以根据用户的业务数据灵活的定制数据库的业务模型,保证较好的反映硬件平台所提供的数据库性能,能最大可能地覆盖数据库兼容性测试的所有空间,基于真实的数据库协议进行测试,具有测试范围广,测试数据准确的特点;基于模块化设计,可移植性强;可以针对不同的业务应用进行性能模拟测试,根据用户的业务需求动态修改,实现灵活;基于标准的shell脚本实现,自动化程度高,几乎不需要测试人员干预;具备内存参数调整、数据库模式切换和容错测试功能;及时性准确性主要表现在采用数据动态加载和卸载的方法实现基于主流数据库协议进行测试,实现过程中,用户可以利用生产库中的数据进行加载测试,可以准确反映该数据库在linux高端容错服务器平台上的兼容性问题;本发明的技术方案适合于高端容错服务器研发人员通过该技术方案快速定位硬件平台与数据库平台的兼容性问题,同时又适合于测试人员评估系统平台的整体性能,譬如数据库的并发数,事物处理能力等等,以便查找系统性能瓶颈,释放整个平台的性能。
附图说明
图1为实施例一的数据库兼容性测试的装置的示意框图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一,一种服务器上数据库兼容性测试的装置,如图1所示,包括:
建库模块、功能组件测试模块、容错模块、压力测试模块及数据收集模块;
所述建库模块用于在服务器上进行建库,并采用生成的数据或实际数据进行数据库的数据填充,完成后启动所述功能组件测试模块;
所述功能组件测试模块用于模拟数据库管理员的日常操作对数据库所提供的功能组件进行调整测试,以验证数据库功能组件能否正常运行;测试完毕后启动所述容错模块或压力测试模块;
所述容错模块用于删除所述数据库中的数据,并测试删除后数据库是否能访问,以及是否能恢复,以模拟介质故障和数据灾难发生时,实施数据挽救和恢复,测试数据库的容错性;如果由压力测试模块启动,则测试完毕后启动所述数据收集模块,如果由功能组件测试模块启动(此为图1中所示的情况),则测试完毕后启动所述压力测试模块;
所述压力测试模块用于模拟多个客户端对所述数据库的访问,以测试服务器的极限性能,测试硬件平台所能提供的最大并发数和事务处理能力;如果由容错模块启动,则测试完毕后启动所述数据收集模块,如果由功能组件测试模块启动,则测试完毕后启动所述容错模块;
所述数据收集模块用于根据所述功能组件测试模块、容错模块及压力测试模块的测试结果,判断所建立的数据库与所述服务器是否兼容。如果兼容,则说明兼容性测试通过,否则说明未通过。
本实施例中,所述服务器为linux高端容错服务器,所述数据库为关系型数据库。实际应用中,也适合于其他的服务器平台和数据库。
本实施例中,所述建库模块根据所要测试的数据库类型,按照数据库的基准规模进行建库。
本实施例中,所述功能组件测试模块还可以对其它一些相关参数进行测试;进一步地还可以调动态修改配置参数文件、数据库运行模式及模拟数据库的DDL操作和DML操作等业务逻辑,尽最大可能覆盖关系型数据库所能提供的功能空间。
本实施例中,所述建库模块具体可以但不限于包括:文件创建单元、用户管理单元及数据生成单元。
所述文件创建单元用于在服务器和操作系统完全配置完毕的前提下,根据硬件配置(包括磁盘、处理器、内存等详细信息)确定数据库表空间及数据文件的分布,然后创建表空间和数据文件(比如对于关系型数据库,可利用其提供的sql可执行文件创建),创建完毕后启动所述用户管理单元;
所述用户管理单元用于创建进行用户访问的用户,并赋予相应的权限,譬如connect、resource、DBA权限等;完成后启动所述数据生成单元;
所述数据生成单元用于进行数据的加载;所述数据加载包括两种方式,一是可以利用系统数据生成器自动生成测试数据,也可以通过用户选择的方法直接加载用户的真实数据,通过加载用户的真实数据,可以真实反应用户的实际业务情况,使数据类型更能反应真实业务需求;用户的真实数据采用文本文件的格式存储。
本实施例中,所述功能组件测试模块具体可以但不限于包括:参数测试单元、语句测试单元、接口测试单元及模式切换测试单元。
所述参数测试单元用于进行内存参数的调整并测试,以及测试锁数量、后台进程数据量、日志模式等参数,测试完毕后启动所述语句测试单元;
锁数量,后台进程数据量,日志模式等参数的调整是直接在线调整。
在调整内存参数的过程中,首先获取整个各系统的主要硬件配置(处理器,内存)以及各资源占用情况,然后根据内置的规则建立一个阈值数组,在数组中保存每次参数调整的具体值,顺序进行调整。其中的规则可以按照初始态,在保证处理器利用率小于40%的阈值时,调整数据缓冲区为内存总量的50%,日志缓冲区,共享区页进行相应加大,具体加大的数值依赖于采用的算法是平均置法还是调整步长方法。在结束态设置规则为处理器利用率小于80%,数据库共享内存占系统内存的80%时停止调整。在数组每下移一次,读取一个值时,系统自动调用触发器进行调整测试状态改变,同时将结果记录到日志文件中。具体规则的设置依赖于测试的需求。
所述语句测试单元用于在数据库临时表空间区进行数据库的DDL和DML语句测试;这样的好处是不影响数据库的测试数据,数据库重启后临时表空间数据自动撤销;测试完毕后启动所述接口测试单元;
所述接口测试单元用于对数据库数据进行存储过程、触发器函数等接口的测试,测试完毕后启动所述模式切换测试单元;
所述模式切换测试单元用于保存不同数据库协议对应的切换模式,根据不同的协议选择对应的切换模式,在数据库底层调用存储过程或者函数直接切入到模式切换当中;然后系统睡眠一段时间后,再进行联机切换,模式切换完成通过数据传输查看日志验证是否成功;此过程中需要不断重启数据库。
数据库的模式切换测试主要是考虑到数据库可以以不同的模式运行,譬如informix数据库可以运行在静态、单用户、联机模式,而oracle可以运行在nomount、mount、open这三种模式;数据库能够运行在不同的状态下对于容错服务器是至关重要的,它为后期故障的修复、数据恢复提供了一个外界接口。
实际应用中,上述几个单元的启动顺序也可以调换。
本实施例中,所述容错模块具体可以但不限于包括:数据损坏测试单元及恢复测试单元;
所述数据损坏测试单元用于以root身份强制删除数据文件,查看数据库是否能对外提供访问;具体是通过在shell中嵌入访问数据库的接口,譬如测试oracle,调用sqlplus,测试informix数据库,调用DB-access,然后根据建库模块中创建的用户名密码进行非交互式登录验证,同时将反馈结果输出的错误数据流中,如果错误日志非空,则表明破坏性测试成功;完毕后启动所述恢复测试单元;
所述恢复测试单元用于对数据文件执行在线恢复,主要是利用备份数据对数据库执行全库冷恢复,在进行恢复完成后,进行数据恢复成功的验证,数据验证只进行大体校验:首先根据数据建库模块的统计数据存放到结构体中,该结构体主要包含数据量大小,表的个数,每个表中的记录数成员变量,通过对恢复前和恢复后的结构体进行比较来判定数据恢复是否成功。
本实施例中,所述压力测试模块具体可以但不限于包括:加压测试单元及性能收集单元。
所述加压测试单元用于建立一个并发请求发送梯度数组和每个请求所携带的客户访问量,根据数组中的记录并发的发送请求,然后请求所述性能收集单元指示;根据所述性能收集单元的继续指示,按照预先设计的步长递增生成访问的请求数量,并请求所述性能收集单元指示;根据所述性能收集单元的停止指示,保存当前的访问请求的个数作为最大并发数;
所述性能收集单元用于监控所述服务器中各资源的利用率,包括处理器,磁盘,内存,磁盘IO使用情况,并可以进一步生成报警日志;当收到所述加压测试单元的请求后,如果所述利用率为递增状态,则发送继续指示给所述加压测试单元,否则发送停止指示,并保存当前的利用率。
所述加压测试单元可以根据用户的实际业务需求,嵌入内置的sql语句、存储过程、函数等业务逻辑,利用shell端模拟多个客户的访问来实施对数据库服务器进行加压,测试该系统平台的最大并发数和事务处理能力。
本实施例中,所述数据收集模块可以建立一个标准的错误输出信息表,表中主要包含错误序号ID和错误内容和可能原因及备注四列内容,错误序号主要来自于数据库中到处的标准错误,然后根据错误信息录入该表中,形成一个标准的错误信息表,系统的每次输出到日志中的错误值都会包含错误序号,通过过滤日志中的错误需要与标准错误输出信息表中记录的错误序号进行比较,然后定位问题,根据标准错误输出信息表中错误号对应的错误内容列中的提示信息,譬如,在informix数据库测试中,错误号ID对应-1810,错误内容为:Disconnect error,可能原因列内容为:A DISCONNECT ALLstatement has not disconnected a connection.Thedatabase server for one of theconnections might have terminated.If not,the cause is internal to the software.Ifthe error recurs,please note allcircumstances,and contact the Informix TechnicalSupport Department.然后可以根据可能原因中的提示定位问题。
确定该关系型数据库在linux高端容错服务器平台上兼容性测试是否通过。在数据库中建立一个测试结果正确的输出表,该表中包含记录号ID和成功提示两列,譬如informix数据库中,ID号为0,成功提示内容为:Success,The operation succeeded.The database server returns thisSQLCODEvalue to an application when an SQL statement executes successfully,通过比较测试结果正确输出表,判定测试成功执行到具体阶段,从而判定关系型数据库在linux高端容错服务器台上的兼容性测试是否通过。
实施例二、一种服务器上数据库兼容性测试的方法,包括:
A、在服务器上进行建库,并采用生成的数据或实际数据进行数据库的数据填充;
B、模拟数据库管理员的操作对数据库所提供的功能组件进行调整测试;先进行C1、C2中任一步,完成后进行另一步,C1、C2都完成后进行D;
C1、删除所述数据库中的数据,并测试删除后数据库是否能访问,以及是否能恢复;
C2、模拟多个客户端对所述数据库的访问,以测试服务器的极限性能,测试硬件平台所能提供的最大并发数和事务处理能力;
D、根据所述功能组件测试模块、容错模块及压力测试模块的测试结果,判断所建立的数据库与所述服务器是否兼容。
本实施例中,所述步骤A具体包括:
根据硬件配置确定数据库表空间及数据文件的分布,然后创建表空间和数据文件;
创建进行用户访问的用户,并赋予相应的权限;
进行数据的加载;利用系统数据生成器自动生成测试数据,或直接加载用户的真实数据。
本实施例中,所述步骤B具体包括:
进行内存参数的调整并测试,以及测试锁数量、后台进程数据量、日志模式;
在数据库临时表空间区进行数据库的DDL和DML语句测试;
对数据库数据进行存储过程、触发器函数等接口的测试;
保存不同数据库协议对应的切换模式,根据不同的协议选择对应的切换模式,在数据库底层调用存储过程或者函数直接切入到模式切换当中;然后系统睡眠一段时间后,再进行联机切换,模式切换完成通过数据传输查看日志验证是否成功。
实际应用中,步骤B中几个步骤的顺序也可以调换。
本实施例中,所述步骤C1具体包括:
以root身份强制删除数据文件,查看数据库是否能对外提供访问;根据步骤A中创建的用户名密码进行非交互式登录验证,同时将反馈结果输出的错误数据流中,如果错误日志非空,则表明破坏性测试成功;
对数据文件利用备份数据对数据库执行全库冷恢复;在进行恢复完成后,进行数据恢复成功的验证,首先根据数据建库模块的统计数据存放到结构体中,该结构体包含数据量大小,表的个数,每个表中的记录数成员变量,通过对恢复前和恢复后的结构体进行比较来判定数据恢复是否成功。
本实施例中,所述步骤C2具体包括:
建立一个并发请求发送梯度数组和每个请求所携带的客户访问量,根据数组中的记录并发的发送请求;监控所述服务器中各资源的利用率,包括处理器,磁盘,内存,磁盘IO使用率;
如果所述利用率为递增状态,则按照预定的步长递增生成访问的请求数量,否则保存当前的利用率,保存当前的访问请求的个数作为最大并发数。
下面用一个具体的例子进行说明;首先设计主要接口如下:
建库模块CreateDbspaces.sh,功能是根据高端容错服务器磁盘的容量、数量以及用户要求建立的测试规模,创建表空间和数据文件。
入口参数:磁盘数量、容量、是否raid,raid级别,数据库基准规模
出口参数:成功0,失败1。
功能组件测试模块FunctionTest.sh,功能是对数据库的内存参数、日志模式、及其它参数进行在线修改;
主要依赖于测试的要求,编写sql语句,直接在脚本中调用。
譬如:
Create table tablename(col1 datatype,col2 datatype,....)in dbspace;
Select * from tablename where col=.....
Delect from tablename where col=....
Insert into tablename(col1,col2,...)values(val1,val2...)
Alter table tablename add(col datatype)
Alter table tablename modify(col datatype)
....
Function testfuc(datatype in...Datatype out...)
Return val
....
容错模块TolerTest.sh,可调用rm功能,强制删除容错文件,恢复删除的容错文件,整库删除数据文件,然后利用全库0级备份进行系统恢复验证;利用关系型数据库所提供的备份恢复工具进行恢复测试,可以在该模块中直接调用restore,revocer,ontape等等。
压力测试模块BenchTest.sh,首先通过在循环语句中调用大量耗费系统资源的内置函数进行测试,使系统处理能力短时间内达到峰值,实现对数据库的加压测试;其次通过广播嵌入到用户实际业务的应用脚本模拟多客户端加压,测试数据库的最大并发数和事务处理能力。
数据收集模块Display_result.sh,首先收集利用Spotlight监控到的性能数据;其次,读取数据库在线系统生成的数据库报警日志和操作系统生成的日志,进行分析,定位问题,确定该关系型数据库兼容性是否通过。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。

Claims (10)

1.一种服务器上数据库兼容性测试的装置,其特征在于,包括:
建库模块、功能组件测试模块、容错模块、压力测试模块及数据收集模块;
所述建库模块用于在服务器上进行建库,并采用生成的数据或实际数据进行数据库的数据填充,完成后启动所述功能组件测试模块;
所述功能组件测试模块用于模拟数据库管理员的操作对数据库所提供的功能组件进行调整测试;测试完毕后启动所述容错模块或压力测试模块;
所述容错模块用于删除所述数据库中的数据,并测试删除后数据库是否能访问,以及是否能恢复;如果由压力测试模块启动,则测试完毕后启动所述数据收集模块,如果由功能组件测试模块启动,则测试完毕后启动所述压力测试模块;
所述压力测试模块用于模拟多个客户端对所述数据库的访问,以测试服务器的极限性能,测试硬件平台所能提供的最大并发数和事务处理能力;如果由容错模块启动,则测试完毕后启动所述数据收集模块,如果由功能组件测试模块启动,则测试完毕后启动所述容错模块;
所述数据收集模块用于根据所述功能组件测试模块、容错模块及压力测试模块的测试结果,判断所建立的数据库与所述服务器是否兼容。
2.如权利要求1所述的装置,其特征在于,所述建库模块具体包括:
文件创建单元、用户管理单元及数据生成单元;
所述文件创建单元用于根据硬件配置确定数据库表空间及数据文件的分布,然后创建表空间和数据文件,创建完毕后启动所述用户管理单元;
所述用户管理单元用于创建进行用户访问的用户,并赋予相应的权限;完成后启动所述数据生成单元;
所述数据生成单元用于进行数据的加载;利用系统数据生成器自动生成测试数据,或直接加载用户的真实数据。
3.如权利要求1所述的装置,其特征在于,所述功能组件测试模块具体包括:
参数测试单元、语句测试单元、接口测试单元及模式切换测试单元;
所述参数测试单元用于进行内存参数的调整并测试,以及测试锁数量、后台进程数据量、日志模式,测试完毕后启动所述语句测试单元;
所述语句测试单元用于在数据库临时表空间区进行数据库的DDL和DML语句测试;测试完毕后启动所述接口测试单元;
所述接口测试单元用于对数据库数据进行存储过程、触发器函数等接口的测试,测试完毕后启动所述模式切换测试单元;
所述模式切换测试单元用于保存不同数据库协议对应的切换模式,根据不同的协议选择对应的切换模式,在数据库底层调用存储过程或者函数直接切入到模式切换当中;然后系统睡眠一段时间后,再进行联机切换,模式切换完成通过数据传输查看日志验证是否成功。
4.如权利要求1所述的装置,其特征在于,所述容错模块具体包括:
数据损坏测试单元及恢复测试单元;
所述数据损坏测试单元用于以root身份强制删除数据文件,查看数据库是否能对外提供访问;根据建库模块中创建的用户名密码进行非交互式登录验证,同时将反馈结果输出的错误数据流中,如果错误日志非空,则表明破坏性测试成功;完毕后启动所述恢复测试单元;
所述恢复测试单元用于对数据文件利用备份数据对数据库执行全库冷恢复;在进行恢复完成后,进行数据恢复成功的验证,首先根据数据建库模块的统计数据存放到结构体中,该结构体包含数据量大小,表的个数,每个表中的记录数成员变量,通过对恢复前和恢复后的结构体进行比较来判定数据恢复是否成功。
5.如权利要求1所述的装置,其特征在于,所述压力测试模块具体包括:
加压测试单元及性能收集单元;
所述加压测试单元用于建立一个并发请求发送梯度数组和每个请求所携带的客户访问量,根据数组中的记录并发的发送请求,然后请求所述性能收集单元指示;根据所述性能收集单元的继续指示,按照预定的步长递增生成访问的请求数量,并请求所述性能收集单元指示;根据所述性能收集单元的停止指示,保存当前的访问请求的个数作为最大并发数;
所述性能收集单元用于监控所述服务器中各资源的利用率,包括处理器,磁盘,内存,磁盘IO使用情况;当收到所述加压测试单元的请求后,如果所述利用率为递增状态,则发送继续指示给所述加压测试单元,否则发送停止指示,并保存当前的利用率。
6.一种服务器上数据库兼容性测试的方法,包括:
A、在服务器上进行建库,并采用生成的数据或实际数据进行数据库的数据填充;
B、模拟数据库管理员的操作对数据库所提供的功能组件进行调整测试;先进行C1、C2中任一步,完成后进行另一步,C1、C2都完成后进行D;
C1、删除所述数据库中的数据,并测试删除后数据库是否能访问,以及是否能恢复;
C2、模拟多个客户端对所述数据库的访问,以测试服务器的极限性能,测试硬件平台所能提供的最大并发数和事务处理能力;
D、根据所述功能组件测试模块、容错模块及压力测试模块的测试结果,判断所建立的数据库与所述服务器是否兼容。
7.如权利要求6所述的方法,其特征在于,所述步骤A具体包括:
根据硬件配置确定数据库表空间及数据文件的分布,然后创建表空间和数据文件;
创建进行用户访问的用户,并赋予相应的权限;
进行数据的加载;利用系统数据生成器自动生成测试数据,或直接加载用户的真实数据。
8.如权利要求6所述的方法,其特征在于,所述步骤B具体包括:
进行内存参数的调整并测试,以及测试锁数量、后台进程数据量、日志模式;
在数据库临时表空间区进行数据库的DDL和DML语句测试;
对数据库数据进行存储过程、触发器函数等接口的测试;
保存不同数据库协议对应的切换模式,根据不同的协议选择对应的切换模式,在数据库底层调用存储过程或者函数直接切入到模式切换当中;然后系统睡眠一段时间后,再进行联机切换,模式切换完成通过数据传输查看日志验证是否成功。
9.如权利要求6所述的方法,其特征在于,所述步骤C1具体包括:
以root身份强制删除数据文件,查看数据库是否能对外提供访问;根据步骤A中创建的用户名密码进行非交互式登录验证,同时将反馈结果输出的错误数据流中,如果错误日志非空,则表明破坏性测试成功;
对数据文件利用备份数据对数据库执行全库冷恢复;在进行恢复完成后,进行数据恢复成功的验证,首先根据数据建库模块的统计数据存放到结构体中,该结构体包含数据量大小,表的个数,每个表中的记录数成员变量,通过对恢复前和恢复后的结构体进行比较来判定数据恢复是否成功。
10.如权利要求6所述的方法,其特征在于,所述步骤C2具体包括:
建立一个并发请求发送梯度数组和每个请求所携带的客户访问量,根据数组中的记录并发的发送请求;监控所述服务器中各资源的利用率,包括处理器,磁盘,内存,磁盘IO使用率;
如果所述利用率为递增状态,则按照预定的步长递增生成访问的请求数量,否则保存当前的利用率,保存当前的访问请求的个数作为最大并发数。
CN 201010100359 2010-01-22 2010-01-22 一种服务器上数据库兼容性的测试的装置及方法 Active CN101789002B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010100359 CN101789002B (zh) 2010-01-22 2010-01-22 一种服务器上数据库兼容性的测试的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010100359 CN101789002B (zh) 2010-01-22 2010-01-22 一种服务器上数据库兼容性的测试的装置及方法

Publications (2)

Publication Number Publication Date
CN101789002A true CN101789002A (zh) 2010-07-28
CN101789002B CN101789002B (zh) 2013-09-11

Family

ID=42532218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010100359 Active CN101789002B (zh) 2010-01-22 2010-01-22 一种服务器上数据库兼容性的测试的装置及方法

Country Status (1)

Country Link
CN (1) CN101789002B (zh)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004693A (zh) * 2010-11-24 2011-04-06 北京世纪高通科技有限公司 一种系统性能测试方法和装置
CN102147759A (zh) * 2011-03-18 2011-08-10 浪潮电子信息产业股份有限公司 一种raid硬盘掉线的处理方法
CN102243610A (zh) * 2011-08-09 2011-11-16 广东省电力调度中心 操作系统测试方法及测试系统
CN102254036A (zh) * 2011-08-09 2011-11-23 广东电网公司电力科学研究院 时间序列数据库测试方法及测试系统
CN102254035A (zh) * 2011-08-09 2011-11-23 广东电网公司电力科学研究院 关系数据库测试方法及测试系统
CN103729361A (zh) * 2012-10-12 2014-04-16 百度在线网络技术(北京)有限公司 一种数据库性能测试方法及装置
CN103810196A (zh) * 2012-11-09 2014-05-21 阿里巴巴集团控股有限公司 基于业务模型进行数据库性能测试的方法
CN103856790A (zh) * 2012-12-05 2014-06-11 北京四达时代软件技术股份有限公司 一种vod系统用户行为分析方法及系统
CN103973504A (zh) * 2013-01-25 2014-08-06 北京广利核系统工程有限公司 一种多网络协议的并行测试装置及测试方法
CN104182340A (zh) * 2014-08-21 2014-12-03 浪潮(北京)电子信息产业有限公司 数据库兼容性测试方法和系统
CN105721550A (zh) * 2016-01-21 2016-06-29 北京乐动卓越科技有限公司 一种客户端容错监控方法及系统
CN105975390A (zh) * 2016-04-28 2016-09-28 浪潮电子信息产业股份有限公司 一种基于复杂测试场景下的恢复测试数据方法
CN106021085A (zh) * 2016-05-24 2016-10-12 北京金山安全软件有限公司 一种性能测试方法、装置及数据服务器
CN106354619A (zh) * 2016-08-31 2017-01-25 天津南大通用数据技术股份有限公司 一种测试数据库并发性能的系统
CN107229681A (zh) * 2017-05-09 2017-10-03 北京潘达互娱科技有限公司 一种数据库操作方法及装置
CN107360057A (zh) * 2017-07-06 2017-11-17 福建天晴数码有限公司 一种交互式测试方法
CN107609205A (zh) * 2016-07-12 2018-01-19 百度在线网络技术(北京)有限公司 业务仿真系统和方法
CN107885656A (zh) * 2017-09-13 2018-04-06 平安科技(深圳)有限公司 产品算法自动化测试方法及应用服务器
CN108255703A (zh) * 2017-11-07 2018-07-06 中国平安人寿保险股份有限公司 一种sql脚本的故障修复方法及其终端
CN108563544A (zh) * 2018-03-26 2018-09-21 平安普惠企业管理有限公司 系统性能测试方法、装置、计算机设备和存储介质
CN108804267A (zh) * 2018-05-30 2018-11-13 平安普惠企业管理有限公司 数据库轮询方法、装置、计算机设备及存储介质
CN109101382A (zh) * 2018-08-06 2018-12-28 郑州云海信息技术有限公司 一种truncate自动测试方法、装置、终端及存储介质
CN109348499A (zh) * 2018-11-30 2019-02-15 北京奇安信科技有限公司 压力测试系统及方法
CN109491886A (zh) * 2018-09-26 2019-03-19 深圳壹账通智能科技有限公司 兼容性测试方法、装置、电子设备及存储介质
CN110597823A (zh) * 2019-09-20 2019-12-20 四川长虹电器股份有限公司 一种支持MySQL数据库在线DDL操作的方法
CN110618903A (zh) * 2018-06-19 2019-12-27 北京忆恒创源科技有限公司 电子设备测试方法与装置
CN110830300A (zh) * 2019-11-09 2020-02-21 苏州浪潮智能科技有限公司 一种服务器稳定性测试方法
CN111078666A (zh) * 2019-12-11 2020-04-28 中国建设银行股份有限公司 基于跨中心多数据库的自动化卸数供数的方法
CN112231236A (zh) * 2020-12-14 2021-01-15 广东睿江云计算股份有限公司 一种数据库性能的测试方法
CN112988588A (zh) * 2021-03-26 2021-06-18 广州博冠信息科技有限公司 客户端软件调试方法、装置、存储介质及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701471A (en) * 1995-07-05 1997-12-23 Sun Microsystems, Inc. System and method for testing multiple database management systems
CN100375057C (zh) * 2004-08-31 2008-03-12 中国银联股份有限公司 一种自动化测试辅助系统及相应的软件自动测试方法
CN101093462B (zh) * 2006-06-22 2011-02-09 上海全成通信技术有限公司 数据库应用集群压力测试自动化方法

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004693A (zh) * 2010-11-24 2011-04-06 北京世纪高通科技有限公司 一种系统性能测试方法和装置
CN102147759A (zh) * 2011-03-18 2011-08-10 浪潮电子信息产业股份有限公司 一种raid硬盘掉线的处理方法
CN102243610A (zh) * 2011-08-09 2011-11-16 广东省电力调度中心 操作系统测试方法及测试系统
CN102254036A (zh) * 2011-08-09 2011-11-23 广东电网公司电力科学研究院 时间序列数据库测试方法及测试系统
CN102254035A (zh) * 2011-08-09 2011-11-23 广东电网公司电力科学研究院 关系数据库测试方法及测试系统
CN103729361A (zh) * 2012-10-12 2014-04-16 百度在线网络技术(北京)有限公司 一种数据库性能测试方法及装置
CN103810196A (zh) * 2012-11-09 2014-05-21 阿里巴巴集团控股有限公司 基于业务模型进行数据库性能测试的方法
CN103810196B (zh) * 2012-11-09 2017-09-22 阿里巴巴集团控股有限公司 基于业务模型进行数据库性能测试的方法
CN103856790A (zh) * 2012-12-05 2014-06-11 北京四达时代软件技术股份有限公司 一种vod系统用户行为分析方法及系统
CN103856790B (zh) * 2012-12-05 2018-01-23 北京四达时代软件技术股份有限公司 一种vod系统用户行为分析方法及系统
CN103973504A (zh) * 2013-01-25 2014-08-06 北京广利核系统工程有限公司 一种多网络协议的并行测试装置及测试方法
CN103973504B (zh) * 2013-01-25 2017-01-04 北京广利核系统工程有限公司 一种多网络协议的并行测试装置及测试方法
CN104182340A (zh) * 2014-08-21 2014-12-03 浪潮(北京)电子信息产业有限公司 数据库兼容性测试方法和系统
CN104182340B (zh) * 2014-08-21 2017-05-31 浪潮(北京)电子信息产业有限公司 数据库兼容性测试方法和系统
CN105721550A (zh) * 2016-01-21 2016-06-29 北京乐动卓越科技有限公司 一种客户端容错监控方法及系统
CN105721550B (zh) * 2016-01-21 2019-04-19 北京乐动卓越科技有限公司 一种客户端容错监控方法及系统
CN105975390A (zh) * 2016-04-28 2016-09-28 浪潮电子信息产业股份有限公司 一种基于复杂测试场景下的恢复测试数据方法
CN106021085A (zh) * 2016-05-24 2016-10-12 北京金山安全软件有限公司 一种性能测试方法、装置及数据服务器
CN106021085B (zh) * 2016-05-24 2018-09-04 北京金山安全软件有限公司 一种性能测试方法、装置及数据服务器
CN107609205A (zh) * 2016-07-12 2018-01-19 百度在线网络技术(北京)有限公司 业务仿真系统和方法
CN106354619A (zh) * 2016-08-31 2017-01-25 天津南大通用数据技术股份有限公司 一种测试数据库并发性能的系统
CN107229681A (zh) * 2017-05-09 2017-10-03 北京潘达互娱科技有限公司 一种数据库操作方法及装置
CN107229681B (zh) * 2017-05-09 2020-08-21 北京潘达互娱科技有限公司 一种数据库操作方法及装置
CN107360057A (zh) * 2017-07-06 2017-11-17 福建天晴数码有限公司 一种交互式测试方法
CN107360057B (zh) * 2017-07-06 2019-11-08 福建天晴数码有限公司 一种交互式测试方法
CN107885656A (zh) * 2017-09-13 2018-04-06 平安科技(深圳)有限公司 产品算法自动化测试方法及应用服务器
CN107885656B (zh) * 2017-09-13 2021-02-09 平安科技(深圳)有限公司 产品算法自动化测试方法及应用服务器
CN108255703B (zh) * 2017-11-07 2020-01-14 中国平安人寿保险股份有限公司 一种sql脚本的故障修复方法及其终端
CN108255703A (zh) * 2017-11-07 2018-07-06 中国平安人寿保险股份有限公司 一种sql脚本的故障修复方法及其终端
CN108563544A (zh) * 2018-03-26 2018-09-21 平安普惠企业管理有限公司 系统性能测试方法、装置、计算机设备和存储介质
CN108804267A (zh) * 2018-05-30 2018-11-13 平安普惠企业管理有限公司 数据库轮询方法、装置、计算机设备及存储介质
CN110618903A (zh) * 2018-06-19 2019-12-27 北京忆恒创源科技有限公司 电子设备测试方法与装置
CN109101382A (zh) * 2018-08-06 2018-12-28 郑州云海信息技术有限公司 一种truncate自动测试方法、装置、终端及存储介质
CN109491886A (zh) * 2018-09-26 2019-03-19 深圳壹账通智能科技有限公司 兼容性测试方法、装置、电子设备及存储介质
CN109348499A (zh) * 2018-11-30 2019-02-15 北京奇安信科技有限公司 压力测试系统及方法
CN109348499B (zh) * 2018-11-30 2022-02-25 奇安信科技集团股份有限公司 压力测试系统及方法
CN110597823A (zh) * 2019-09-20 2019-12-20 四川长虹电器股份有限公司 一种支持MySQL数据库在线DDL操作的方法
CN110830300A (zh) * 2019-11-09 2020-02-21 苏州浪潮智能科技有限公司 一种服务器稳定性测试方法
CN111078666A (zh) * 2019-12-11 2020-04-28 中国建设银行股份有限公司 基于跨中心多数据库的自动化卸数供数的方法
CN112231236A (zh) * 2020-12-14 2021-01-15 广东睿江云计算股份有限公司 一种数据库性能的测试方法
CN112988588A (zh) * 2021-03-26 2021-06-18 广州博冠信息科技有限公司 客户端软件调试方法、装置、存储介质及电子设备
CN112988588B (zh) * 2021-03-26 2023-11-28 广州博冠信息科技有限公司 客户端软件调试方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN101789002B (zh) 2013-09-11

Similar Documents

Publication Publication Date Title
CN101789002B (zh) 一种服务器上数据库兼容性的测试的装置及方法
US11716385B2 (en) Utilizing cloud-based storage systems to support synchronous replication of a dataset
US11093139B1 (en) Durably storing data within a virtual storage system
US11526408B2 (en) Data recovery in a virtual storage system
US20240192896A1 (en) Dynamic scaling of a virtual storage system
US11126364B2 (en) Virtual storage system architecture
US12079520B2 (en) Replication between virtual storage systems
US7200626B1 (en) System and method for verification of a quiesced database copy
US11775560B1 (en) Method and system for using before images of changes for continuously comparing two databases which are actively being kept synchronized
WO2019226597A1 (en) Asynchronous replication of synchronously replicated data
CA3054040A1 (en) Synchronously replicating datasets and other managed objects to cloud-based storage systems
CN106598490A (zh) 区块链数据的访问方法和区块链管理系统
WO2022159162A1 (en) Using data similarity to select segments for garbage collection
WO2022220940A1 (en) Ensuring timely restoration of an application
US11327676B1 (en) Predictive data streaming in a virtual storage system
WO2022164490A1 (en) Optimizing storage device access based on latency
WO2023070025A1 (en) Declarative provisioning of storage
WO2023235295A1 (en) Dynamic buffer for storage system
Keeton et al. Automating data dependability
US20230350858A1 (en) Providing Block-Based Storage
US20230353635A1 (en) Replication Utilizing Cloud-Based Storage Systems
WO2024073561A1 (en) In-band file system access
CN110309226A (zh) 一种云数据库统一备份与恢复系统
WO2023133590A1 (en) Establishing a guarantee for maintaining a replication relationship between object stores during a communications outage
Chen et al. An analytical framework and its applications for studying brick storage reliability

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201106

Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province

Patentee after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd.

Address before: 100085 Beijing, Haidian District on the road to information on the ground floor, building 2-1, No. 1, C

Patentee before: Inspur (Beijing) Electronic Information Industry Co.,Ltd.