一种测试环境中数据库的运维方法及系统的制作方法
【专利摘要】本发明提供了一种测试环境中数据库的运维方法及系统,该方法包括:交互单元将用户提交的数据库的申请信息保存到存储单元;机器分配单元依据所述申请信息在机器资源池中选择机器,将选出机器的主机名和端口号发送给数据库搭建单元;数据库搭建单元依据选出机器的主机名和端口号,将数据库安装包、申请信息和安装命令发送给对应的机器,机器运行数据库安装包,依据申请信息安装数据库;数据同步单元将线上实际数据同步到机器上搭建的数据库。根据本发明提供的技术方案,能够高效自动进行测试环境中数据库的部署。
【专利说明】一种测试环境中数据库的运维方法及系统
【【技术领域】】
[0001]本发明涉及互联网应用的测试技术,尤其涉及一种测试环境中数据库的运维方法及系统。
【【背景技术】】
[0002]目前的互联网产品都会使用数据库作为数据持久化存储设备,测试人员在进行互联网产品的测试时,除了需要部署测试用例的代码,还需要部署测试环境中的数据库;在进行测试环境的维护时,也需要同时对数据库进行运营维护。测试环境中数据库的运维操作主要包括:选择合适的机器、在选出的机器上搭建数据库、在数据库中准备测试数据、从数据库收集测试结果以及处理数据库出现的问题等。
[0003]目前,互联网产品的测试中,测试环境中数据库的运维方法存在以下缺陷:
[0004]1、每个互联网产品的测试人员都需要在机器上手动部署数据库,往往使得一个机器上只部署了一个测试用例,如果测试用例的访问量很少,就大大降低了机器的利用率。
[0005]2、测试人员在搭建测试环境中的数据库时,如果操作不熟练或数据库集群拓扑结构复杂,都花费大量时间;当数据库出现异常时,如果测试人员对数据库技术不是非常了解,就需要求助数据库管理员进行解决,因而沟通成本较高,如果使用线上数据作为测试数据,还需要执行拷贝数据的审批流程,又需要花费较多时间;因此部署测试环境中的数据库效率很低,浪费较多人力物力。
[0006]3、在进行互联网产品的性能测试时,需要模拟线上的实际环境,这样测试结果可靠性才比较高,但是测试人员部署的机器数量很难与线上的实际环境一致,而且所搭建的数据库集群的拓扑结构也很简单,从而导致互联网产品的性能测试结果的可信度较低。
【
【发明内容】
】
[0007]本发明提供了一种测试环境中数据库的运维方法及系统,能够高效自动进行测试环境中数据库的部署。
[0008]本发明的具体技术方案如下:
[0009]根据本发明一优选实施例,一种测试环境中数据库的运维系统,包括:交互单元、机器分配单元、数据库搭建单元、数据同步单元、存储单元;其中,
[0010]交互单元,用于将用户提交的数据库的申请信息保存到存储单元;
[0011]机器分配单元,用于依据所述申请信息在机器资源池中选择机器,将选出机器的主机名和端口号发送给数据库搭建单元;
[0012]数据库搭建单元,用于依据选出机器的主机名和端口号,将数据库安装包、申请信息和安装命令发送给对应的机器,机器运行数据库安装包,依据申请信息安装数据库;
[0013]数据同步单元,用于将线上实际数据同步到机器上搭建的数据库。
[0014]上述系统中,所述数据库的申请信息包括如下信息:数据库版本、产品线名称、测试类型、数据库的使用时间、数据库的拓扑结构、磁盘类型、数据库列表、预估数据量和字符集。
[0015]上述系统中,所述机器分配单元在依据所述申请信息在机器资源池中选择机器时,具体包括:
[0016]从存储单元获取数据库的申请信息和预设的机器资源池中机器的机器监控数据;
[0017]依据申请信息中测试类型在机器资源池中选出虚拟机、或虚拟机和物理机;
[0018]对选出的机器进行遍历,将磁盘剩余量大于申请信息中预估数据量且CPU利用率大于预设的利用率阈值的机器的主机名和端口号添加到可选机器列表,直到机器遍历完毕;
[0019]当可选机器列表中端口号一致的机器的个数大于或等于申请信息中数据库列表中的数据库实例个数时,在可选机器列表中端口号一致的机器中选出与数据库实例个数对应数量的机器。
[0020]上述系统中,所述数据库搭建单元在将数据库安装包、申请信息和安装命令发送给对应的机器时,具体包括:
[0021]先后将预先设置的数据库安装包、携带编译参数的编译命令和安装命令发送给对应的机器;所述编译参数依据从存储单元中获取的申请信息生成。
[0022]上述系统中,所述机器运行数据库安装包,依据申请信息安装数据库具体包括:
[0023]机器在本地运行数据库安装包,依据申请信息中对数据库的相关要求,完成数据库安装,并向数据库搭建单元返回安装成功的消息。
[0024]上述系统中,
[0025]所述数据库搭建单元,还用于当安装的数据库数量为两个以上时,向两个以上数据库中的从数据库发送主从同步命令,所述主从同步命令中携带主数据库所在机器的主机名和端口号;所述从数据库将自身的同步点设置为主数据库的当前日志位置。
[0026]上述系统中,所述数据同步单元在将线上实际数据同步到机器上搭建的数据库时,具体包括:
[0027]定时的从线上数据库下载包含线上实际数据的备份文件,将所述备份文件拷贝到数据库中,数据库将备份文件还原恢复成线上实际数据。
[0028]上述系统中,所述数据同步单元在将线上实际数据同步到机器上搭建的数据库时,具体包括:
[0029]在线上数据库集群中的备份数据库下挂载数据库,所述备份数据库的日志位置更新时,所述数据库从备份数据库中更新后的日志位置获取线上实际数据。
[0030]上述系统中,该系统还包括:
[0031]采集控制单元,用于将监控脚本发送给机器,机器运行监控脚本采集服务状态数据并保存到存储单兀;
[0032]服务监控单元,用于依据存储单元中的服务状态数据,进行状态异常报警、测试结果显示和故障恢复操作。
[0033]上述系统中,所述监控脚本中配置有需要采集的服务状态数据、采集周期、采集服务状态数据时调用的命令;
[0034]所述服务状态数据包括数据库使用情况数据、产品线使用情况数据和机器监控数据。
[0035]上述系统中,所述服务监控单元在进行状态异常报警时,具体包括:
[0036]对存储单元中的服务状态数据进行监控,当依据预设的报警策略判断出机器监控数据出现异常时,向用户发送报警邮件,报警邮件中携带出现异常的机器监控数据。
[0037]上述系统中,所述服务监控单元在进行测试结果显示时,具体包括:
[0038]利用存储单元中一个月内的数据库使用情况数据或一天内的产品线使用情况数据,对预设的展示模板进行渲染,生成测试结果页面,将生成的测试结果页面发送给交互单元进行显示。
[0039]一种测试环境中数据库的运维方法,包括:
[0040]交互单元将用户提交的数据库的申请信息保存到存储单元;
[0041]机器分配单元依据所述申请信息在机器资源池中选择机器,将选出机器的主机名和端口号发送给数据库搭建单元;
[0042]数据库搭建单元依据选出机器的主机名和端口号,将数据库安装包、申请信息和安装命令发送给对应的机器,机器运行数据库安装包,依据申请信息安装数据库;
[0043]数据同步单元将线上实际数据同步到机器上搭建的数据库。
[0044]上述方法中,所述数据库的申请信息包括如下信息:数据库版本、产品线名称、测试类型、数据库的使用时间、数据库的拓扑结构、磁盘类型、数据库列表、预估数据量和字符集。
[0045]上述方法中,所述机器分配单元依据所述申请信息在机器资源池中选择机器具体包括:
[0046]从存储单元获取数据库的申请信息和预设的机器资源池中机器的机器监控数据;
[0047]依据申请信息中测试类型在机器资源池中选出虚拟机、或虚拟机和物理机;
[0048]对选出的机器进行遍历,将磁盘剩余量大于申请信息中预估数据量且CPU利用率大于预设的利用率阈值的机器的主机名和端口号添加到可选机器列表,直到机器遍历完毕;
[0049]当可选机器列表中端口号一致的机器的个数大于或等于申请信息中数据库列表中的数据库实例个数时,在可选机器列表中端口号一致的机器中选出与数据库实例个数对应数量的机器。
[0050]上述方法中,所述将数据库安装包、申请信息和安装命令发送给对应的机器具体包括:
[0051]先后将预先设置的数据库安装包、携带编译参数的编译命令和安装命令发送给对应的机器;所述编译参数依据从存储单元中获取的申请信息生成。
[0052]上述方法中,所述机器运行数据库安装包,依据申请信息安装数据库具体包括:
[0053]机器在本地运行数据库安装包,依据申请信息中对数据库的相关要求,完成数据库安装,并向数据库搭建单元返回安装成功的消息。
[0054]上述方法中,该方法还包括:
[0055]当安装的数据库数量为两个以上时,数据库搭建单元向两个以上数据库中的从数据库发送主从同步命令,所述主从同步命令中携带主数据库所在机器的主机名和端口号;[0056]所述从数据库将自身的同步点设置为主数据库的当前日志位置。
[0057]上述方法中,所述数据同步单元将线上实际数据同步到机器上搭建的数据库具体包括:
[0058]数据同步单元定时的从线上数据库下载包含线上实际数据的备份文件,将所述备份文件拷贝到数据库中,数据库将备份文件还原恢复成线上实际数据。
[0059]上述方法中,所述数据同步单元将线上实际数据同步到机器上搭建的数据库具体包括:
[0060]数据同步单元在线 上数据库集群中的备份数据库下挂载数据库,所述备份数据库的日志位置更新时,所述数据库从备份数据库中更新后的日志位置获取线上实际数据。
[0061]上述方法中,该方法还包括:
[0062]采集控制单元将监控脚本发送给机器,机器运行监控脚本采集服务状态数据并保存到存储单元;
[0063]服务监控单元依据存储单元中的服务状态数据,进行状态异常报警、测试结果显示和故障恢复操作。
[0064]上述方法中,
[0065]所述监控脚本中配置有需要采集的服务状态数据、采集周期、采集服务状态数据时调用的命令;
[0066]所述服务状态数据包括数据库使用情况数据、产品线使用情况数据和机器监控数据。
[0067]上述方法中,所述服务监控单元进行状态异常报警具体包括:
[0068]对存储单元中的服务状态数据进行监控,当依据预设的报警策略判断出机器监控数据出现异常时,向用户发送报警邮件,报警邮件中携带出现异常的机器监控数据。
[0069]上述方法中,所述服务监控单元进行测试结果显示具体包括:
[0070]服务监控单元利用存储单元中一个月内的数据库使用情况数据或一天内的产品线使用情况数据,对预设的展示模板进行渲染,生成测试结果页面,将生成的测试结果页面发送给交互单元进行显示。
[0071]由以上技术方案可以看出,本发明提供的具有以下有益效果:
[0072]对所有产品线的测试环境中的数据库进行统一自动部署和运维,只需要测试人员配置数据库的申请信息即可,节省人力物力资源,从而提高测试环境中数据库的部署效率,能够加快测试进度,缩短测试周期。
【【专利附图】
【附图说明】】
[0073]图1是本发明实现测试环境中数据库的运维系统的优选实施例的结构示意图;
[0074]图2是本发明实现测试环境中数据库的运维方法的优选实施例的流程示意图;
[0075]图3是本发明实现数据采集和服务监控的示例图;
[0076]图4是本发明中依据申请信息在机器资源池中选择用于搭建数据库的机器的具体实现方法的流程示意图。
【【具体实施方式】】[0077]本发明的基本思想是:交互单元将用户提交的数据库的申请信息保存到存储单元;机器分配单元依据所述申请信息在机器资源池中选择机器,将选出机器的主机名和端口号发送给数据库搭建单元;数据库搭建单元依据选出机器的主机名和端口号,将数据库安装包、申请信息和安装命令发送给对应的机器,机器运行数据库安装包,依据申请信息安装数据库;数据同步单元将线上实际数据同步到机器上搭建的数据库。
[0078]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0079]本发明提供一种测试环境中数据库的运维系统,图1是本发明实现测试环境中数据库的运维系统的优选实施例的结构示意图,如图1所示,该系统包括:交互单元10、存储单元11、机器分配单元12、数据库搭建单元13、数据同步单元14、采集控制单元15和服务监控单元16。
[0080]基于上述系统,本发明还提供一种测试环境中数据库的运维方法,图2是本发明实现测试环境中数据库的运维方法的优选实施例的流程示意图,如图2所示,该优选实施例包括以下步骤:
[0081]步骤201,交互单元接收第一用户提交的数据库的申请信息,并转发给第二用户进行审核。
[0082]具体的,当互联网产品的测试环境需要利用数据库时,第一用户通过web方式将申请单提供给交互单元,该申请单中携带有数据库的申请信息;所述第一用户指的是产品线的测试人员。
[0083]交互单元接收第一用户提交的数据库的申请信息,将该申请信息的查看链接通过邮件发送给第二用户,该第二用户指的是数据库管理员;交互单元同时将该申请信息保存到存储单元。
[0084]所述申请单中数据库的申请信息包括以下内容:数据库版本、产品线名称、测试类型、数据库的使用时间、数据库的拓扑结构、磁盘类型、数据库列表、预估数据量和字符集等;其中,所述产品线名称指的是需要数据库的测试环境的产品线,所述测试类型包括功能测试和性能测试,数据库的使用时间指的是数据库搭建在机器上的时间,如果使用时间到时,则将机器资源回收,而不是一直将机器用于产品线的测试;数据库列表中携带需要在机器上搭建的数据库实例,如数据库A、数据库B和数据库C,所述字符集指的是数据库中允许出现的字符。
[0085]步骤202,数据库的申请信息通过审核后,机器分配单元依据申请信息在机器资源池中选择用于搭建数据库的机器,将选出机器的主机名和端口号发送给数据库搭建单元。
[0086]具体的,第二用户在收到邮件后,直接点击邮件中申请信息的查看链接来查看申请信息,并对申请信息进行审核;主要依据申请信息中的测试类型、数据库的拓扑结构、预估数据量判断申请信息是否通过审核,对于功能测试或性能测试,申请的数据库实例的个数和预估数据量都不能超过预设的最大值,该最大值是可配的,如果数据库实例或预估数据量超过预设的最大值,则审核不通过,反之,则审核通过;还可以依据测试数据来源提供的FTP地址或主数据库的IP和端口是否合法判断申请信息是否通过审核,如果不合法,则审核不通过,反之,审核通过。
[0087]如果申请信息审核不通过,第二用户触发第一按钮,机器分配单元收到第一按钮的触发消息,则确定依据当前的申请信息不能搭建数据库,因此不需要选择机器,通过交互单元将申请信息审核失败的消息返回给第一用户,结束当前流程,第一用户在收到申请信息审核失败的消息后,还可以对申请信息进行修改,重新提交申请信息。如果申请信息审核通过,第二用户触发第二按钮,机器分配单元收到第二按钮的触发消息,则确定依据当前的申请信息可以搭建数据库,因此需要为数据库选择搭建的机器,则机器分配单元触发自身的机器分配流程,机器分配单元从存储单元获取数据库的申请信息,然后依据数据库的申请信息在机器资源池中的一个以上机器中,选择合适的机器来搭建数据库,机器分配单元将选出机器的主机名和端口号发送给数据库搭建单元;本优选实施例中,由于一个数据库实例需要部署在一个机器上,因此机器分配单元选出的机器的个数等于申请信息中数据库实例的个数,一个以上数据库实例组成数据库集群,数据库集群中将存在主数据库和从数据库,机器分配单元发送给数据库搭建单元的机器的主机名和端口号中,默认第一个机器的主机名和端口号为建立主数据库的机器。
[0088]步骤203,数据库搭建单元依据选出机器的主机名和端口号,将数据库安装包、申请信息和安装命令发送给对应的机器,机器运行数据库安装包,依据申请信息安装数据库。
[0089]具体的,数据库搭建单元在收到机器分配单元提供的机器的主机名和端口号之后,首先依据端口号将预先设置的数据库安装包发送给对应的机器;然后,数据库搭建单元从存储单元中获取申请信息,将该申请信息转化成编译参数,将该编译参数通过编译命令发送给选出的机器,所述编译指令可以利用configure命令;接着,数据库搭建单元向机器发送安装命令,用于指示机器进行数据库的安装操作;安装命令可以利用make&makeinstall 命令。
[0090]机器从数据库搭建单元收到安装包、控制命令(编译命令和安装命令)后,在本地运行数据库安装包,依据申请信息中对安装的数据库的相关要求,如数据库的拓扑结构、数据库版本等,完成数据库的自动安装;安装完成后,机器向数据库搭建单元返回安装成功的消息。
[0091]如果在两个以上机器搭建数据库,数据库搭建单元在收到机器安装成功的消息后,向数据库集群中的从数据库发送主从同步命令,用于指示从数据库与主数据库建立同步关系,其中,主从同步命令中携带主数据库所在机器的主机名和端口号;所述主从同步命令可以利用change master命令;收到主从同步命令后,从数据库依据主机名和端口号,与主数据库建立同步关系,同步关系建立完成后,从数据库就可以从主数据库实时复制数据,至此,机器上数据库就搭建完毕;优选的,数据库搭建单元还可以向机器发送监控安装包,机器运行该监控安装包后,就自动安装同步监控程序,用来监控数据库的同步状态,如果同步状态出现异常,安装同步程序可以自动恢复同步;其中,从数据库与主数据库建立同步关系的方法为:从数据库依据主数据库的当前日志位置,将自身的同步点设置为主数据库的当前日志位置,这样以后主数据库有新数据时,主数据库的日志位置就会更新,从数据库就会从更新后的日志位置获取数据;其中,主数据库的当前日志位置都是默认的,依据数据库版本不同会不一样,例如,5.0版本的数据库的当前日志位置是98,5.1版本的数据库的当前日志位置是106,可以在从数据库中进行设置;数据库搭建单元向数据同步单元发送通知消息,用于告知数据同步单元进行测试数据的同步操作。
[0092]步骤204,数据同步单元将线上实际数据同步到机器上搭建的数据库。[0093]具体的,在机器上搭建数据库完毕后,需要进行测试数据的准备工作,本优选实施例中,测试数据为线上实际数据,因此,数据同步单元需要将线上实际数据同步到搭建的数据库集群的主数据库中。
[0094]本优选实施例中,数据同步单元将线上实际数据同步到搭建的数据库集群的主数据库中的方法包括以下两种:
[0095]第一种方法是数据同步单元定时的从线上数据库下载包含线上实际数据的备份文件,然后将下载的备份文件拷贝到主数据库中,主数据库将备份文件自动还原恢复成线上实际数据,如此,主数据库就获得了线上实际数据;由于从数据库与主数据库已经建立主从同步关系,且主数据库获得线上实际数据后,主数据库的日志位置发生更新,因此从数据库就会从主数据库中更新后的日志位置获得线上实际数据,从而实现将线上数据库中存储的线上实际数据同步到数据库集群中的主数据库和从数据库,数据库集群中每个数据库都可以获得线上实际数据。
[0096]第二种方法是数据同步单元在线上数据库集群中的备份数据库下挂载一个线下的从数据库,这个挂载的从数据库就是数据库集群中的主数据库,如此,备份数据库就与数据库集群中的主数据库存在主从同步关系;其中,在线上数据库集群中的备份数据库下挂载一个线下的从数据库的方法为:数据同步单元依据线上数据库集群中的备份数据库的当前日志位置,将数据库集群中的主数据库的同步点设置为该备份数据库的当前日志位置,备份数据库中用于保存线上实际数据;如此,备份数据库有新数据时,备份数据库的日志位置就会更新,主数据库就会从备份数据库中更新后的日志位置获取线上实际数据。
[0097]可选的,该方法还可以包括步骤205和步骤206:
[0098]步骤205,采集控制单元将监控脚本发送给机器,机器运行监控脚本采集服务状态数据并保存到存储单兀。
[0099]具体的,所有测试环境都部署完成并投入测试使用后,如图3所示,采集控制单元将预设的监控脚本发送给部署有数据库的机器,监控脚本中预先配置需要采集的服务状态数据、采集周期、采集服务状态数据时调用的命令。
[0100]机器收到监控脚本后,运行该监控脚本,监控脚本依据需要采集的服务状态数据和采集周期,调用相应的命令进行服务状态数据的采集,然后将采集的服务状态数据提供给存储单元进行存储。例如,监控脚本调用df命令获取机器的磁盘利用率。
[0101]其中,服务状态数据包括数据库使用情况数据、产品线使用情况数据和机器监控数据,其中,监控脚本需要每天采集一次数据库使用情况数据,所述数据库使用情况数据包括:每天的连接数、读请求数、写请求数、主从数据库延迟时长、主从数据库同步情况等;监控脚本需要每个月采集一次产品线使用情况数据,所述产品线使用情况数据包括:每个月的数据量、实例数、数据库个数等;监控脚本需要每天定时采集一次机器监控数据,例如,采集周期可以是10S,监控脚本每隔IOs就需要采集一次机器监控数据;所述机器监控数据包括:磁盘利用率、CPU利用率、输入输出(1/0,Input/Output)、内存使用率、部署的数据库实例的个数等。
[0102]步骤206,服务监控单元依据存储单元中的服务状态数据,进行状态异常报警、测试结果显示和故障恢复操作。
[0103]具体的,如图3所示,服务监控单元对存储单元中的服务状态数据进行监控,当依据预设的报警策略判断出机器监控数据出现异常时,向第一用户发送报警邮件,报警邮件中携带出现异常的机器监控数据,以便第一用户可以及时获知出现的异常,还可以及时对异常进行处理;例如,报警策略可以是CPU利用率大于CPU利用率的阈值时进行报警、磁盘利用率大于磁盘利用率的阈值时进行报警等,当CPU利用率大于阈值时,服务监控单元就向第一用户报警,报警邮件中携带CPU利用率以及CPU利用率的阈值。
[0104]服务监控单元在判断出机器监控数据出现异常后,还可以调用预设的agent工具对异常进行自动故障恢复操作,如启动服务、建立主从同步等。
[0105]服务监控单元将测试结果显示给第一用户,测试结果包括监控脚本采集的数据库使用情况数据和产品线使用情况数据;对于数据库使用情况数据,服务监控单元依据存储单元中的数据库使用情况数据,对数据库使用情况数据进行按月份统计,利用一个月内的数据库使用情况数据对预设的highcharts展示模板进行渲染,生成测试结果页面;对于产品线使用情况数据,服务监控单元依据存储单元中的产品线使用情况数据,对产品线使用情况数据进行按天统计,利用一天内的产品线使用情况数据对预设的highcharts展示模板进行渲染,生成测试结果页面;最后,服务监控单元将生成的测试结果页面发送给交互单元进行显示,第一用户就可以查看到测试结果。
[0106]图4是本发明中依据申请信息在机器资源池中选择用于搭建数据库的机器的具体实现方法的流程示意图,如图4所示,该方法包括以下步骤:
[0107]步骤401,从存储单元读取监控脚本采集的机器资源池中机器的机器监控数据,如机器的磁盘剩余量、CPU利用率和部署的数据库实例的个数;依据机器上部署的数据库实例的个数由小到大的顺序对机器进行排序。
[0108]步骤402,从存储单元中获取数据库的申请信息,判断申请信息中测试类型是功能测试还是性能测试,如果是功能测试,执行步骤403,如果是性能测试,执行步骤404。
[0109]步骤403,对排序后的机器进行遍历,依据预设的机器资源池中每个机器的主机名,从机器资源池中选出物理机和虚拟机,其中,虚拟机的主机名是以vm.baidu.com为后缀,物理机的主机名是以baidu.com为后缀,因此依据主机名可以判断出机器是虚拟机还是物理机。
[0110]步骤404,对排序后的机器进行遍历,依据预设的机器资源池中每个机器的主机名,从机器资源池中选出物理机。
[0111]步骤405,对选出的机器进行遍历,计算遍历到的机器的磁盘剩余量与申请信息中预估数据量的差值。
[0112]步骤406,判断磁盘剩余量与预估数据量之间的差值与预设的数据量阈值的大小,如果该差值大于数据量阈值,执行步骤407,如果该差值小于或等于数据量阈值,执行步骤412。
[0113]步骤407,判断遍历到的机器的CPU利用率与预设的利用率阈值的大小,如果机器的CPU利用率大于利用率阈值,执行步骤408,如果机器的CPU利用率小于或等于利用率阈值,执行步骤412。
[0114]步骤408,将遍历到的机器的主机名和端口添加到可选机器列表中,并判断对选出的机器是否遍历完毕,如果遍历完毕,执行步骤409,如果没有遍历完毕,则继续遍历选出的机器,执行步骤405。[0115]步骤409,判断可选机器列表中机器的个数与申请信息中数据库列表中的数据库实例个数的大小,如果机器的个数大于或等于数据库实例个数,执行步骤410,如果机器的个数小于数据库实例个数,执行步骤412。
[0116]步骤410,判断可选机器列表中机器的端口号一致的机器的个数与数据库实例个数的大小,如果机器的个数大于或等于数据库实例个数,则执行步骤411,如果机器的个数小于数据库实例的个数,执行步骤412。
[0117]步骤411,在可选机器列表中端口号一致的机器中选出与数据库实例个数对应数量的机器,将选出的机器的主机名和端口号发送给数据库搭建单元。
[0118]步骤412,向交互单元返回机器分配失败的消息。
[0119]为实现上述方法,如图1所示,测试环境中数据库的运维系统中:
[0120]交互单元10,用于将用户提交的数据库的申请信息保存到存储单元11 ;
[0121]机器分配单元12,用于依据所述申请信息在机器资源池中选择机器,将选出机器的主机名和端口号发送给数据库搭建单元13 ;
[0122]数据库搭建单元13,用于依据选出机器的主机名和端口号,将数据库安装包、申请信息和安装命令发送给对应的机器,机器运行数据库安装包,依据申请信息安装数据库;
[0123]数据同步单元14,用于将线上实际数据同步到机器上搭建的数据库。
[0124]其中,所述数据库的申请信息包括如下信息:数据库版本、产品线名称、测试类型、数据库的使用时间、数据库的拓扑结构、磁盘类型、数据库列表、预估数据量和字符集。
[0125]其中,所述机器分配单元12在依据所述申请信息在机器资源池中选择机器时,具体包括:从存储单元获取数据库的申请信息和预设的机器资源池中机器的机器监控数据;依据申请信息中测试类型在机器资源池中选出虚拟机、或虚拟机和物理机;对选出的机器进行遍历,将磁盘剩余量大于申请信息中预估数据量且CPU利用率大于预设的利用率阈值的机器的主机名和端口号添加到可选机器列表,直到机器遍历完毕;当可选机器列表中端口号一致的机器的个数大于或等于申请信息中数据库列表中的数据库实例个数时,在可选机器列表中端口号一致的机器中选出与数据库实例个数对应数量的机器。
[0126]其中,所述数据库搭建单元13在将数据库安装包、申请信息和安装命令发送给对应的机器时,具体包括:先后将预先设置的数据库安装包、携带编译参数的编译命令和安装命令发送给对应的机器;所述编译参数依据从存储单元中获取的申请信息生成。
[0127]其中,所述机器运行数据库安装包,依据申请信息安装数据库具体包括:机器在本地运行数据库安装包,依据申请信息中对数据库的相关要求,完成数据库安装,并向数据库搭建单元返回安装成功的消息。
[0128]其中,所述数据库搭建单元13,还用于当安装的数据库数量为两个以上时,向两个以上数据库中的从数据库发送主从同步命令,所述主从同步命令中携带主数据库所在机器的主机名和端口号;所述从数据库将自身的同步点设置为主数据库的当前日志位置。
[0129]其中,所述数据同步单元14在将线上实际数据同步到机器上搭建的数据库时,具体包括:定时的从线上数据库下载包含线上实际数据的备份文件,将所述备份文件拷贝到数据库中,数据库将备份文件还原恢复成线上实际数据。
[0130]或,所述数据同步单元14在将线上实际数据同步到机器上搭建的数据库时,具体包括:在线上数据库集群中的备份数据库下挂载数据库,所述备份数据库的日志位置更新时,所述数据库从备份数据库中更新后的日志位置获取线上实际数据。
[0131]该系统还包括:
[0132]采集控制单元15,用于将监控脚本发送给机器,机器运行监控脚本采集服务状态数据并保存到存储单兀11 ;
[0133]服务监控单元16,用于依据存储单元11中的服务状态数据,进行状态异常报警、测试结果显示和故障恢复操作。
[0134]其中,所述监控脚本中配置有需要采集的服务状态数据、采集周期、采集服务状态数据时调用的命令;所述服务状态数据包括数据库使用情况数据、产品线使用情况数据和机器监控数据。
[0135]其中,所述服务监控单元16在进行状态异常报警时,具体包括:对存储单元中的服务状态数据进行监控,当依据预设的报警策略判断出机器监控数据出现异常时,向用户发送报警邮件,报警邮件中携带出现异常的机器监控数据。
[0136]其中,所述服务监控单元16在进行测试结果显示时,具体包括:利用存储单元中一个月内的数据库使用情况数据或一天内的产品线使用情况数据,对预设的展示模板进行渲染,生成测试结果页面,将生成的测试结果页面发送给交互单元进行显示。
[0137]本发明的上述技术方案中,对所有产品线的测试环境中的数据库进行统一自动部署和运维,只需要测试人员配置数据库的申请信息即可,不再需要测试人员进行人工部署数据库,而是依据机器的负载情况自动分配机器并自动部署数据库,节省人力物力资源,从而提高测试环境中数据库的部署效率,能够加快测试进度,缩短测试周期,提高机器的利用率;数据库集群中的测试数据实时与线上数据库进行同步,利用线上实际数据进行测试,因而能够提高互联网产品线的性能测试结果的可信度;能够将服务异常情况及时向数据库管理员进行报警,避免测试人员在使用时才发现问题对测试进度的影响。
[0138]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种测试环境中数据库的运维系统,其特征在于,该系统包括:交互单元、机器分配单元、数据库搭建单元、数据同步单元、存储单元;其中, 交互单元,用于将用户提交 的数据库的申请信息保存到存储单元; 机器分配单元,用于依据所述申请信息在机器资源池中选择机器,将选出机器的主机名和端口号发送给数据库搭建单元; 数据库搭建单元,用于依据选出机器的主机名和端口号,将数据库安装包、申请信息和安装命令发送给对应的机器,机器运行数据库安装包,依据申请信息安装数据库; 数据同步单元,用于将线上实际数据同步到机器上搭建的数据库。
2.根据权利要求1所述的系统,其特征在于,所述数据库的申请信息包括如下信息:数据库版本、产品线名称、测试类型、数据库的使用时间、数据库的拓扑结构、磁盘类型、数据库列表、预估数据量和字符集。
3.根据权利要求1所述的系统,其特征在于,所述机器分配单元在依据所述申请信息在机器资源池中选择机器时,具体包括: 从存储单元获取数据库的申请信息和预设的机器资源池中机器的机器监控数据; 依据申请信息中测试类型在机器资源池中选出虚拟机、或虚拟机和物理机; 对选出的机器进行遍历,将磁盘剩余量大于申请信息中预估数据量且CPU利用率大于预设的利用率阈值的机器的主机名和端口号添加到可选机器列表,直到机器遍历完毕; 当可选机器列表中端口号一致的机器的个数大于或等于申请信息中数据库列表中的数据库实例个数时,在可选机器列表中端口号一致的机器中选出与数据库实例个数对应数量的机器。
4.根据权利要求1所述的系统,其特征在于,所述数据库搭建单元在将数据库安装包、申请信息和安装命令发送给对应的机器时,具体包括: 先后将预先设置的数据库安装包、携带编译参数的编译命令和安装命令发送给对应的机器;所述编译参数依据从存储单元中获取的申请信息生成。
5.根据权利要求1所述的系统,其特征在于,所述机器运行数据库安装包,依据申请信息安装数据库具体包括: 机器在本地运行数据库安装包,依据申请信息中对数据库的相关要求,完成数据库安装,并向数据库搭建单元返回安装成功的消息。
6.根据权利要求1所述的系统,其特征在于, 所述数据库搭建单元,还用于当安装的数据库数量为两个以上时,向两个以上数据库中的从数据库发送主从同步命令,所述主从同步命令中携带主数据库所在机器的主机名和端口号;所述从数据库将自身的同步点设置为主数据库的当前日志位置。
7.根据权利要求1所述的系统,其特征在于,所述数据同步单元在将线上实际数据同步到机器上搭建的数据库时,具体包括: 定时的从线上数据库下载包含线上实际数据的备份文件,将所述备份文件拷贝到数据库中,数据库将备份文件还原恢复成线上实际数据。
8.根据权利要求1所述的系统,其特征在于,所述数据同步单元在将线上实际数据同步到机器上搭建的数据库时,具体包括: 在线上数据库集群中的备份数据库下挂载数据库,所述备份数据库的日志位置更新时,所述数据库从备份数据库中更新后的日志位置获取线上实际数据。
9.根据权利要求1所述的系统,其特征在于,该系统还包括: 采集控制单元,用于将监控脚本发送给机器,机器运行监控脚本采集服务状态数据并保存到存储单元; 服务监控单元,用于依据存储单元中的服务状态数据,进行状态异常报警、测试结果显示和故障恢复操作。
10.根据权利要求9所述的系统,其特征在于, 所述监控脚本中配置有需要采集的服务状态数据、采集周期、采集服务状态数据时调用的命令; 所述服务状态数据包括数据库使用情况数据、产品线使用情况数据和机器监控数据。
11.根据权利要求10所述的系统,其特征在于,所述服务监控单元在进行状态异常报警时,具体包括: 对存储单元中的服务状态数据进行监控,当依据预设的报警策略判断出机器监控数据出现异常时,向用户发送报警邮件,报警邮件中携带出现异常的机器监控数据。
12.根据权利要求10所述的系统,其特征在于,所述服务监控单元在进行测试结果显示时,具体包括: 利用存储单元中一个月内的数据库使用情况数据或一天内的产品线使用情况数据,对预设的展示模板进行渲染,生成测试结果页面,将生成的测试结果页面发送给交互单元进行显示。
13.—种测试环境中数据库的运维方法,其特征在于,该方法包括: 交互单元将用户提交的数据库的申请信息保存到存储单元; 机器分配单元依据所述申请信息在机器资源池中选择机器,将选出机器的主机名和端口号发送给数据库搭建单元; 数据库搭建单元依据选出机器的主机名和端口号,将数据库安装包、申请信息和安装命令发送给对应的机器,机器运行数据库安装包,依据申请信息安装数据库; 数据同步单元将线上实际数据同步到机器上搭建的数据库。
14.根据权利要求13所述的方法,其特征在于,所述数据库的申请信息包括如下信息:数据库版本、产品线名称、测试类型、数据库的使用时间、数据库的拓扑结构、磁盘类型、数据库列表、预估数据量和字符集。
15.根据权利要求13所述的方法,其特征在于,所述机器分配单元依据所述申请信息在机器资源池中选择机器具体包括: 从存储单元获取数据库的申请信息和预设的机器资源池中机器的机器监控数据; 依据申请信息中测试类型在机器资源池中选出虚拟机、或虚拟机和物理机; 对选出的机器进行遍历,将磁盘剩余量大于申请信息中预估数据量且CPU利用率大于预设的利用率阈值的机器的主机名和端口号添加到可选机器列表,直到机器遍历完毕; 当可选机器列表中端口号一致的机器的个数大于或等于申请信息中数据库列表中的数据库实例个数时,在可选机器列表中端口号一致的机器中选出与数据库实例个数对应数量的机器。
16.根据权利要求13所述的方法,其特征在于,所述将数据库安装包、申请信息和安装命令发送给对应的机器具体包括: 先后将预先设置的数据库安装包、携带编译参数的编译命令和安装命令发送给对应的机器;所述编译参数依据从存储单元中获取的申请信息生成。
17.根据权利要求13所述的方法,其特征在于,所述机器运行数据库安装包,依据申请信息安装数据库具体包括: 机器在本地运行数据库安装包,依据申请信息中对数据库的相关要求,完成数据库安装,并向数据库搭建单元返回安装成功的消息。
18.根据权利要求13所述的方法,其特征在于,该方法还包括: 当安装的数据库数量为两个以上时,数据库搭建单元向两个以上数据库中的从数据库发送主从同步命令,所述主从同步命令中携带主数据库所在机器的主机名和端口号; 所述从数据库将自身的同步点设置为主数据库的当前日志位置。
19.根据权利要求13所述的方法,其特征在于,所述数据同步单元将线上实际数据同步到机器上搭建的数据库具体包括: 数据同步单元定时的从线上数据库下载包含线上实际数据的备份文件,将所述备份文件拷贝到数据库中,数据库将备份文件还原恢复成线上实际数据。
20.根据权利要求13所述的方法,其特征在于,所述数据同步单元将线上实际数据同步到机器上搭建的数据库具体包括: 数据同步单元在线上数据库集群中的备份数据库下挂载数据库,所述备份数据库的日志位置更新时,所述数据库从备份数据库中更新后的日志位置获取线上实际数据。
21.根据权利要求13所述的方法,其特征在于,该方法还包括: 采集控制单元将监控脚本发送给机器,机器运行监控脚本采集服务状态数据并保存到存储单兀; 服务监控单元依据存储单元中的服务状态数据,进行状态异常报警、测试结果显示和故障恢复操作。
22.根据权利要求21所述的方法,其特征在于, 所述监控脚本中配置有需要采集的服务状态数据、采集周期、采集服务状态数据时调用的命令; 所述服务状态数据包括数据库使用情况数据、产品线使用情况数据和机器监控数据。
23.根据权利要求22所述的方法,其特征在于,所述服务监控单元进行状态异常报警具体包括: 对存储单元中的服务状态数据进行监控,当依据预设的报警策略判断出机器监控数据出现异常时,向用户发送报警邮件,报警邮件中携带出现异常的机器监控数据。
24.根据权利要求22所述的方法,其特征在于,所述服务监控单元进行测试结果显示具体包括: 服务监控单元利用存储单元中一个月内的数据库使用情况数据或一天内的产品线使用情况数据,对预设的展示模板进行渲染,生成测试结果页面,将生成的测试结果页面发送给交互单元进行显示。
【文档编号】G06F17/30GK103902542SQ201210570421
【公开日】2014年7月2日 申请日期:2012年12月25日 优先权日:2012年12月25日
【发明者】余邵在, 丁超, 陶仕敏 申请人:百度在线网络技术(北京)有限公司