表空间碎片的监控方法、装置及电子设备与流程
未命名
09-09
阅读:92
评论:0

技术领域:
:,尤其涉及一种表空间碎片的监控方法、装置及电子设备。
背景技术:
::2.线上的数据库系统,在日常使用过程中存在使用删除(delete)清理大量历史数据的场景,这种场景下不会释放数据占用的磁盘空间,势必导致表碎片占用了较大的磁盘空间,本技术中将之称为表空间碎片,简称碎片。相关技术中,为了能够回收这部分磁盘空间以提升磁盘利用率,通常会通过自动采集碎片占用较大的表,给系统管理员提供参考指标以进行空间释放。3.然而,相关技术中的表空间碎片的监控方法中,由于目前平台的数据库有些实例会存在大量的表,此种情况下,势必会导致数据库出现严重的性能瓶颈,导致表空间碎片的监控过程中存在效率低、可靠性差的技术问题。由此,如何提高表空间碎片的监控过程中的效率和可靠性,已经成为了亟待解决的问题。技术实现要素:4.本技术旨在至少在一定程度上解决相关技术中的技术问题之一。5.为此,本技术的第一个目的在于提出一种表空间碎片的监控方法,用于解决现有表空间碎片的监控方法中存在的效率低、可靠性差的技术问题。6.本发明的第二个目的在于提出一种表空间碎片的监控装置。7.本发明的第三个目的在于提出一种电子设备。8.本发明的第四个目的在于提出一种计算机可读存储介质。9.为了实现上述目的,本技术第一方面实施例提供了一种表空间碎片的监控方法,所述方法包括以下步骤:获取数据库下的数据目录,并对所述数据目录进行遍历,从中获取非系统库目录的目标数据目录;对所述目标数据目录进行遍历,获取所述目标数据目录下的目标表数据文件,其中,所述目标表数据文件存储有目标表的数据内容;获取所述目标表数据文件的属性信息,并根据所述属性信息从所述数据库的数据库实例中获取所述目标表的表信息;根据所述表信息确定目标表是否存在表空间碎片。10.另外,根据本技术上述实施例的表空间碎片的监控方法还可以具有如下附加的技术特征:11.根据本技术的一个实施例,所述对所述目标数据目录进行遍历,获取所述目标数据目录下的目标表数据文件,包括:每当遍历到一个所述表数据文件,获取所述表数据文件的大小,响应于所述表数据文件的大小大于或者等于第一预设阈值,则将所述大小大于或者等于所述第一预设阈值的表数据文件作为所述目标表数据文件。12.根据本技术的一个实施例,所述获取所述目标表数据文件的属性信息,包括:基于所述目标表数据文件所在目录,确定所述目标表数据文件对应的目录名;获取所述目标表数据文件的文件名,其中,所述属性信息包括所述目录名和所述文件名。13.根据本技术的一个实施例,所述根据所述属性信息,从所述数据库的数据库实例中获取目标表的表信息,包括:根据所述目录名和所述文件名,确定所述目标表对应的库名和表名;根据所述库名和所述表名,生成结构化查询语言sql语句,并对所述数据库实例执行表信息查询操作,以获取所述目标表的表信息。14.根据本技术的一个实施例,所述根据所述目录名和所述文件名,确定所述目标表对应的库名和表名,包括:将所述目录名直接确定为所述目标表对应的库名;去除所述文件名的后缀字符,并将去除后缀字符的文件名作为所述目标表对应的所述表名。15.根据本技术的一个实施例,所述根据所述目标表的表信息确定目标表是否存在表空间碎片,包括:根据所述表信息确定所述目标表的数据大小;计算所述目标表数据文件的数据大小与所述目标表的数据大小之间的差值;若所述差值大于预设值,则确定所述目标表存在表空间碎片。16.根据本技术的一个实施例,还包括:响应于所述目标表存在表空间碎片,获取所述表空间碎片的大小,并判断所述表空间碎片的大小是否大于或者第二预设阈值;响应于所述表空间碎片的大小大于或者等于所述第二预设阈值,生成碎片清理提醒发送给终端设备;接收终端设备的清理指令,对所述表空间碎片进行清理。17.本技术第一方面实施例提供了表空间碎片的监控方法,能够通过获取数据库下的数据目录,并对数据目录进行遍历,从中获取非系统库目录的目标数据目录,然后对目标数据目录进行遍历,获取目标数据目录下的目标表数据文件,进而获取目标表数据文件的属性信息,并根据属性信息从数据库的数据库实例中获取目标表的表信息,根据表信息确定目标表是否存在表空间碎片,以实现表空间碎片的监控,不再直接通过数据库系统表获取表空间碎片,避免了在大量表存在的情况下导致数据库出现严重的性能瓶颈的问题,提升了表空间碎片的监控过程中的效率以及可靠性。18.为了实现上述目的,本技术第二方面实施例提供了一种表空间碎片的监控装置,所述表空间碎片的监控装置,包括:第一获取模块,用于获取数据库下的数据目录,并对所述数据目录进行遍历,从中获取非系统库目录的目标数据目录;第二获取模块,用于对所述目标数据目录进行遍历,获取所述目标数据目录下的目标表数据文件,其中,所述目标表数据文件存储有目标表的数据内容;第三获取模块,用于获取所述目标表数据文件的属性信息,并根据所述属性信息从所述数据库的数据库实例中获取所述目标表的表信息,确定模块,用于根据所述表信息确定目标表是否存在表空间碎片。19.另外,根据本技术上述实施例的表空间碎片的监控装置还可以具有如下附加的技术特征:20.根据本技术的一个实施例,所述第二获取模块,还用于:每当遍历到一个所述表数据文件,获取所述表数据文件的大小,响应于所述表数据文件的大小大于或者等于第一预设阈值,则将所述大小大于或者等于所述第一预设阈值的表数据文件作为所述目标表数据文件。21.根据本技术的一个实施例,所述第三获取模块,还用于:基于所述目标表数据文件所在目录,确定所述目标表数据文件对应的目录名;获取所述目标表数据文件的文件名,其中,所述属性信息包括所述目录名和所述文件名。22.根据本技术的一个实施例,所述第三获取模块,还用于:根据所述目录名和所述文件名,确定所述目标表对应的库名和表名;根据所述库名和所述表名,生成结构化查询语言sql语句,并对所述数据库实例执行表信息查询操作,以获取所述目标表的表信息。23.根据本技术的一个实施例,所述第三获取模块,还用于:将所述目录名直接确定为所述目标表对应的库名;去除所述文件名的后缀字符,并将去除后缀字符的文件名作为所述目标表对应的所述表名。24.根据本技术的一个实施例,所述确定模块,还用于:根据所述表信息确定所述目标表的数据大小;计算所述目标表数据文件的数据大小与所述目标表的数据大小之间的差值;若所述差值大于预设值,则确定所述目标表存在表空间碎片。25.根据本技术的一个实施例,还包括,清理模块,用于:响应于所述目标表存在表空间碎片,获取所述表空间碎片的大小,并判断所述表空间碎片的大小是否大于或者第二预设阈值;响应于所述表空间碎片的大小大于或者等于所述第二预设阈值,生成碎片清理提醒发送给终端设备;接收终端设备的清理指令,对所述表空间碎片进行清理。26.本技术第二方面实施例提供了表空间碎片的监控装置,能够通过获取数据库下的数据目录,并对数据目录进行遍历,从中获取非系统库目录的目标数据目录,然后对目标数据目录进行遍历,获取目标数据目录下的目标表数据文件,进而获取目标表数据文件的属性信息,并根据属性信息从数据库的数据库实例中获取目标表的表信息,根据表信息确定目标表是否存在表空间碎片,以实现表空间碎片的监控,不再直接通过数据库系统表获取表空间碎片,避免了在大量表存在的情况下导致数据库出现严重的性能瓶颈的问题,提升了表空间碎片的监控过程中的效率以及可靠性。27.为了实现上述目的,本技术第三方面实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本技术第一方面实施例中任一项所述的表空间碎片的监控方法。28.为了实现上述目的,本技术第四方面实施例提供了一种计算机可读存储介质,该程序被处理器执行时实现如本技术第一方面实施例中任一项所述的表空间碎片的监控方法。附图说明29.图1为本技术一个实施例公开的表空间碎片的监控方法的流程示意图;30.图2为本技术另一个实施例公开的表空间碎片的监控方法的流程示意图;31.图3为本技术另一个实施例公开的表空间碎片的监控方法的流程示意图;32.图4为本技术另一个实施例公开的表空间碎片的监控方法的流程示意图;33.图5为本技术另一个实施例公开的表空间碎片的监控方法的流程示意图;34.图6为本技术另一个实施例公开的表空间碎片的监控方法的流程示意图;35.图7为本技术另一个实施例公开的表空间碎片的监控方法的流程示意图;36.图8为本技术一个实施例公开的表空间碎片的监控装置的结构示意图;37.图9为本技术另一个实施例公开的表空间碎片的监控装置的结构示意图;38.图10为本技术实施例提供的一种电子设备的结构示意图。具体实施方式39.为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。40.下面参照附图描述根据本技术实施例提出的表空间碎片的监控方法、装置及电子设备。41.图1为本技术一个实施例公开的表空间碎片的监控方法的流程示意图。42.如图1所示,本技术实施例提出的表空间碎片的监控方法,具体包括以下步骤:43.s101、获取数据库下的数据目录,并对数据目录进行遍历,从中获取非系统库目录的目标数据目录。44.其中,数据目录,包括:系统目录和非系统目录。45.需要说明的是,数据库系统中通常默认设置有至少一个系统库。举例而言,以关系型数据库管理系统mysql5.7为例,在数据库系统初始化后,可以自动生成以下系统库:mysql、能够提供数据库元数据访问方式的系统库information_schema、用于监控mysql5.7在较低级别的运行过程中的资源消耗、资源等待等情况的系统库performance_schema,以及用于快速了解数据库系统元数据信息的系统库sys。46.然而由于系统库内所存储数据通常较少、使用频率较低以及无法删除等原因,这样一来,在表空间碎片的监控过程中,若对数据库下的所有目录的数据目录进行获取,势必会增加不必要的耗时。由此,根据本技术提出的表空间碎片的监控方法,仅对非系统库目录的目标数据目录进行获取。47.s103、对目标数据目录进行遍历,获取目标数据目录下的目标表数据文件,其中,目标表数据文件存储有目标表的数据内容。48.需要说明的是,为了进一步缩短表空间碎片监控过程中的耗时,可以在对目标数据目录进行遍历后,仅获取目标数据目录下的目标表数据文件。其中,目标表数据文件,可以为符合预设条件的以.ibd作为文件名后缀的mysql表数据文件,例如abcde.ibd。49.作为一种可能的实现方式,可以由操作系统层通过for循环对目标数据目录下的所有子目录进行循环,以获取目标数据目录下的所有表数据文件。进一步地,每当遍历到一个表数据文件,可以获取表数据文件的大小,并将表数据文件的大小与预先设定的第一预设阈值进行比较,若表数据文件的大小大于或者等于第一预设阈值,则可以响应于表数据的大小大于或者等于第一预设阈值,将大于或者等于第一预设阈值的表数据文件作为目标表数据文件。50.其中,第一预设阈值,可以根据实际情况进行设定。例如,可以设定为10g、30g或者50g等。51.举例而言,目标数据目录下的子目录中包括以.frm作为文件名后缀的mysql表结构文件,以及以.ibd作为文件名后缀的mysql表数据文件。此种情况下,可以由操作系统层通过for循环对目标数据目录下的以.frm以及以.ibd作为文件名后缀的文件进行循环,获取所有以.ibd作为文件名后缀的表数据文件。进一步地,可以获取表数据文件的大小,并响应于表数据的大小大于或者等于50g,则将大于或者等于50g的表数据文件作为目标表数据文件。52.s105、获取目标表数据文件的属性信息,并根据属性信息从数据库的数据库实例中获取目标表的表信息。53.本技术实施例中,在获取到目标表数据文件后,可以获取目标表数据文件的属性信息,并根据属性信息,从数据库的数据库实例中获取目标表的表信息。其中,属性信息包括目录名和文件名。54.需要说明的是,本技术中,对于根据属性信息,获取目标表的表信息的具体方式不作限定,可以根据实际情况进行选取。可选地,可以根据属性信息中的目录名和文件名分别确定目标表对应的库名和表名。进一步地,可以根据库名和表名,获取目标表的表信息。55.s107、根据表信息确定目标表是否存在表空间碎片。56.本技术实施例中,在获取到目标表的表信息后,可以根据表信息确定目标表是否存在表空间碎片。57.上述本技术实施例中的技术方案,至少具有如下的技术效果或优点:58.由于本技术能够通过获取数据库下的数据目录,并对数据目录进行遍历,从中获取非系统库目录的目标数据目录,然后对目标数据目录进行遍历,获取目标数据目录下的目标表数据文件,进而获取目标表数据文件的属性信息,并根据属性信息从数据库的数据库实例中获取目标表的表信息,根据表信息确定目标表是否存在表空间碎片,以实现表空间碎片的监控,不再直接通过数据库系统表获取表空间碎片,避免了在大量表存在的情况下导致数据库出现严重的性能瓶颈的问题,提升了表空间碎片的监控过程中的效率以及可靠性。59.需要说明的是,在试图获取目标表数据文件的属性信息时,可以分别对目标表数据文件的目录名和文件名进行处理。60.作为一种可能的实现方式,如图2所示,在上述实施例的基础上,上述步骤s105中获取目标表数据文件的属性信息的过程,具体包括以下步骤:61.s201、基于目标表数据文件所在目录,确定目标表数据文件对应的目录名。62.举例而言,若目标表数据文件所在目录为测试目录,此种情况下,可以确定目标表数据文件对应的目录名为test。63.s203、获取目标表数据文件的文件名,其中,属性信息包括目录名和文件名。64.举例而言,针对目标表数据文件emp.ibd,可以获取目标表数据文件的文件名为emp.ibd。65.进一步地,在获取到目标表的属性信息后,可以根据属性信息从数据库的数据库实例中获取目标表的表信息。66.作为一种可能的实现方式,如图3所示,在上述实施例的基础上,上述步骤s105中根据属性信息从数据库的数据库实例中获取目标表的表信息的过程,具体包括以下步骤:67.s301、根据目录名和文件名,确定目标表对应的库名和表名。68.作为一种可能的实现方式,如图4所示,在上述实施例的基础上,上述步骤s301中根据目录名和文件名,确定目标表对应的库名和表名的过程,具体包括以下步骤:69.s401、将目录名直接确定为目标表对应的库名。70.举例而言,若目标表数据文件对应的目录名为test,则可以将目标表对应的库名确定为test。71.s403、去除文件名的后缀字符,并将去除后缀字符的文件名作为目标表对应的表名。72.需要说明的是,执行去除文件名的后缀字符操作后,即可连接数据库示例以获取对应的表信息。73.举例而言,若目标表数据文件对应的文件名为emp.ibd,则可以去除文件名的后缀字符,即.ibd,并将去除后缀字符的文件名emp作为目标表对应的表名。74.需要说明的是,实际应用中,数据库视觉的库名对应操作系统层的目录名,数据库视觉的表名对应操作系统的文件。举例而言,若目录名为test,文件名为emp.frm、emp.ibd,则在mysql中可以显示为test.emp。75.s303、根据库名和表名,生成结构化查询语言sql语句,并对数据库实例执行表信息查询操作,以获取目标表的表信息。76.作为一种可能的实现方式,可以根据库名和表名,生成结构化查询语言sql语句。进一步地,可以通过sql语句连接数据库实例,对数据库实例执行查询操作,以获取目标表的表信息。77.举例而言,以mysql5.7为例,可以生成以下sql语句:showtablestatuslike(获取表信息),进而数据库可以通过执行showtablestatus命令来获取目标表的表信息。78.上述本技术实施例中的技术方案,至少具有如下的技术效果或优点:79.由于本技术能够通过在获取到库名和表名后,连接数据库实例,并通过showtablestatus的方式获取对应的目标表的表信息,能够在确保可以完成对应的需求的同时,进一步地降低对数据库性能的影响,提升了表空间碎片的监控过程中的效率以及可靠性。80.进一步地,在获取到目标表的表信息后,可以根据表信息确定目标表是否存在表空间碎片。81.作为一种可能实现的方式,如图5所示,在上述实施例的基础上具体包括以下步骤:82.s501、根据表信息确定目标表的数据大小。83.在本技术实施例中,在获取到目标表的表信息后,每当遍历到一个目标表数据文件,可以获取表数据文件的大小。84.s503、计算目标表数据文件的数据大小与目标表的数据大小之间的差值。85.需要说明的是,在获取到表是数据文件的大小后,可以将目标表数据文件的数据大小与目标表的数据大小作差,以获取目标表数据文件的数据大小与目标表的数据大小之间的差值。86.s505、若差值大于预设值,则确定目标表存在表空间碎片。87.在本技术实施例中,在获取到目标表数据文件的数据大小与目标表的数据大小之间的差值后,可以将差值与预先设定的预设值进行比较,若差值大于预设值,则确定目标表存在表空间碎片;若差值小于或等于大于预设值,则确定目标表不存在表空间碎片。88.其中,预设值,可以根据实际情况进行设定。例如,可以设定为10g、30g或者50g等。89.上述本技术实施例中的技术方案,至少具有如下的技术效果或优点:90.由于本技术能够根据表信息确定目标表的数据大小,并计算目标表数据文件的数据大小与目标表的数据大小之间的差值,若差值大于预设值,则确定目标表存在表空间碎片,能够在确保可以完成对应的需求的同时,进一步地降低对数据库性能的影响,提升了表空间碎片的监控过程中的效率以及可靠性。91.进一步地,在获取表空间碎片后,可以从showtablestatuslike的字段中提取表空间碎片大小信息,并根据表空间碎片大小生成匹配的提醒。92.作为一种可能的实现方式,如图6所示,在上述实施例的基础上,具体包括以下步骤:93.s601、响应于目标表存在表空间碎片,获取表空间碎片的大小,并判断表空间碎片的大小是否大于或者第二预设阈值。94.其中,第二预设阈值,可以根据实际情况进行设定。例如,可以设定为10g、30g或者50g等。95.s603、响应于表空间碎片的大小大于或者等于第二预设阈值,生成碎片清理提醒发送给终端设备。96.其中,清理提醒,可以为文字或者语音等多种形式的提醒。97.需要说明的是,本技术中对于将碎片清理提醒发送至终端设备的具体方式不作限定,可以根据实际情况进行选取。可选地,可以通过邮件、短信、微信等方式将碎片清理提醒发送给终端设备。98.s605、接收终端设备的清理指令,对表空间碎片进行清理。99.可选地,管理员基于终端设备上显示的碎片清理提醒,可以发送清理指令。相应地,在接收到终端设备的清理指令后,可以对表空间碎片进行清理。100.上述本技术实施例中的技术方案,至少具有如下的技术效果或优点:101.由于本技术能够通过获取表空间碎片的大小,并判断表空间碎片的大小是否大于或者第二预设阈值,然后响应于表空间碎片的大小大于或者等于第二预设阈值,生成碎片清理提醒发送给终端设备,进而接收终端设备的清理指令,对表空间碎片进行清理,以通过自动化服务发现碎片较多的表,提醒管理员及时清理表空间碎片,使得磁盘利用率得以优化,并在不影响数据库性能的同时提升了业务的连续性。102.图7为本技术另一个实施例公开的表空间碎片的监控方法的流程示意图,如图7所示,具体包括以下步骤:103.s701、获取数据库下的数据目录。104.s703、对数据目录进行遍历,并判断数据目录是否为系统库目录。105.可选地,若数据目录为系统库目录,则忽略该数据目录;若数据目录非系统库目录,则可以执行步骤s705。106.s705、将该数据目录作为目标数据目录。107.s707、对目标数据目录下所有子目录进行循环,获取目标数据目录下的所有表数据文件。108.s709、获取表数据文件的大小,并判断表数据文件的大小是否大于或者等于第一预设阈值。109.可选地,若表数据文件的大小大于或者等于第一预设阈值,则可以执行步骤s711;若表数据文件的大小小于第一预设阈值,则可以忽略该表数据文件。110.s711、将大于或者等于第一预设阈值的表数据文件作为目标表数据文件。111.s713、基于目标表数据文件所在目录,确定目标表数据文件对应的目录名。112.s715、获取目标表数据文件的文件名,其中,属性信息包括目录名和文件名。113.s717、将目录名直接确定目标表对应的库名。114.s719、去除文件名的后缀字符,并将去除后缀字符的文件名作为目标表对应的表名。115.s721、根据库名和表名,生成结构化查询语言sql语句,并对数据库实例执行表信息查询操作,以获取目标表的表信息。116.s723、根据表信息确定目标表的数据大小。117.s725、计算目标表数据文件的数据大小与目标表的数据大小之间的差值。118.s727、若差值大于预设值,则确定目标表存在表空间碎片。119.可选地,若差值大于预设值,则可以执行步骤s729。120.s729、响应于目标表存在表空间碎片,获取表空间碎片的大小,并判断表空间碎片的大小是否大于或者等于第二预设阈值。121.可选地,若表空间碎片的大小大于或者等于第二预设阈值,则可以执行步骤s731。122.s731、生成碎片清理提醒发送给终端设备。123.s733、接收终端设备的清理指令,对表空间碎片进行清理。124.上述本技术实施例中的技术方案,至少具有如下的技术效果或优点:125.1、由于本技术能够通过获取数据库下的数据目录,并对数据目录进行遍历,从中获取非系统库目录的目标数据目录,然后对目标数据目录进行遍历,获取目标数据目录下的目标表数据文件,进而获取目标表数据文件的属性信息,并根据属性信息从数据库的数据库实例中获取目标表的表信息,根据表信息确定目标表是否存在表空间碎片,以实现表空间碎片的监控,不再直接通过数据库系统表获取表空间碎片,避免了在大量表存在的情况下导致数据库出现严重的性能瓶颈的问题,提升了表空间碎片的监控过程中的效率以及可靠性。126.2、由于本技术能够通过在获取到库名和表名后,连接数据库实例,并通过showtablestatus的方式获取对应的目标表的表信息,能够在确保可以完成对应的需求的同时,进一步地降低对数据库性能的影响,提升了表空间碎片的监控过程中的效率以及可靠性。127.3、由于本技术能够通过获取表空间碎片的大小,并判断表空间碎片的大小是否大于或者第二预设阈值,然后响应于表空间碎片的大小大于或者等于第二预设阈值,生成碎片清理提醒发送给终端设备,进而接收终端设备的清理指令,对表空间碎片进行清理,以通过自动化服务发现碎片较多的表,提醒管理员及时清理表空间碎片,使得磁盘利用率得以优化,并在不影响数据库性能的同时提升了业务的连续性。128.基于同一申请构思,本技术实施例还提供了一种表空间碎片的监控装置。129.图8~9为本技术实施例提供的表空间碎片的监控装置的结构示意图。如图8所示,该表空间碎片的监控装置100,包括:第一获取模块11、第二获取模块13、第三获取模块15和确定模块17。130.其中,第一获取模块11,用于获取数据库下的数据目录,并对所述数据目录进行遍历,从中获取非系统库目录的目标数据目录;第二获取模块13,用于对所述目标数据目录进行遍历,获取所述目标数据目录下的目标表数据文件,其中,所述目标表数据文件存储有目标表的数据内容;第三获取模块15,用于获取所述目标表数据文件的属性信息,并根据所述属性信息,从所述数据库的数据库实例中获取所述目标表的表信息;确定模块17,用于根据所述表信息确定目标表是否存在表空间碎片。131.根据本技术的一个实施例,第二获取模块13,还用于:每当遍历到一个所述表数据文件,获取所述表数据文件的大小,响应于所述表数据文件的大小大于或者等于第一预设阈值,则将所述大小大于或者等于所述第一预设阈值的表数据文件作为所述目标表数据文件。132.根据本技术的一个实施例,第三获取模块15,还用于:基于所述目标表数据文件所在目录,确定所述目标表数据文件对应的目录名;获取所述目标表数据文件的文件名,其中,所述属性信息包括所述目录名和所述文件名。133.根据本技术的一个实施例,第三获取模块15,还用于:根据所述目录名和所述文件名,确定所述目标表对应的库名和表名;根据所述库名和所述表名,生成结构化查询语言sql语句,并对所述数据库实例执行表信息查询操作,以获取所述目标表的表信息。134.根据本技术的一个实施例,第三获取模块15,还用于:将所述目录名直接确定为所述目标表对应的库名;去除所述文件名的后缀字符,并将去除后缀字符的文件名作为所述目标表对应的所述表名。135.根据本技术一个实施例,确定模块17,还用于:根据所述目标表的表信息确定目标表是否存在表空间碎片,包括:根据所述表信息确定所述目标表的数据大小;计算所述目标表数据文件的数据大小与所述目标表的数据大小之间的差值;若所述差值大于预设值,则确定所述目标表存在表空间碎片。136.根据本技术的一个实施例,如图9所示,本技术提供的表空间碎片的监控装置100,还包括,清理模块19,用于:响应于所述目标表存在表空间碎片,获取所述表空间碎片的大小,并判断所述表空间碎片的大小是否大于或者第二预设阈值;响应于所述表空间碎片的大小大于或者等于所述第二预设阈值,生成碎片清理提醒发送给终端设备;接收终端设备的清理指令,对所述表空间碎片进行清理。137.上述本技术实施例中的技术方案,至少具有如下的技术效果或优点:138.1、由于本技术能够通过获取数据库下的数据目录,并对数据目录进行遍历,从中获取非系统库目录的目标数据目录,然后对目标数据目录进行遍历,获取目标数据目录下的目标表数据文件,进而获取目标表数据文件的属性信息,并根据属性信息从数据库的数据库实例中获取目标表的表信息,根据表信息确定目标表是否存在表空间碎片,以实现表空间碎片的监控,不再直接通过数据库系统表获取表空间碎片,避免了在大量表存在的情况下导致数据库出现严重的性能瓶颈的问题,提升了表空间碎片的监控过程中的效率以及可靠性。139.2、由于本技术能够通过在获取到库名和表名后,连接数据库实例,并通过showtablestatus的方式获取对应的目标表的表信息,能够在确保可以完成对应的需求的同时,进一步地降低对数据库性能的影响,提升了表空间碎片的监控过程中的效率以及可靠性。140.3、由于本技术能够通过获取表空间碎片的大小,并判断表空间碎片的大小是否大于或者第二预设阈值,然后响应于表空间碎片的大小大于或者等于第二预设阈值,生成表空间碎片清理提醒发送给终端设备,进而接收终端设备的清理指令,对表空间碎片进行清理,以通过自动化服务发现碎片较多的表,提醒管理员及时清理表空间碎片,使得磁盘利用率得以优化,并在不影响数据库性能的同时提升了业务的连续性。141.基于同一申请构思,本技术实施例还提供了一种电子设备。142.图10为本技术实施例提供的电子设备的结构示意图。如图10所示,该电子设备2000,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序,处理器执行程序时,实现前述的表空间碎片的监控方法。143.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。144.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。145.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。146.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。147.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本技术可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。148.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。149.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。当前第1页12当前第1页12
技术特征:
1.一种表空间碎片的监控方法,其特征在于,包括:获取数据库下的数据目录,并对所述数据目录进行遍历,从中获取非系统库目录的目标数据目录;对所述目标数据目录进行遍历,获取所述目标数据目录下的目标表数据文件,其中,所述目标表数据文件存储有目标表的数据内容;获取所述目标表数据文件的属性信息,并根据所述属性信息从所述数据库的数据库实例中获取所述目标表的表信息;根据所述表信息确定目标表是否存在表空间碎片。2.根据权利要求1所述的方法,其特征在于,所述对所述目标数据目录进行遍历,获取所述目标数据目录下的目标表数据文件,包括:每当遍历到一个所述表数据文件,获取所述表数据文件的大小,响应于所述表数据文件的大小大于或者等于第一预设阈值,则将所述大小大于或者等于所述第一预设阈值的表数据文件作为所述目标表数据文件。3.根据权利要求1所述的监控方法,其特征在于,所述获取所述目标表数据文件的属性信息,包括:基于所述目标表数据文件所在目录,确定所述目标表数据文件对应的目录名;获取所述目标表数据文件的文件名,其中,所述属性信息包括所述目录名和所述文件名。4.根据权利要求3所述的监控方法,其特征在于,所述根据所述属性信息从所述数据库的数据库实例中获取目标表的表信息,包括:根据所述目录名和所述文件名,确定所述目标表对应的库名和表名;根据所述库名和所述表名,生成结构化查询语言sql语句,并对所述数据库实例执行表信息查询操作,以获取所述目标表的表信息。5.根据权利要求4所述的监控方法,其特征在于,所述根据所述目录名和所述文件名,确定所述目标表对应的库名和表名,包括:将所述目录名直接确定为所述目标表对应的库名;去除所述文件名的后缀字符,并将去除后缀字符的文件名作为所述目标表对应的所述表名。6.根据权利要求1所述的监控方法,其特征在于,所述根据所述目标表的表信息确定目标表是否存在表空间碎片,包括:根据所述表信息确定所述目标表的数据大小;计算所述目标表数据文件的数据大小与所述目标表的数据大小之间的差值;若所述差值大于预设值,则确定所述目标表存在表空间碎片。7.根据权利要求1-6任一项所述的监控方法,其特征在于,还包括:响应于所述目标表存在表空间碎片,获取所述表空间碎片的大小,并判断所述表空间碎片的大小是否大于或者第二预设阈值;响应于所述表空间碎片的大小大于或者等于所述第二预设阈值,生成碎片清理提醒发送给终端设备;接收终端设备的清理指令,对所述表空间碎片进行清理。
8.一种表空间碎片的监控装置,其特征在于,用于实现如权利要求1-7中任一项所述的表空间碎片的监控方法。9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-7中任一项所述的表空间碎片的监控方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的表空间碎片的监控方法。
技术总结
本申请公开了一种表空间碎片的监控方法、装置及电子设备,该方法包括:获取数据库下的数据目录,并对所述数据目录进行遍历,从中获取非系统库目录的目标数据目录;对所述目标数据目录进行遍历,获取所述目标数据目录下的目标表数据文件;获取所述目标表数据文件的属性信息,并根据所述属性信息从所述数据库的数据库实例中获取所述目标表的表信息,根据所述表信息确定目标表是否存在表空间碎片。本申请不再直接通过数据库系统表获取表空间碎片,避免了在大量表存在的情况下导致数据库出现严重的性能瓶颈的问题,提升了表空间碎片的监控过程中的效率以及可靠性。程中的效率以及可靠性。程中的效率以及可靠性。
技术研发人员:高超 董俊峰 郑仕辉 强群力 刘超千 赵彤 张文凌 周欢 王鹏 韦鹏程 朱绍辉 陈飞 姚文龙 余星 徐国强 蒋旭
受保护的技术使用者:网联清算有限公司
技术研发日:2022.02.25
技术公布日:2023/9/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种原料油催化裂化的方法和系统与流程 下一篇:插入式断路器的制作方法