一种基于云的数据库的检测方法和装置与流程

文档序号:11134560阅读:301来源:国知局
一种基于云的数据库的检测方法和装置与制造工艺
本申请涉及计算机处理的
技术领域
,特别是涉及一种基于云的数据库的检测方法和一种基于云的数据库的检测装置。
背景技术
:随着云计算规模越来越大,基于云的各种产品,如虚拟主机、云数据库等,广泛进入人们的生活、学习、工作等领域。由于云的优越性,使得大量用户选择将计算机架构部署在云端,数据会选择云数据库进行存储。云数据库的运维和优化的技术门槛较高,而用户对数据库知识掌握不全,导致很多用户并不具备运维好数据库的能力,使得云数据库实例在性能方面和安全方面存在不同程度的隐患。在性能方面,由于运维和优化不好,导致云数据库性能运行效率很低,甚至会影响自身的业务处理。在安全方面,由于运维和优化不好,导致存在监控的漏洞,容易被不法分子盗取数据。技术实现要素:鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于云的数据库的检测方法和相应的一种基于云的数据库的检测装置。为了解决上述问题,本申请实施例公开了一种于云的数据库的检测方法,包括:确定针对一个或多个数据库实例进行检测的检测类型;所述检测类型包括性能检测和/或安全检测;根据所述检测类型调整所述一个或多个数据库实例的优先级;按照调整之后的优先级对所述一个或多个数据库实例进行性能检测和/或安全检测,获得性能检测结果和/或安全检测结果;当所述性能检测结果和/或所述安全检测结果中与预设的性能问题和/或安全问题匹配时,生成数据库处理提示信息;推送所述性能检测结果和/或安全检测结果、数据库处理提示信息。优选地,所述根据所述检测类型调整所述一个或多个数据库实例的优先级的步骤包括:当检测类型为性能检测时,提高符合预设的低性能条件的数据库实例的优先级;和/或,当检测类型为性能检测时,提高调用频率高于预设的频率阈值的数据库实例的优先级;和/或,当检测类型为安全检测时,提高创建时间小于预设的时间阈值的数据库实例的优先级;和/或,当检测类型为安全检测时,提高优先级低于预设的优先级阈值的数据库实例的优先级。优选地,所述按照调整之后的优先级对所述一个或多个数据库实例进行性能检测和/或安全检测,获得性能检测结果和/或安全检测结果的步骤包括:按照调整之后的优先级判断所述一个或多个数据库实例的性能状态;当所述性能状态符合预设的低性能条件时,对所述数据库实例进行性能检测,获得性能检测结果。优选地,所述按照调整之后的优先级判断所述一个或多个数据库实例的性能状态的步骤包括:按照调整之后的优先级判断所述一个或多个数据库实例的CPU利用率、I/O读写频率、连接数量、磁盘空间使用率中的至少一种性能状态;其中,当至少满足以下一个条件时,所述性能状态满足预设的的低性能 条件:所述CPU利用率高于预设的利用率阈值、所述I/O读写频率高于预设的读写频率阈值、所述连接数量大于预设的连接数量阈值、所述磁盘空间使用率大于预设的使用率阈值。优选地,所述对所述数据库实例进行性能检测,获得性能检测结果的步骤包括:对所述数据库实例的配置、表结构、SQL语句、架构中的至少一种属性进行性能检测,获得配置检测结果、表结构检测结果、SQL语句检测结果、架构检测结果中的至少一种性能检测结果。优选地,所述当所述性能检测结果和/或所述安全检测结果中与预设的性能问题和/或安全问题匹配时,生成数据库处理提示信息的步骤包括:当所述配置检测结果与预设的低配置条件匹配时,生成提升配置的数据库处理提示信息;和/或,当所述表结构检测结果与预设的不合理结构条件匹配时,生成调整表结构的数据库处理提示信息;和/或,当所述SQL语句检测结果与预设的问题语句条件匹配时,生成修改SQL语句的数据库处理提示信息;和/或,当所述架构检测结果与预设的问题架构条件匹配时,生成调整架构的数据库处理提示信息。优选地,所述按照调整之后的优先级对所述一个或多个数据库实例进行性能检测和/或安全检测,获得性能检测结果和/或安全检测结果的步骤包括:按照调整之后的优先级抓取发往所述一个或多个数据库实例的数据包;针对所述数据包进行密码破解、SQL注入、白名单中的至少一种安全检测,获得密码破解检测结果、SQL注入检测结果、白名单检测结果中的至少一种安全检测结果。优选地,所述当所述性能检测结果和/或所述安全检测结果中与预设的性能问题和/或安全问题匹配时,生成数据库处理提示信息的步骤包括:当所述密码破解检测结果表示出现密码破解行为时,生成攻击来源、调整白名单、调整密码中的至少一者的数据库处理提示信息;和/或,当所述SQL注入检测结果表示出现SQL注入行为时,生成当前的SQL语句、检查应用程序中至少一者的数据库处理提示信息;和/或,当所述白名单结果与预设的大范围条件匹配时,生成修改白名单的数据库处理提示信息。本申请实施例还公开了一种基于云的数据库的检测装置,包括:检测类型确定模块,用于确定针对一个或多个数据库实例进行检测的检测类型;所述检测类型包括性能检测和/或安全检测;优先级调整模块,用于根据所述检测类型调整所述一个或多个数据库实例的优先级;检测模块,用于按照调整之后的优先级对所述一个或多个数据库实例进行性能检测和/或安全检测,获得性能检测结果和/或安全检测结果;提示信息生成模块,用于在所述性能检测结果和/或所述安全检测结果中与预设的性能问题和/或安全问题匹配时,生成数据库处理提示信息;推送模块,用于推送所述性能检测结果和/或安全检测结果、数据库处理提示信息。优选地,所述优先级调整模块包括:第一提高子模块,用于在检测类型为性能检测时,提高符合预设的低性能条件的数据库实例的优先级;和/或,第二提高子模块,用于在检测类型为性能检测时,提高调用频率高于预设的频率阈值的数据库实例的优先级;和/或,第三提高子模块,用于在检测类型为安全检测时,提高创建时间小于预设的时间阈值的数据库实例的优先级;和/或,第四提高子模块,用于在检测类型为安全检测时,提高优先级低于预设的优先级阈值的数据库实例的优先级。优选地,所述检测模块包括:性能状态判断子模块,用于按照调整之后的优先级判断所述一个或多个数据库实例的性能状态;性能检测子模块,用于在所述性能状态符合预设的低性能条件时,对所述数据库实例进行性能检测,获得性能检测结果。优选地,所述性能状态判断子模块包括:性能判断单元,用于按照调整之后的优先级判断所述一个或多个数据库实例的CPU利用率、I/O读写频率、连接数量、磁盘空间使用率中的至少一种性能状态;其中,当至少满足以下一个条件时,所述性能状态满足预设的的低性能条件:所述CPU利用率高于预设的利用率阈值、所述I/O读写频率高于预设的读写频率阈值、所述连接数量大于预设的连接数量阈值、所述磁盘空间使用率大于预设的使用率阈值。优选地,所述性能检测子模块包括:数据库实例属性检测单元,用于对所述数据库实例的配置、表结构、SQL语句、架构中的至少一种属性进行性能检测,获得配置检测结果、表结构检测结果、SQL语句检测结果、架构检测结果中的至少一种性能检测结果。优选地,所述提示信息生成模块包括:第一生成子模块,用于在所述配置检测结果与预设的低配置条件匹配时,生成提升配置的数据库处理提示信息;和/或,第二生成子模块,用于在所述表结构检测结果与预设的不合理结构条件匹配时,生成调整表结构的数据库处理提示信息;和/或,第三生成子模块,用于在所述SQL语句检测结果与预设的问题语句条件匹配时,生成修改SQL语句的数据库处理提示信息;和/或,第四生成子模块,用于在所述架构检测结果与预设的问题架构条件匹配时,生成调整架构的数据库处理提示信息。优选地,所述检测模块包括:抓包子模块,用于按照调整之后的优先级抓取发往所述一个或多个数据库实例的数据包;安全检测子模块,用于针对所述数据包进行密码破解、SQL注入、白名单中的至少一种安全检测,获得密码破解检测结果、SQL注入检测结果、白名单检测结果中的至少一种安全检测结果。优选地,所述提示信息生成模块包括:第五生成子模块,用于在所述密码破解检测结果表示出现密码破解行为时,生成攻击来源、调整白名单、调整密码中的至少一者的数据库处理提示信息;和/或,第六生成子模块,用于在所述SQL注入检测结果表示出现SQL注入行为时,生成当前的SQL语句、检查应用程序中至少一者的数据库处理提示信息;和/或,第七生成子模块,用于在所述白名单结果与预设的大范围条件匹配时,生成修改白名单的数据库处理提示信息。本申请实施例包括以下优点:本申请实施例按照检测类型调整数据库实例的优先级,按照优先级数据 库实例的优先级,若出现性能问题、安全问题,则生成数据库实例处理提示信息进行推送,实现了主动运维的云数据库管家服务,大大降低了云据库的运维和优化的技术门槛,大大减少了云数据库实例在性能方面和安全方面的隐患,一方面,提高了云数据库的运行效率,保证业务处理,另一方面,减少监控的漏洞,保证云数据库中的数据安全。附图说明图1是本申请的一种基于云的数据库的检测方法实施例的步骤流程图;图2是本申请的一种基于云的数据库的检测装置实施例的结构框图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。参照图1,示出了本申请的一种基于云的数据库的检测方法实施例的步骤流程图,具体可以包括如下步骤:步骤101,确定针对一个或多个数据库实例进行检测的检测类型;需要说明的是,本申请实施例可以应用于云平台(cloudplatforms)中。云平台是应用云计算(cloudcomputing)的一种计算机集群,如分布式系统,提供云计算服务,如ECS(ElasticComputeService,云服务器)虚拟机、RDS(RelationalDatabaseService,关系型数据库服务)数据库、OSS(OpenStorageService,开放存储服务)存储,等等。通常,数据库是一个逻辑上的概念,而对应到实际的物理概念上,可以指磁盘上的一个或者一堆文件,里边包含着数据。本申请实施例所指数据库可以为云数据库,如关系型数据库实例等等。数据库实例是计算机内存中处于运行状态的数据库程序,以及为这些程序分配的一些内存空间,实例负责实现给用户提供网络连接、读写数据文件等等各种功能。以RDS数据库作为云数据库的一种示例,该RDS数据库是将直接运行 于物理服务器上的数据库实例提供给用户,可以支持MySQL、SQL(StructuredQueryLanguage,结构化查询语言)Server和PostgreSQL等关系型数据库的访问协议目前数据库的代码、应用程序和工具也可以应用在RDS数据库上,用户可以通过浏览器等客户端对云平台中的RDS数据库进行操作,减小重新开发成本。云平台中的RDS数据库承担了耗时费力的数据库管理任务,使得用户能够专心于应用开发和业务发展。由于关系型数据库等云数据库的运维和优化的技术门槛较高,而一般用户不具备相应的专业知识,因此,本申请实施例提出了一种主动运维的云数据库管家服务,主动对云数据库实例进行性能、安全等维度的检测,即检测类型可以包括性能检测和/或安全检测。步骤102,根据所述检测类型调整所述一个或多个数据库实例的优先级;在实际应用中,云平台中的云数据库实例的数量是十分之多的,并不能一次性对全部云数据库实例进行检测,因此,可以采用以下方式调整数据库实例的优先级:1、当检测类型为性能检测时,提高符合预设的低性能条件的数据库实例的优先级;在此方式中,可以预先设定表征数据库实例性能较低的低性能条件,例如,CPU利用率较高、I/O读写频率较高、连接数较多、磁盘空间使用率较高等等。若云数据库实例经常满足(如一段时间内的满足频次高于一定的频次阈值)该低性能条件,表示该云数据库实例可能存在性能瓶颈,则可以提高其优先级,以优先进行性能检测。2、当检测类型为性能检测时,提高调用频率高于预设的频率阈值的数据库实例的优先级;在此方式中,若用户调用云数据库实例,如打开云数据库的管理页面、在云数据库中进行读写操作等等,则可以记录调用频率。若云数据库实例的调用频率高于预设的频率阈值,表示该云数据库实例使用频繁,则可以提高其优先级,以优先进行性能检测。3、当检测类型为安全检测时,提高创建时间小于预设的时间阈值的数据库实例的优先级;在此方式中,若云数据库实例的提高创建时间小于预设的时间阈值,表示该云数据库实例的创建时间较短,为新创建的云数据库实例,各项安全性能一般未优化到最佳状态,则可以提高其优先级,以优先进行安全检测。4、当检测类型为安全检测时,提高优先级低于预设的优先级阈值的数据库实例的优先级。在此方式中,若云数据库实例的优先级低于预设的优先级阈值,表示该云数据库实例的优先级较低,即非优先检测的对象,则可以适时提高其优先级,防止被饿死(即长时间未进行安全检测)。当然,上述调整优先级的方式只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他调整优先级的方式,本申请实施例对此不加以限制。另外,除了上述调整优先级的方式外,本领域技术人员还可以根据实际需要采用其它调整优先级的方式,本申请实施例对此也不加以限制。步骤103,按照调整之后的优先级对所述一个或多个数据库实例进行性能检测和/或安全检测,获得性能检测结果和/或安全检测结果;不同检测类型的检测具有对应的优先级,检测类型的优先级越高,越优先进行该检测类型的检测。如,性能检测的优先级越高的,越优先进行性能检测;又如,安全检测的优先级越高的,越优先进行安全检测。当然,对于同一个云数据库实例,可以单独进行性能检测,也可以单独进行安全检测,还可以同时进行性能检测和安全检测,本申请实施例对此不加以限制。在本申请的一种优选实施例中,步骤103可以包括如下子步骤:子步骤S11,按照调整之后的优先级判断所述一个或多个数据库实例的性能状态;子步骤S12,当所述性能状态符合预设的低性能条件时,对所述数据库实例进行性能检测,获得性能检测结果。在本申请实施例中,可以定时对云数据库实例进行性能状态的判断,识别云数据库实例的性能现状。若云数据库实例的性能状态符合预设的低性能条件,表示该云数据库实例的性能较低,存在性能异常,可以进行性能检测。进一步而言,本申请实施例可以按照调整之后的优先级判断一个或多个数据库实例的CPU(CentralProcessingUnit,中央处理器)利用率、I/O(Input/Output,输入/输出端口)读写频率、连接数量、磁盘空间使用率中的至少一种性能状态。在实际应用中,云数据库在物理机上是面对多个用户的,云平台可以采用物理隔离的方式分配给多个用户。由于多个云数据库实例是共用一个物理机的资源,云平台可以针对云数据库实例的配置分配相应的CPU资源、IOPS(即每秒进行读写(I/O)操作的次数)、连接数量、磁盘空间等等。用户分配云数据库实例后,可以产生一个唯一的实例ID,发起性能检测时,可以根据这个实例ID去检测其自身使用的CPU利用率、I/O读写频率、连接数量、磁盘空间使用率等等。对于CPU利用率,是指云数据库实例当前消耗的CPU资源占所分配的CPU资源的比率。假如,针对240M内存(配置)的云数据库实例,云平台会可以分配给这个云数据库实例该物理机10%的CPU资源,如果该云数据库实例使用了该物理机5%的CPU资源,这个时候这个云数据库实例的CPU利用率是50%。对于I/O读写频率,是指云数据库实例分配到此台物理机上的I/O读写频率,可以以IOPS进行表征。进一步而言,用户的一个云数据库实例,在物理机上是一个进程,可以采用cgroup进行进程隔离,通过cgroup可以明确显示出该云数据库实例所 使用的IOPS。对于连接数量,是指云数据库实例与客户端(应用程序,命令行工具等)的连接数量。云数据库实例中可以具有管理连接数量的参数connections,通过查询该参数connections可以明确表明当前的连接数量。对于磁盘空间使用率,是指云数据库实例当前使用的磁盘空间占所分配的磁盘空间的比率。假如,针对240M内存(配置)的云数据库实例,云平台会可以分配给这个云数据库实例该物理机的10G的磁盘空间,如果该云数据库实例使用了该物理机3G的磁盘空间,这个时候这个云数据库实例的磁盘空间使用率是30%。其中,当至少满足以下一个条件时,性能状态满足预设的的低性能条件:1、CPU利用率高于预设的利用率阈值;在具体实现中,用户或者云平台的技术人员可以按照云数据库实例的配置设定相应的利用率阈值。若CPU利用率高高于预设的利用率阈值,如80%,则可以表示CUP利用率较高。CPU利用率较高可以会引起发往云数据库实例的SQL语句执行会比较慢,导致云数据库实例的性能下降。2、I/O读写频率高于预设的读写频率阈值;在具体实现中,用户或者云平台的技术人员可以按照云数据库实例的配置设定相应的读写频率阈值。若I/O读写频率(如IOPS)高于预设的读写频率阈值,则可以表示I/O读写频率较高。例如,针对240M内存(配置)的云数据库实例,云平台可以分配150的IOPS,如果该云数据库实例的IOPS为140,IOPS使用率超过了读写频率阈值80%,可以认为读写频率较高。在I/O读写频率(如IOPS)较高的情况下,容易导致云数据库实例的性 能下降。例如,有的SQL查询需要进行旧数据的访问(数据在磁盘上),该操作就会非常慢。3、连接数量大于预设的连接数量阈值;在具体实现中,用户或者云平台的技术人员可以按照云数据库实例的配置设定相应的连接数量阈值。需要说明的的是,该连接数量阈值可以是数值表示,也可以是连接率表示。当连接数量阈值为数值时,可以直接将连接数量与连接数量阈值进行比较。当连接数量阈值为连接率时,可以将连接数量转换为连接率(即已使用的连接数量/配置的连接数量),再与连接数量阈值进行比较,也可以将连接数量阈值转换为连接数量(即配置的连接数量*连接数量阈值),再与连接数量进行比较。若连接数量大于预设的连接数量阈值,则可以表示连接数量较高。连接数量较高可以提示用户需要注意应用的使用,有可能是因为有不合理的SQL语句执行时间过长,导致连接没有释放掉。此外,连接数量较高会占用过大内存,使内存中承载的数据过少,影响云数据库实例的响应时间。如果连接数占满(即到达配置的最大连接数量)后,将不允许有新连接,会使用户的业务停掉。4、磁盘空间使用率大于预设的使用率阈值。在具体实现中,用户或者云平台的技术人员可以按照云数据库实例的配置设定相应的使用率阈值。若磁盘空间使用率大于预设的使用率阈值,则可以表示磁盘空间占用较多。磁盘占用过大通常是由于数据文件过大,日志文件过大,临时文件过大等引起的,其中,临时文件过大多半是存在不合理的SQL语句查询、换用 磁盘空间操作等现象,这种情况会严重的影响数据库实例性能。当然,上述性能状态只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他性能状态,本申请实施例对此不加以限制。另外,除了上述性能状态外,本领域技术人员还可以根据实际需要采用其它性能状态,本申请实施例对此也不加以限制。此外,本申请实施例还可以对数据库实例的配置、表结构、SQL语句、架构中的至少一种属性进行性能检测,获得配置检测结果、表结构检测结果、SQL语句检测结果、架构检测结果中的至少一种性能检测结果。具体而言,配置指的是云数据库的型号,其反映的是所分配的硬件资源情况,可以影响云数据库实例的性能高低,其示例可以如下表所示:型号连接数量IOPS磁盘空间240M6015010G600M15030020G1200M30060050G若对配置进行性能检测,则可以获得配置检测结果。一个数据库中可能包含若干个数据表,本申请实施例的表结构中的表指的是云数据库中的数据表,是用来存储和操作数据的一种逻辑结构,例如,一个表a,里面含有三个字段,log1、log2、log3。表结构是否合理,影响着SQL语句的执行,从而影响云数据库实例性能。若对表结构进行性能检测,则可以获得表结构检测结果。SQL语句是数据库的操作命令集,可以对云数据库中的数据进行查询、更新(如插入、删除、修改)、控制等操作,直接体现云数据库实例的性能。若对SQL语句进行性能检测,则可以获得SQL语句检测结果。架构指的数据库的应用架构,架构是否有问题,影响着云数据库实例的性能。例如,若数据库实例读操作较多、写操作较少,可以使用只读实例,提供一主多读的架构;又例如,若数据库实例的写操作非常多,可以使用水平拆分的架构,扩展写能力。当然,上述性能检测只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他性能检测,本申请实施例对此不加以限制。另外,除了上述性能检测外,本领域技术人员还可以根据实际需要采用其它性能检测,本申请实施例对此也不加以限制。在本申请的另一种优选实施例中,步骤103可以包括如下子步骤:子步骤S21,按照调整之后的优先级抓取发往所述一个或多个数据库实例的数据包;子步骤S22,针对所述数据包进行密码破解、SQL注入、白名单中的至少一种安全检测,获得密码破解检测结果、SQL注入检测结果、白名单检测结果中的至少一种安全检测结果。在本申请实施例中,可以针对云数据库实例进行安全维度的检查,一般采用数据库实例抓包的方式,通过协议分析,查看发往数据库实例的语句是否有密码破解、SQL注入攻击等风险。具体而言,本申请实施例密码破解中密码指的是云数据库的登录密码,可以由云数据库所属的用户进行设置,不法分子可能通过穷举等方式进行暴力破解。若进行密码破解的安全检测,则可以获得密码破解检测结果。SQL注入,指的是把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。即SQL诸如是利用现有应用程序,将恶意的SQL语句注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意的SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。若进行SQL注入的安全检测,则可以获得SQL注入检测结果。白名单指的是可信的名单(如IP地址),云数据库可以仅接受来自白名单的访问,拒绝白名单之外的访问。若进行白名单的安全检测,则可以获得白名单检测结果。当然,上述性能检测只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他性能检测,本申请实施例对此不加以限制。另外,除了上述性能检测外,本领域技术人员还可以根据实际需要采用其它性能检测,本申请实施例对此也不加以限制。步骤104,当所述性能检测结果和/或所述安全检测结果中与预设的性能问题和/或安全问题匹配时,生成数据库处理提示信息;若性能检测结果与预设的性能问题匹配时,表明当前的云数据库实例可能存在同样的性能问题,则可以生成对应的数据库处理提示信息,建议对数据库进行处理,以提升性能。若安全检测结果与预设的安全问题匹配时,表明当前的云数据库实例可能存在同样的安全问题,则可以生成对应的数据库处理提示信息,建议对数据库进行处理,以提升安全性。在具体实现中,针对性能检测可以通过以下的一种或多种方式生成数据库处理提示信息:1、当所述配置检测结果与预设的低配置条件匹配时,生成提升配置的数据库处理提示信息;如果当前CPU利用率、连接数量、IOPS等较高(如大于80%),并且数据库的表结构也比较合理(如索引、存储引擎等信息均没有问题),就可能该款型号的云数据库的硬件资源过低,则判断匹配低配置条件。若配置检测结果与预设的低配置条件匹配,则可以表示当前云数据库的配置较低,可能导致CPU利用率高、连接数量多、IOPS高、SQL语句执行慢等性能低下现象。需要说明的是,低配置条件是一个相对条件,是针对当前的业务而言的,如240M内存的云数据库的配置,对而网页访问业务言可能是低配置,但对于存储日志业务而言可能是高配置。针对当前云数据库不能满足用户的业务需求的情况,可以建议升级配置(数据库处理提示信息)。进一步而言,可以根据该云数据库目前的使用情况(如CPU使用率、IOPS、连接数量、磁盘空间等)给出推荐的合理配置。2、当所述表结构检测结果与预设的不合理结构条件匹配时,生成调整表结构的数据库处理提示信息;如果IOPS高,并且查询有大量的慢查询,则可以判断匹配不合理结构条件。若表结构检测结果与预设的不合理结构条件匹配,则可以表示当前云数据库的数据包的结构不合理,大多数情况可能导致IOPS高,有时候可能导致连接数量高、CPU利用率高,从而影响云数据库实例的性能。针对不合理的表结构,则可以建议调整(如修改、增加)表结构(数据库处理提示信息)。例如,对于慢查询,可以建立一条索引,从而将慢查询消除,大大降低IOPS。3、当所述SQL语句检测结果与预设的问题语句条件匹配时,生成修改SQL语句的数据库实例处理提示信息;若当前执行的SQL语句是慢查询,则可以判断匹配问题语句条件。若SQL语句检测结果与预设的问题语句条件匹配,则可以表示SQL语句出现问题,大多数情况可能导致IOPS高,有时候可能导致连接数高、cpu利用率高,从而影响云数据库实例的性能。针对有问题的SQL语句,可以建议修改SQL语句(数据库处理提示信息)。例如,若SQL语句查询性能过慢,分析是由于隐式转换的原因没有匹配上索引,可以提示用户修改SQL语句的调用方式。4、当所述架构检测结果与预设的问题架构条件匹配时,生成调整架构的数据库处理提示信息。若根据用户SQL语句的场景,判断读操作较多、写操作较少,或者,写操作瓶颈严重,并且,如果无法再升级配置,则可以判断匹配问题架构条件。若架构检测结果与预设的问题架构条件匹配,则可以表示当前云数据库的架构出现问题,可能导致数据库实例性能出现瓶颈,并不能很好地支持自身的业务。针对有问题的架构,可以建议修改数据库架构(数据库处理提示信息)。例如,在读操作较多、写操作较少等场景,提示用户应用只读实例。又例如,在写操作出现瓶颈等场景,建议使用分布式数据库。此外,针对安全检测可以通过以下的一种或多种方式生成数据库处理提示信息:1、当所述密码破解检测结果表示出现密码破解行为时,生成攻击来源、调整白名单、调整密码中至少一者的数据库处理提示信息;若出现某个IP地址连续N(N为可由用户调整的正整数)次登录错误等情况,则可以认为出现密码破解行为。针对密码破解行为,可以生成相应的数据库处理提示信息,提示用户攻击来自哪个IP地址,或者,建议调整白名单,拒绝来自该IP地址的访问,或者,提示调整密码,以提高密码的强度,防止被暴力破解。2、当所述SQL注入检测结果表示出现SQL注入行为时,生成当前的SQL语句、检查应用程序中至少一者的数据库处理提示信息;若SQL语句与一些常用的注入语句匹配,则可以认为出现SQL注入行为。例如,表的名称通常是admin、adminuser、user、pass、password等,通过and0<>(selectcount(*)from%)(%为表的名称)等SQL语句可以进行猜表。针对SQL注入行为,可以生成相应的数据库处理提示信息,提示用户当前发生注入行为的SQL语句是什么,建议用户核查自己的应用程序确认是否出现SQL注入,让用户自行修改应用程序。3、当所述白名单结果与预设的大范围条件匹配时,生成修改白名单的数据库处理提示信息。若白名单设置了%(即允许所有IP地址访问),则可以判断匹配大范围 条件匹配。若白名单结果与预设的大范围条件匹配,则可以认为白名单范围过大,进一步可以建议修改白名单,并跳转到白名单修改页面进行修改。当然,上述数据库处理提示信息只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他数据库处理提示信息,本申请实施例对此不加以限制。另外,除了上述数据库处理提示信息外,本领域技术人员还可以根据实际需要采用其它数据库处理提示信息,本申请实施例对此也不加以限制。需要说明的是,前述性能问题、安全问题、低性能条件、低配置条件、不合理结构条件、问题语句条件、问题架构条件、大范围条件等可以由本领域技术人员根据实际情况进行设定,本申请实施例对此不加以限制。步骤105,推送所述性能检测结果和/或安全检测结果、数据库处理提示信息。当性能检测、安全检测结束之后,可以将相应的性能检测结果、安全检测结果、数据库处理提示信息按照预设的推送方式(如邮件、短信、云平台控制界面等)推送至用户,实现主动发现问题主动运维。本申请实施例按照检测类型调整数据库实例的优先级,按照优先级数据库实例的优先级,若出现性能问题、安全问题,则生成数据库实例处理提示信息进行推送,实现了主动的运维的云数据库管家服务,大大降低了云数据库的运维和优化的技术门槛,大大减少了云数据库实例在性能方面和安全方面的隐患,一方面,提高了云数据库的运行效率,保证业务处理,另一方面,减少监控的漏洞,保证云数据库中的数据安全。当然,除了云平台的主动运维,用户也可以在云数据库中的控制界面主动请求进行性能检测和/或安全检测,云平台响应该请求,对该数据库进行性能检测和/或安全检测,获得性能检测结果和/或安全检测结果;当性能检测结果和/或安全检测结果中与预设的性能问题和/或安全问题匹配时,生成数据库处理提示信息;以及,在在云数据库中的控制界面展示性能检测结果和/或安全检测结果、数据库处理提示信息。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。参照图2,示出了本申请的一种基于云的数据库的检测装置实施例的结构框图,具体可以包括如下模块:检测类型确定模块201,用于确定针对一个或多个数据库实例进行检测的检测类型;所述检测类型包括性能检测和/或安全检测;优先级调整模块202,用于根据所述检测类型调整所述一个或多个数据库实例的优先级;检测模块203,用于按照调整之后的优先级对所述一个或多个数据库实例进行性能检测和/或安全检测,获得性能检测结果和/或安全检测结果;提示信息生成模块204,用于在所述性能检测结果和/或所述安全检测结果中与预设的性能问题和/或安全问题匹配时,生成数据库处理提示信息;推送模块205,用于推送所述性能检测结果和/或安全检测结果、数据库处理提示信息。在本申请的一种优选实施例中,所述优先级调整模块202可以包括如下子模块:第一提高子模块,用于在检测类型为性能检测时,提高符合预设的低性能条件的数据库实例的优先级;和/或,第二提高子模块,用于在检测类型为性能检测时,提高调用频率高于预设的频率阈值的数据库实例的优先级;和/或,第三提高子模块,用于在检测类型为安全检测时,提高创建时间小于预设的时间阈值的数据库实例的优先级;和/或,第四提高子模块,用于在检测类型为安全检测时,提高优先级低于预设的优先级阈值的数据库实例的优先级。在本申请的一种优选实施例中,所述检测模块203可以包括如下子模块:性能状态判断子模块,用于按照调整之后的优先级判断所述一个或多个数据库实例的性能状态;性能检测子模块,用于在所述性能状态符合预设的低性能条件时,对所述数据库实例进行性能检测,获得性能检测结果。在本申请实施例的一种优选示例中,所述性能状态判断子模块可以包括如下单元:性能判断单元,用于按照调整之后的优先级判断所述一个或多个数据库实例的CPU利用率、I/O读写频率、连接数量、磁盘空间使用率中的至少一种性能状态;其中,当至少满足以下一个条件时,所述性能状态满足预设的的低性能条件:所述CPU利用率高于预设的利用率阈值、所述I/O读写频率高于预设的读写频率阈值、所述连接数量大于预设的连接数量阈值、所述磁盘空间使用率大于预设的使用率阈值。在本申请实施例的一种优选示例中,所述性能检测子模块可以包括如下单元:数据库实例属性检测单元,用于对所述数据库实例的配置、表结构、SQL语句、架构中的至少一种属性进行性能检测,获得配置检测结果、表结构检测结果、SQL语句检测结果、架构检测结果中的至少一种性能检测结果。在本申请实施例的一种优选示例中,所述提示信息生成模块204可以包括如下子模块:第一生成子模块,用于在所述配置检测结果与预设的低配置条件匹配时,生成提升配置的数据库处理提示信息;和/或,第二生成子模块,用于在所述表结构检测结果与预设的不合理结构条件匹配时,生成调整表结构的数据库处理提示信息;和/或,第三生成子模块,用于在所述SQL语句检测结果与预设的问题语句条件匹配时,生成修改SQL语句的数据库处理提示信息;和/或,第四生成子模块,用于在所述架构检测结果与预设的问题架构条件匹配时,生成调整架构的数据库处理提示信息。在本申请的一种优选实施例中,所述检测模块203可以包括如下子模块:抓包子模块,用于按照调整之后的优先级抓取发往所述一个或多个数据库实例的数据包;安全检测子模块,用于针对所述数据包进行密码破解、SQL注入、白名单中的至少一种安全检测,获得密码破解检测结果、SQL注入检测结果、白名单检测结果中的至少一种安全检测结果。在本申请实施例的一种优选示例中,所述提示信息生成模块204可以包括如下子模块:第五生成子模块,用于在所述密码破解检测结果表示出现密码破解行为时,生成攻击来源、调整白名单、调整密码中的至少一者的数据库处理提示信息;和/或,第六生成子模块,用于在所述SQL注入检测结果表示出现SQL注入行为时,生成当前的SQL语句、检查应用程序中至少一者的数据库处理提示信息;和/或,第七生成子模块,用于在所述白名单结果与预设的大范围条件匹配时,生成修改白名单的数据库处理提示信息。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较 简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令 实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本申请所提供的一种基于云的数据库的检测方法和一种基于云的数据库的检测装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1