CN113778994A - 数据库检测方法、装置、电子设备和计算机可读介质 - Google Patents

数据库检测方法、装置、电子设备和计算机可读介质 Download PDF

Info

Publication number
CN113778994A
CN113778994A CN202111080009.4A CN202111080009A CN113778994A CN 113778994 A CN113778994 A CN 113778994A CN 202111080009 A CN202111080009 A CN 202111080009A CN 113778994 A CN113778994 A CN 113778994A
Authority
CN
China
Prior art keywords
database
data
items
dimension
operation 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
CN202111080009.4A
Other languages
English (en)
Other versions
CN113778994B (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.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information Technology 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 Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202111080009.4A priority Critical patent/CN113778994B/zh
Publication of CN113778994A publication Critical patent/CN113778994A/zh
Application granted granted Critical
Publication of CN113778994B publication Critical patent/CN113778994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例公开了数据库检测方法、装置、电子设备和计算机可读介质。该方法的一具体实施方式包括:与待检测数据库建立连接,以获取待检测数据库的多项运行数据和多项日志文件;对于多项运行数据和多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果;对于每个维度,根据对应的分析结果,生成用于对待检测数据库进行优化的操作信息;根据操作信息,执行优化操作。该实施方式实现了及时有效排除故障或异常。

Description

数据库检测方法、装置、电子设备和计算机可读介质
技术领域
本公开的实施例涉及计算机技术领域,具体涉及数据库检测方法、装置、电子设备和计算机可读介质。
背景技术
随着云技术的不断发展,云服务提供方的数据库集群也日益壮大。但是,由于一些用户缺乏专业技术知识,在使用数据库的过程中,往往会出现由于使用不当等各方面的原因造成的异常或者故障。当出现这些问题时,用户自身无法进行有效的解决。这时就需要一种数据库自动检测诊断方法,来对数据库进行诊断和优化。然而,相关的数据库检测方法往往存在以下技术问题:
第一,检测分析维度单一,导致无法有效排除故障。
第二,以可选插件的方式,需要用户手动去选择不同的插件,依赖于用户的技术知识,无法实现全流程的自动运行和优化。
发明内容
本公开的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本公开的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。本公开的一些实施例提出了一种数据库检测方法、装置、电子设备和计算机可读介质,来解决以上背景技术部分提到的技术问题中的一项或多项。
第一方面,本公开的一些实施例提供了一种数据库检测方法,该方法包括:与待检测数据库建立连接,以获取待检测数据库的多项运行数据和多项日志文件;对于多项运行数据和多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果;对于每个维度,根据对应的分析结果,生成用于对待检测数据库进行优化的操作信息;根据操作信息,执行优化操作。
第二方面,本公开的一些实施例提供了一种数据库检测装置,装置包括:连接单元,被配置成与待检测数据库建立连接,以获取待检测数据库的多项运行数据和多项日志文件;分析单元,被配置成对于多项运行数据和多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果;生成单元,被配置成对于每个维度,根据对应的分析结果,生成用于对待检测数据库进行优化的操作信息;执行单元,被配置成根据操作信息,执行优化操作。
第三方面,本公开的一些实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述第一方面任一实现方式所描述的方法。
第四方面,本公开的一些实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,程序被处理器执行时实现上述第一方面任一实现方式所描述的方法。
本公开的上述各个实施例具有如下有益效果:通过待检测数据库的多项运行数据和多项日志文件,从多个维度进行分析,进而根据分析结果生成操作信息。在此基础上,根据操作信息执行优化操作,从而实现对数据库的优化。在此过程,由于从多个维度进行分析,分析结果包含了更多维度的信息,从而可以使得生成的操作信息更加准确,更加有效的执行优化操作,及时有效排除故障或异常。此外,整个检测流程可以自动执行,不需要进行人工干预,从而更加便捷的排除故障。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,元件和元素不一定按照比例绘制。
图1是根据本公开的一些实施例的数据库检测方法的一个应用场景的示意图;
图2是根据本公开的数据库检测方法的一些实施例的流程图;
图3是执行优化操作的一个示例性流程图;
图4是根据本公开的数据库检测方法的另一些实施例的流程图;
图5是根据本公开的数据库检测装置的一些实施例的结构示意图;
图6是适于用来实现本公开的一些实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将参考附图并结合实施例来详细说明本公开。
图1是根据本公开一些实施例的数据库检测方法的一个应用场景的示意图。
在本应用场景下,用户在购买云数据库后,可以通过域名和解析得到的IP(Internet Protocol)来使用其购买的云数据库。在使用过程中,当云数据库发生异常或故障时,可以通过本方法来对数据库进行检测,进而实现数据库的优化,从而排除异常或故障。此时,用户购买的云数据库即为待检测数据库101。实践中,作为示例,由于待检测数据库为云数据库,用户可以通过前端的云数据库检测接口调用底层服务,在云端使用代理进程102来执行数据库检测。也就是说,在本应用场景下,数据库检测方法的执行主体是代理进程102。
在此基础上,代理进程102可以首先与待检测数据库101建立连接,从而可以获取待检测数据库101的多项运行数据,例如mysql_status、mysql_variables等字段的数据。此外,还可以获取多项日志文件103,例如:错误日志、慢日志、审计日志等等。可选的,对于运行数据可以将其存储在第一类型数据库104中。作为示例,第一类型数据库104可以是Restful对象存储服务。可选的,对于多项日志文件103可以将其存储于第二类型数据库105。可选的,第二类型数据库105可以是时间序列数据库。
在获取运行数据和日志文件的基础上,代理进程102可以从多个维度进行分析,得到每个维度对应的分析结果。举例来说,可以从两个维度进行分析,包括运行数据维度和日志文件维度。又如,也可以将每项运行数据或者每项日志文件单独作为一个维度。再如,还可以将一些关系紧密的运行数据或者日志文件作为一个维度进行分析。
在此基础上,对于每个维度,可以根据分析结果以及预先设定的逻辑或规则,生成用于对待检测数据库101进行优化的操作信息。之后,根据操作信息执行优化操作,以排除异常或故障。
继续参考图2,示出了根据本公开的数据库检测方法的一些实施例的流程200。该数据库检测方法,包括以下步骤:
步骤201,与待检测数据库建立连接,以获取待检测数据库的多项运行数据和多项日志文件。
在一些实施例中,数据库检测方法的执行主体(例如图1中的代理进程102)可以首先与待检测数据库建立连接。实践中,可以通过连接池来实现与待检测数据库的连接。其中,待检测数据库可以是云数据集群中的任一数据库,数据库类型包括但不限于MySQL、Percona、MariaDB。在此基础上,作为示例,可以通过SQL语句等方式获取多项运行数据。运行数据可以包括但不限于:数据库运行状态、数据库系统参数、索引定义、索引使用情况信息等等。例如,可以通过以下语句来查询数据库运行状态和系统参数:show globalstatus;show global variables。此外,上述执行主体还可以监听待检测数据库的日志文件。其中,日志文件包括但不限于:错误日志(error.log)、慢日志(slow.log)、审计日志(audit.log)等等。
步骤202,对于多项运行数据和多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果。
在一些实施例中,对于多项运行数据和多项日志文件,上述执行主体可以从多个维度进行分析,得到每个维度对应的分析结果。实践中,可以根据需要来设定从哪些维度进行分析。例如,可以从两个维度进行分析,包括运行数据维度和日志文件维度。又如,也可以将每项运行数据或者每项日志文件单独作为一个维度。再如,还可以将一些联系紧密的运行数据或者日志文件作为一个维度进行分析或者对于一项运行数据或者日志文件从多个维度进行分析。在此基础上,根据设定的维度的不同,可以对于每个维度的分析方法进行配置。作为示例,mysql_status和mysql_variables这两个运行数据,可以从连接数使用率(连接数使用率=当前连接数/总连接数)、表锁定次数、行锁定次数、缓冲池命中率、缓冲池脏页率等多个维度进行分析。作为又一个示例,对于错误日志,可以利用关键词匹配的方法,确定预先设定的多个关键词在错误日志中出现的次数。其中,预先设定的关键词可以是重启现场、崩溃现场、半同步退化记录、客户端连接异常明细等等。此时,错误日志可以对应重启、异常奔溃、半同步退化、客户端连接异常等维度。再如,对于慢日志,可以进行SQL指纹提取,进而统计SQL指纹频次等信息,生成SQL指纹统计信息。再如,对于审计日志,也可以进行SQL指纹提取,然后分别基于从SQL指纹、USER、DB、TABLE、HOST等维度进行统计,进而得到统计结果,包括热点SQL、热点库表、性能差SQL等等。对于运行数据innodb_status,可以统计主线程运行和挂起的次数比例、死锁现场、UNDO(回滚日志)空间清理进度、REDO(重做日志)空间LSN checkpoint推进进度、文件读写和sync数目等。对于运行数据table_status,可以从是否存在text或者blob列等宽列、是否存在varchar字段超过512字节、是否为非事务存储引擎、是否存在主键非无符号bigint的表、是否存在碎片率超过30%的表、是否存在列数大于64的表,是否存在行数过亿的表、是否存在存储空间超过128GB表、表数量是否超过655350个等维度进行分析。对于运行数据index_status,每一个表是否存在冗余索引、是否存在未使用索引、是否缺失唯一索引、是否存在索引数量超过6个、是否存在索引覆盖列超过5个等。对于运行数据mysql_status和mysql_variables,从以下维度进行分析:连接数使用率是否超过80%、表锁次数大于1次/秒、行锁次数大于1次/秒、缓冲池命中率低于99%、缓冲池脏页率高于1%等。对于运行数据os_status,可以从以下维度进行分析:是否出现CPU峰值达到100%、CPU均值超过70%、内存达到99%、硬盘IOPS超过规定的值的80%、存储空间超过80%、MySQL临时表空间超过1GB、MySQL回滚日志(undo log)空间超过1GB等。
可选的,多个维度中包括至少一个表维度。至少一个表维度包括但不限于:表数量、表字段类型、表存储引擎、表索引、表空间使用情况等等。由此,实现了数据的细粒度分析,使得分析结果更加精细。
步骤203,对于每个维度,根据对应的分析结果,生成用于对待检测数据库进行优化的操作信息。
在一些实施例中,对于每个维度,上述执行主体可以根据该维度对应的分析结果,生成用于对待检测数据库进行优化的操作信息。实践中,可以基于分析结果与预先配置的逻辑或者规则,生成用于对待检测数据库进行优化的操作信息。实践中,根据每个维度的分析结果的不同,可以采用不同的方法生成操作信息。具体的方法可以根据实际需要进行配置。这里,操作信息可以是可以直接进行执行的信息,例如可以是SQL语句,也可以是用于提醒用户执行相关操作的操作提示信息。
作为示例,在步骤202中,对于错误日志,已经利用关键词匹配的方法,确定了重启出现了频次超过了预设阈值。基于此,可以确定频繁重启是否是由于内存不足导致的。若是,可以生成用于更新配置(扩大内存)的操作信息。如果出现异常奔溃,可以根据预先设置的知识库进行匹配,以确定异常奔溃的原因。在此基础上,根据异常奔溃的原因,生成用于改变操作语句的SQL(Structured Query Language,结构化查询语言)语句。针对半同步退化成异步的内容,生成用于判断事务大小并进行拆分的操作信息。对于慢日志,根据SQL指纹统计信息使用MySQL EXPLAINT命令判断是否因全表扫描或者索引区分度不够导致,如果确认因为前两者导致,可以生成用于进行索引优化SQL语句。再如,对于统计出来的热点SQL、热点库表、性能差SQL,可以结合业务需求,生成用于调整数据库或者表的操作信息。对于运行数据innodb_status,如果出现主线程运行次数大于挂起的次数,则生成用于调整REDO LOG相关参数的操作信息;对于反复出现死锁的SQL,生成包含死锁现场和表征从业务侧进行优化的提示信息的操作信息;如果出现大量回滚日志空间等待清理,说明开启的事务未及时提交或者回滚,则生成表征改变使用方式的操作信息。对于运行数据table_status,根据表结构存在的问题,生成对应的修改表结构(ALTER TABLE)的SQL语句;针对表碎片率高的,生成用于进行碎片优化的SQL语句,具体的可以使用OPTIMIZE TABLE命令。针对空间、行数、数量大的问题,可以生成包含这些内容的操作语句。对于运行数据index_status,可以针对冗余索引、未使用索引、索引数量过多的问题会,生成丢弃索引的SQL语句;针对缺失唯一索引会生成增加索引的SQL语句;针对索引覆盖列过多的问题会生成修改索引的SQL语句。对于运行数据mysql_status和mysql_variables,对于连接数使用率过大会生成用于对实例变配的操作信息;缓冲池脏页率高、缓冲池命中率低的问题会生成修改参数的SQL语句,如果参数没有可优化空间会生成用于改变配置的操作信息;对于行锁和表锁次数大于1的问题,生成表征从业务上进行优化的操作提示信息。对于运行数据os_status,针对CPU使用率高、IOPS使用率高、内存使用率高、存储空间使用率高的场景,生成用于提升配置的操作信息,反之则生成用于降低配置的操作信息;同时对MySQL临时表的变化、回滚日志空间的变化,生成表征从SQL层面进行优化的操作提示信息。
步骤204,根据操作信息,执行优化操作。
在一些实施例中,根据操作信息的不同,可以采用不同的方式执行优化操作。例如,对于可以直接执行的操作语句,可以直接执行以进行优化。
在一实施例中,通过待检测数据库的多项运行数据和多项日志文件,从多个维度进行分析,进而根据分析结果生成操作信息。在此基础上,根据操作信息执行优化操作,从而实现对数据库的优化。在此过程,由于从多个维度进行分析,分析结果包含了更多维度的信息,从而可以使得生成的操作信息更加准确,更加有效的执行优化操作,及时有效排除故障或异常。此外,整个检测流程可以自动执行,不需要进行人工干预,从而更加便捷的排除故障。在一些场景下,例如对于云数据库服务商,需要面对海量的用户,因此需要对海量的数据库进行检测优化,因此,整个检测流程的自动执行尤为重要。
在一些实施例的一些可选的实现方式中,可以通过以下方式执行优化操作。如图3所示,可以首先确定操作信息是否为结构化查询语句(SQL语句),若是,可以直接执行SQL语句。若不是,可以调用对应的操作接口执行优化操作。一般来说,如果是针对处理器、存储器等进行操作,不能通过SQL语句实现,因此需要调用对应的操作接口(云数据库OpenAPI)来执行优化操作,从而适应于不同对象的操作需求。
在一些实施例的一些可选的实现方式中,响应于确定操作信息是结构化查询语句,根据预先配置的语句执行方式,确定是否支持对结构化查询语句进行在线执行。其中,可以预先对各种结构化查询语句的语句执行方式进行配置,可以配置成在线执行或离线执行。实践中,可以根据执行该结构化查询语句对数据库表的影响来决定将其配置成在线执行还是离线执行。在此基础上,可以避免优化操作对数据库的使用造成影响。响应于确定不支持对结构化查询语句进行在线执行,调用预先设定的执行接口对结构化查询语句进行执行。其中,执行接口可以用于调用第三方工具执行。第三方工具可以包括pt-online-schema-change、gh-ost等等。
在这些可选的实现方式中,通过调用一些操作接口以适应于不同对象的操作需求,以及通过预先配置的语句执行方式以避免优化操作对数据库的使用造成影响。
进一步参考图4,其示出了数据库检测方法的另一些实施例的流程400。该数据库检测方法的流程400,包括以下步骤:
步骤401,与待检测数据库建立连接,以获取待检测数据库的多项运行数据和多项日志文件。
步骤402,对于多项运行数据和多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果和得分。
在一些实施例中,根据预先设定的评分规则,根据每个维度的分析结果进行评分,得到每个维度的得分。
步骤403,对于每个维度,根据对应的分析结果,生成用于对待检测数据库进行优化的操作信息。
步骤404,根据操作信息,执行优化操作。
在一些实施例中,步骤401、403、404的具体实现及其所带来的技术效果,可以参考图2对应的那些实施例,在此不再赘述。
步骤405,在第一类型数据库中与待检测数据库对应的文件夹下创建以检测时间戳命名的检测文件夹。
在一些实施例中,第一类型数据库可以是轻量化数据库,例如可以是Restful对象存储服务,主要用于存储文本类型的数据。第一类型数据中存在与每个数据库对应的文件夹,用于存储每个数据库的检测相关数据。在此基础上,上述执行主体可以在待检测数据库对应的文件夹下创建以检测时间戳命名的检测文件夹。也就是说,对于某个数据库来说,可以按照一定的周期或是响应于触发多次执行本公开的数据库检测方法,每次数据库检测方法运行会在该数据库对应的文件夹下生成一个检测文件夹。从而将多次运行的数据进行存储和隔离。
步骤406,将多项运行数据存入检测文件夹。
在一些实施例中,上述执行主体可以将多项运行数据存入检测文件夹。
步骤407,将多项日志文件存入第二类型数据库。
在一些实施例中,上述执行主体可以将多项日志文件存入第二类型数据库。其中,第二类型数据可以是用于存储时间序列数据的数据库。作为示例,第二类型数据库可以是Prometheus。
在一些实施中,根据获取到的数据的不同类型,分别采用第一类型数据库和第二类型数据库来存储,从而实现不同数据类型的针对性存储。对于第一类型数据库,通过将多次检测的数据在不同的检测文件夹下存储,便于进行不同时间的检测数据的隔离。
步骤408,基于多个维度的分析结果和得分,生成检测报告。
在一些实施例中,上述执行主体可以基于多个维度的分析结果和评分,生成检测报告。作为示例,检测报告中可以包括各个维度的评分汇总。可选的,检测报告中还可以包括操作信息。实践中,检测报告根据需要可以渲染生成多种格式进行通知或展示。
步骤409,将检测报告存入检测文件夹。
在一些实施例中,可以在检测文件夹中创建inspect.json文件,用于存储检测报告。
从图4中可以看出,与图2对应的一些实施例的描述相比,图4对应的一些实施例中的数据库检测方法的流程400增加了采用不同的类型的数据对获取到的不同类型的数据进行针对性存储,以及生成以及存储检测报告的步骤。从而实现了对于获取到的数据以及检测报告的针对性存储。此外,检测报告由于综合了多个维度的分析结果和得分,使得检测报告更加准确。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种数据库检测装置的一些实施例,这些装置实施例与图2所示的那些方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,一些实施例的数据库检测装置500包括:连接单元501、分析单元502、生成单元503和执行单元504。其中,连接单元501被配置成与待检测数据库建立连接,以获取待检测数据库的多项运行数据和多项日志文件。分析单元502被配置成对于多项运行数据和多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果。生成单元503被配置成对于每个维度,根据对应的分析结果,生成用于对待检测数据库进行优化的操作信息。执行单元504被配置成根据操作信息,执行优化操作。
在一些实施例的可选实现方式中,执行单元504可以进一步被配置成确定操作信息是否为结构化查询语句;响应于确定操作信息不是结构化查询语句,调用对应的操作接口执行优化操作。
在一些实施例的可选实现方式中,执行单元504可以进一步被配置成响应于确定操作信息是结构化查询语句,根据预先配置的语句执行方式,确定是否支持对结构化查询语句进行在线执行;响应于确定不支持对结构化查询语句进行在线执行,调用预先设定的执行接口对结构化查询语句进行执行。
在一些实施例的可选实现方式中,装置500还包括:创建单元和存储单元。其中,创建单元被配置成在第一类型数据库中与待检测数据库对应的文件夹下创建以检测时间戳命名的检测文件夹。存储单元被配置成将多项运行数据存入检测文件夹,以及将多项日志文件存入第二类型数据库。
在一些实施例的可选实现方式中,分析单元502进一步被配置成对于多项运行数据和多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果和得分;以及装置500还包括:报告生成单元和报告存储单元。其中,报告生成单元被配置成基于多个维度的分析结果和得分,生成检测报告。报告存储单元,被配置成将检测报告存入检测文件夹。
在一些实施例的可选实现方式中,多项运行数据包括以下至少一项:存储引擎的运行状态数据、表状态数据、索引相关数据、数据库运行数据、处理设备运行状态数据;多项日志文件包括以下至少一项:错误日志、慢日志、审计日志。
在一些实施例的可选实现方式中,多个维度包括至少一个表维度,至少一个表维度包括以下至少一项:表数量、表字段类型、表存储引擎、表索引、表空间使用情况。
可以理解的是,该装置500中记载的诸单元与参考图2描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置500及其中包含的单元,在此不再赘述。
下面参考图6,其示出了适于用来实现本公开的一些实施例的电子设备(例如图1中的代理进程所运行的电子设备)600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开的一些实施例的方法中限定的上述功能。
需要说明的是,本公开的一些实施例中记载的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:与待检测数据库建立连接,以获取待检测数据库的多项运行数据和多项日志文件;对于多项运行数据和多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果;对于每个维度,根据对应的分析结果,生成用于对待检测数据库进行优化的操作信息;根据操作信息,执行优化操作。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的一些实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括连接单元、分析单元、生成单元和执行单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,连接单元还可以被描述为“与待检测数据库建立连接的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种数据库检测方法,包括:
与待检测数据库建立连接,以获取所述待检测数据库的多项运行数据和多项日志文件;
对于所述多项运行数据和所述多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果;
对于所述每个维度,根据对应的分析结果,生成用于对所述待检测数据库进行优化的操作信息;
根据所述操作信息,执行优化操作。
2.根据权利要求1所述的方法,其中,所述根据所述操作信息,执行优化操作,包括:
确定所述操作信息是否为结构化查询语句;
响应于确定所述操作信息不是结构化查询语句,调用对应的操作接口执行优化操作。
3.根据权利要求2所述的方法,其中,所述根据所述操作信息,执行优化操作,包括:
响应于确定所述操作信息是结构化查询语句,根据预先配置的语句执行方式,确定是否支持对所述结构化查询语句进行在线执行;
响应于确定不支持对所述结构化查询语句进行在线执行,调用预先设定的执行接口对所述结构化查询语句进行执行。
4.根据权利要求1所述的方法,其中,所述方法还包括:
在第一类型数据库中与所述待检测数据库对应的文件夹下创建以检测时间戳命名的检测文件夹;
将所述多项运行数据存入所述检测文件夹;
将所述多项日志文件存入第二类型数据库。
5.根据权利要求4的方法,其中,所述对于所述多项运行数据和所述多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果,包括:
对于所述多项运行数据和所述多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果和得分;以及
所述方法还包括:
基于所述多个维度的分析结果和得分,生成检测报告;
将所述检测报告存入所述检测文件夹。
6.根据权利要求1的方法,其中,所述多项运行数据包括以下至少一项:存储引擎的运行状态数据、表状态数据、索引相关数据、数据库运行数据、处理设备运行状态数据;所述多项日志文件包括以下至少一项:错误日志、慢日志、审计日志。
7.根据权利要求1的方法,其中,所述多个维度包括至少一个表维度,所述至少一个表维度包括以下至少一项:表数量、表字段类型、表存储引擎、表索引、表空间使用情况。
8.一种数据库检测装置,包括:
连接单元,被配置成与待检测数据库建立连接,以获取所述待检测数据库的多项运行数据和多项日志文件;
分析单元,被配置成对于所述多项运行数据和所述多项日志文件,从多个维度进行分析,得到每个维度对应的分析结果;
生成单元,被配置成对于所述每个维度,根据对应的分析结果,生成用于对所述待检测数据库进行优化的操作信息;
执行单元,被配置成根据所述操作信息,执行优化操作。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202111080009.4A 2021-09-15 2021-09-15 数据库检测方法、装置、电子设备和计算机可读介质 Active CN113778994B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111080009.4A CN113778994B (zh) 2021-09-15 2021-09-15 数据库检测方法、装置、电子设备和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111080009.4A CN113778994B (zh) 2021-09-15 2021-09-15 数据库检测方法、装置、电子设备和计算机可读介质

Publications (2)

Publication Number Publication Date
CN113778994A true CN113778994A (zh) 2021-12-10
CN113778994B CN113778994B (zh) 2024-05-17

Family

ID=78844168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111080009.4A Active CN113778994B (zh) 2021-09-15 2021-09-15 数据库检测方法、装置、电子设备和计算机可读介质

Country Status (1)

Country Link
CN (1) CN113778994B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114239542A (zh) * 2021-12-24 2022-03-25 建信金融科技有限责任公司 文件批量检测方法、装置、设备介质和程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140627A1 (en) * 2006-12-08 2008-06-12 International Business Machines Corporation Method and apparatus for aggregating database runtime information and analyzing application performance
CN103326902A (zh) * 2013-06-28 2013-09-25 广东电网公司电力科学研究院 可配置的分布式主机性能测试数据监控系统及监控方法
CN107391633A (zh) * 2017-06-30 2017-11-24 北京奇虎科技有限公司 数据库集群自动优化处理方法、装置及服务器
US20200026592A1 (en) * 2018-07-19 2020-01-23 Oracle International Corporation System and method for automatic root cause analysis and automatic generation of key metrics in a multidimensional database environment
CN110795614A (zh) * 2019-09-27 2020-02-14 广东浪潮大数据研究有限公司 一种索引自动优化方法及装置
CN111190888A (zh) * 2020-01-03 2020-05-22 中国建设银行股份有限公司 一种管理图数据库集群的方法和装置
CN111459698A (zh) * 2020-03-31 2020-07-28 国网电力科学研究院有限公司 一种数据库集群故障自愈方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140627A1 (en) * 2006-12-08 2008-06-12 International Business Machines Corporation Method and apparatus for aggregating database runtime information and analyzing application performance
CN103326902A (zh) * 2013-06-28 2013-09-25 广东电网公司电力科学研究院 可配置的分布式主机性能测试数据监控系统及监控方法
CN107391633A (zh) * 2017-06-30 2017-11-24 北京奇虎科技有限公司 数据库集群自动优化处理方法、装置及服务器
US20200026592A1 (en) * 2018-07-19 2020-01-23 Oracle International Corporation System and method for automatic root cause analysis and automatic generation of key metrics in a multidimensional database environment
CN110795614A (zh) * 2019-09-27 2020-02-14 广东浪潮大数据研究有限公司 一种索引自动优化方法及装置
CN111190888A (zh) * 2020-01-03 2020-05-22 中国建设银行股份有限公司 一种管理图数据库集群的方法和装置
CN111459698A (zh) * 2020-03-31 2020-07-28 国网电力科学研究院有限公司 一种数据库集群故障自愈方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114239542A (zh) * 2021-12-24 2022-03-25 建信金融科技有限责任公司 文件批量检测方法、装置、设备介质和程序产品

Also Published As

Publication number Publication date
CN113778994B (zh) 2024-05-17

Similar Documents

Publication Publication Date Title
JP6691548B2 (ja) データベースクエリ実行トレース及び実行に関する問題を診断するためのデータ生成
CN107818431B (zh) 一种提供订单轨迹数据的方法和系统
US9189355B1 (en) Method and system for processing a service request
US11520761B2 (en) Cloud-based platform instrumentation and monitoring system for maintenance of user-configured programs
JP7289334B2 (ja) コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
US10135693B2 (en) System and method for monitoring performance of applications for an entity
US10592327B2 (en) Apparatus, system, and method for analyzing logs
US20150347261A1 (en) Performance checking component for an etl job
US20090307347A1 (en) Using Transaction Latency Profiles For Characterizing Application Updates
US20170293619A1 (en) Simulating data definition triggers in a database system
CN112395333B (zh) 用于排查数据异常的方法、装置、电子设备及存储介质
CN117971799B (zh) 一种数据开发平台和数据开发方法
US11803439B2 (en) Enriched high fidelity metrics
CN114116422A (zh) 一种硬盘日志分析方法、硬盘日志分析装置及存储介质
US11487759B1 (en) Query execution optimization for partially typed semantics
Botros et al. High Performance MySQL
CN113778994B (zh) 数据库检测方法、装置、电子设备和计算机可读介质
CN110309206B (zh) 订单信息采集方法及系统
CN112148762A (zh) 一种实时数据流的统计方法和装置
CN113760856B (zh) 数据库管理方法及装置、计算机可读存储介质、电子设备
CN112307050B (zh) 一种重复关联计算的识别方法、装置及计算机系统
CN113468218A (zh) 一种对数据库慢sql进行监测和管理的方法和装置
US9600505B2 (en) Code optimization based on customer logs
CN113590425A (zh) 数据处理方法、装置、设备、介质和程序产品
CN118733310A (zh) 应用程序的异常数据管理方法、装置、设备及存储介质

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