一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据库表清空方法及装置与流程

2022-06-01 17:33:22 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,具体涉及一种数据库表清空方法及装置。


背景技术:

2.随着数据库长时间运行,表数据会不断累计,数据库中不再需要使用的表数据如果不及时清空会导致大量磁盘空间浪费,并且,对数据库进行备份时,无用的表数据还会导致备份时间以及备份存储容量相应增加。而如果对数据库中较大的表数据直接删除,又会对线上数据库造成影响,影响数据库的正常运行。


技术实现要素:

3.因此,本发明要解决的技术问题在于克服现有技术中的对较大的表数据直接删除会对线上数据库造成影响,使数据库无法正常运行的缺陷,从而提供一种数据库表清空方法及装置。
4.本发明第一方面提供了一种数据库表清空方法,包括:在系统层为目标表指向的待删除文件创建硬链接;删除所述目标表;在所述系统层中通过所述硬链接从所述待删除文件中分离出目标文件,并删除所述目标文件,重复执行从所述待删除文件中分离出目标文件,并删除所述目标文件的步骤,直至所述待删除文件的剩余部分所占空间小于预设阈值,删除所述待删除文件的剩余部分。
5.可选地,在本发明提供的数据库表清空方法中,在所述在系统层为目标表指向的待删除文件创建硬链接的步骤之前,还包括:获取所述目标表的原始名称;创建空表,以所述目标表的原始名称为所述空表命名,使所述目标表的原始名称指向所述空表;以新的名称为所述目标表重命名。
6.可选地,在本发明提供的数据库表清空方法中,在所述在系统层为目标表指向的待删除文件创建硬链接的步骤之前,还包括:获取配置文件,所述配置文件中包括配置参数和各配置参数的取值范围,其中,所述配置参数包括所述目标表的基本信息、清理条件、清理规则;根据各配置参数的取值范围和所述配置文件中各配置参数的值对配置文件进行检测;若所述配置文件中各配置参数的值分别位于各配置参数的取值范围内,根据所述配置文件中目标表的清理条件对所述目标表的当前状态进行检测;若所述目标表的当前状态与所述配置文件中目标表的清理条件一致,根据所述清理规则执行在系统层为目标表指向的表数据文件创建硬链接的步骤。
7.可选地,在本发明提供的数据库表清空方法中,若所述配置文件中存在配置参数的值位于与所述配置参数相对应的取值范围外,返回错误信息。
8.可选地,在本发明提供的数据库表清空方法中,若所述目标表的当前状态与所述配置文件中目标表的清理条件不一致,形成错误日志;返回错误信息。
9.可选地,在本发明提供的数据库表清空方法中,在所述分别删除各所述目标文件的步骤之后,还包括:判断所述目标表所占空间是否为零;若所述目标表所占空间不为零,
返回清理失败信息。
10.本发明第二方面提供了一种数据库表清空装置,包括:硬链接创建模块,用于在系统层为目标表指向的待删除文件创建硬链接;目标表删除模块,用于删除所述目标表;文件删除模块,用于在所述系统层中通过所述硬链接从所述待删除文件中分离出目标文件,并删除所述目标文件,重复执行从所述待删除文件中分离出目标文件,并删除所述目标文件的步骤,直至所述待删除文件的剩余部分所占空间小于预设阈值,删除所述待删除文件的剩余部分。
11.本发明第三方面提供了一种计算机设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,从而执行如本发明第一方面提供的数据库表清空方法。
12.本发明第四方面提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如本发明第一方面提供的数据库表清空方法。
13.本发明的至少一个技术方案,具有如下优点:
14.本发明提供的数据库表清空方法及装置,先在系统层为数据库中待删除文件创建硬链接,在删除指向待删除文件的目标表后,在系统层通过硬链接依次从待删除文件中分离出目标文件并删除目标文件,直到待删除文件的剩余部分小于预设阈值,删除待删除文件的剩余部分,完成对待删除文件的删除。若数据库表中待删除文件较大,直接对数据库中较大的文件进行删除会对数据库的使用产生一定影响,因此本发明提供的数据库表清空方法及装置依次从待删除文件中分离出较小的目标文件,对较小目标文件进行删除有效降低了对数据库带来的影响。
附图说明
15.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1-图3为本发明实施例中数据库表清空方法的具体示例的流程图;
17.图4为本发明实施例中数据库表清空装置的一个具体示例的原理框图;
18.图5为本发明实施例中提供的计算机设备的一个具体示例的原理框图。
具体实施方式
19.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.在本发明的描述中,需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
21.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构
成冲突就可以相互结合。
22.实施例1
23.本发明实施例提供了一种数据库表清空方法,如图1所示,包括:
24.步骤s11:在系统层为目标表指向的待删除文件创建硬链接。目标表属于数据库层面,目标表本身并不占据磁盘空间,在系统层为待删除文件创建硬链接,具体可以为在操作系统上创建一个文件,通过该文件指向待删除文件,在操作系统上创建的文件同样是不占据磁盘空间的,只有待删除文件占据磁盘空间。
25.在具体实施例中,硬链接是指对待删除文件创建的文件名,通过该文件名可以对待删除文件进行修改,在系统层为待删除文件创建硬链接,是指在操作系统的目录下为待删除文件创建文件名,通过该硬链接可以在系统层中修改待删除文件。
26.步骤s12:删除目标表,在一具体实施例中,将待删除文件进行删除时,需要将所有指向待删除文件的链接进行删除,删除目标表只是将数据库目录下指向待删除文件的目标表进行了删除,并不会删除磁盘中的待删除文件。
27.步骤s13:在系统层中通过硬链接从待删除文件中分离出目标文件,并删除目标文件。
28.执行上述步骤s13后,判断待删除文件的剩余部分所占空间是否小于或等于预设阈值,若待删除文件的剩余部分所占空间小于或等于预设阈值,执行步骤s14,若待删除文件的剩余部分所占空间大于预设阈值,返回上述步骤s13,重复执行从待删除文件中分离出目标文件,并删除目标文件的步骤,直至待删除文件的剩余部分所占空间小于或等于预设阈值。
29.步骤s14:删除待删除文件的剩余部分。
30.在具体实施例中,从待删除文件中分离出的目标文件所占磁盘空间应小于或等于预设阈值,预设阈值可以根据数据库对删除文件时的敏感程度确定,当数据库在使用过程中对删除文件的过程较为敏感时,可以将预设阈值设置为较小的值,当数据库在使用过程中对删除文件的过程不敏感时,可以将预设阈值设置为较大的值,在具体实施例中,可以将预设阈值设置为200m。在实际删除待删除文件时,每一次分离出的目标文件所占磁盘空间可以为固定值,也可以是不同的值,例如,可以以200m为定值,每次从待删除文件中分离出占磁盘200m的目标文件并删除,直到待删除文件中的剩余部分小于或等于200m,将待删除文件的剩余部分删除;也可以每次从待删除文件中分离出任意占磁盘小于或等于200m的目标文件并删除,直到待删除文件中的剩余部分小于或等于200m,将待删除文件的剩余部分删除。
31.在一具体实施例中,可以通过任意方法从待删除文件中分离出目标文件并删除目标文件,在本发明实施例中,通过系统层中的truncate命令执行上述过程。
32.在一可选实施例中,在执行上述步骤s14后,可在系统层中通过硬链接检测硬链接指向的内容所占磁盘空间是否为零,若为零,则表示待删除文件已清空。
33.本发明提供的数据库表清空方法,先在系统层为数据库中待删除文件创建硬链接,在删除指向待删除文件的目标表后,在系统层通过硬链接依次从待删除文件中分离出目标文件并删除目标文件,直到待删除文件的剩余部分小于预设阈值,删除待删除文件的剩余部分,完成对待删除文件的删除。若数据库表中待删除文件较大,直接对数据库中较大
的文件进行删除会对数据库的使用产生一定影响,因此本发明提供的数据库表清空方法依次从待删除文件中分离出较小的目标文件,对较小目标文件进行删除有效降低了对数据库带来的影响。
34.在一可选实施例中,如图2所示,在执行上述步骤s11之前,本发明实施例提供的数据库表清空方法还包括:
35.步骤s15:获取目标表的原始名称。
36.步骤s16:创建空表,以目标表的原始名称为空表命名,使目标表的原始名称指向空表。
37.步骤s17:以新的名称为目标表重命名。
38.在对数据库中的数据库表进行修改或查询时,都是通过数据库表的名称连接到所需的数据的,因此为了避免在对目标表进行删除的同时,第三方以目标表的原始名称连接到该表,并对该表进行操作,导致对目标表的删除和第三方对目标表的操作造成冲突,本发明实施例提供的数据库表清空方法在对目标表指向的待删除文件进行删除时,先将目标表的原始名称赋予一个空表,然后以新的名称为目标表重新命名,新的名称不与任何应用方有所关联,对以新的名称命名的目标表进行删除操作时,不会存在操作冲突的隐患,做到了删除时对用户无感知。
39.在一可选实施中,如图3所示,在执行上述步骤s11之前,本发明实施例提供的数据库表清空方法还包括:
40.步骤s18:获取配置文件,配置文件如下表1所示,配置文件中包括配置参数和各配置参数的取值范围,其中,配置参数包括目标表的基本信息、清理条件、清理规则。
41.目标表的基本信息包括目标表所在的数据库的前缀名、目标表的立式数据清理周期、目标表的名称、目标表的类型等。
42.目标表的清理条件包括清理时目标表所在的数据库最大连接数小于第一预设阈值、数据库的最大并发数小于第二预设阈值等,对目标表的清理条件以及各清理条件对应的参数阈值可根据实际需求自行设置,例如,在下表1所示的配置文件中,将数据库最大连接数对应的第一预设阈值为4000、将数据库的最大并发数对应的第二预设阈值为40。
43.清理规则包括每次清理时的睡眠时间等。
44.表1
[0045][0046]
步骤s19:根据各配置参数的取值范围和配置文件中各配置参数的值对配置文件进行检测。
[0047]
步骤s20:判断配置文件中各配置参数的值是否都分别位于各配置参数的取值范围内,若存在配置文件中的任意一个参数位于该参数的取值范围外,返回错误信息。
[0048]
在本发明实施例中,后续对待删除文件的删除都是基于配置文件进行操作的,因此为了避免删除时发生错误,首先需要对配置文件进行检测,本发明实施例中为配置文件
中的每个参数设置了对应的参数取值范围,通过各参数的取值范围对各配置文件进行检测,提高了配置文件的检测效率。
[0049]
若配置文件中各配置参数的值都分别位于各配置参数的取值范围内,执行如下步骤:
[0050]
步骤s21:根据配置文件中目标表的清理条件对目标表的当前状态进行检测。
[0051]
步骤s22:判断目标表的当前状态与配置文件中目标表的清理条件是否一致,若不一致,形成错误日志,并返回错误信息。若一致,执行步骤s11。
[0052]
在一具体实施例中,对待删除文件进行删除前,需要对目标表所在数据库是否登录正常、数据库是否处于读写状态、数据库上联是否存在主库等多项进行逐一检查,现有方案中,对待删除文件进行删除前需要人工对繁杂的检查项进行逐一检查,容易出现漏查或检查结果错误等情况,因此本发明实施例提供的数据库表清空方法在对待删除文件进行删除前,先获取配置文件,通过配置文件对所需检查的检查项进行检查,避免了人工检查导致的检查错误的情况。
[0053]
在一可选实施例中,在上述步骤s15之后,本发明实施例提供的数据库表清空方法还包括:
[0054]
判断目标表所占空间是否为零;
[0055]
若目标表所占空间不为零,返回清理失败信息。
[0056]
在具体实施例中,若未执行上述步骤s15-步骤s17,在检测数据库表是否清理成功时,只需根据目标表的原始名称检测目标表是否存在即可,若在数据库中检测不到目标表,则表明目标表从数据库中清理成功。
[0057]
在具体实施例中,若执行了上述步骤s15-步骤s17,则在检测数据库表是否清空时,可以检测数据库中是否存在以步骤s17中的新的名称命名的表,以及以目标表的原始名称命名的表是否指向磁盘中的文件,若以目标表的原始名称命名的表指向磁盘中的文件,还需检测以目标表的原始名称命名的表所指向的文件所占磁盘空间是否为零,若数据库中不存在以步骤s17中的新的名称命名的表,且以目标表的原始名称命名的表不指向磁盘中的文件,表明目标表从数据库中清理成功,若数据库中不存在以步骤s17中的新的名称命名的表,且以目标表的原始名称命名的表所指向的磁盘中的文件占磁盘空间为0,也表明目标表从数据库中清理成功。
[0058]
在上述实施例中,在执行上述步骤s15-步骤s17时,用新的名称为目标表进行了重命名,在执行步骤s11-步骤s13时,是对以新的名称命名的数据库表进行删除,因此判断目标表的原始名称命名的表是否指向磁盘中的文件,以及判断以目标表的原始名称命名的表所指向的文件所占磁盘空间是否为零,实际是为了检测步骤s15-步骤s17是否重命名成功,若未执行成功,则执行步骤s11-步骤s13时,删除对象不是目标表,目标表以及待删除文件大概率是没有清理成功的。
[0059]
在一具体实施例中,判定清理任务是否完成时,也可判断目标表的原始名称命名的表所指向的磁盘中的文件是否小于第三阈值,即使目标表所占空间不等于零,当所占空间小于第三阈值时,也可判定清理任务已完成。第三阈值可以根据实际情况进行调整,例如,可以设置为10kb,当清理后的数据库表所占空间小于10kb时,可判定清理任务已完成。
[0060]
实施例2
[0061]
本发明实施例提供了一种数据库表清空装置,如图4所示,包括:
[0062]
硬链接创建模块11,用于在系统层为目标表指向的待删除文件创建硬链接,详细描述见上述任意方法实施例中对步骤s11的描述。
[0063]
目标表删除模块12,用于删除目标表,详细描述见上述任意方法实施例中对步骤s12的描述。
[0064]
文件删除模块13,用于在系统层中通过硬链接从待删除文件中分离出目标文件,并删除目标文件,重复执行从待删除文件中分离出目标文件,并删除目标文件的步骤,直至待删除文件的剩余部分所占空间小于预设阈值,删除待删除文件的剩余部分,详细描述见上述任意方法实施例中对步骤s13的描述。
[0065]
本发明实施例提供的数据库表清空装置,先在系统层为数据库中待删除文件创建硬链接,在删除指向待删除文件的目标表后,在系统层通过硬链接依次从待删除文件中分离出目标文件并删除目标文件,直到待删除文件的剩余部分小于预设阈值,删除待删除文件的剩余部分,完成对待删除文件的删除。若数据库表中待删除文件较大,直接对数据库中较大的文件进行删除会对数据库的使用产生一定影响,因此本发明提供的数据库表清空方法及装置依次从待删除文件中分离出较小的目标文件,对较小目标文件进行删除有效降低了对数据库带来的影响。
[0066]
实施例3
[0067]
本发明实施例提供一种计算机设备,如图5所示,该计算机设备主要包括一个或多个处理器31以及存储器32,图3中以一个处理器31为例。
[0068]
该计算机设备还可以包括:输入装置33和输出装置34。
[0069]
处理器31、存储器32、输入装置33和输出装置34可以通过总线或者其他方式连接,图3中以通过总线连接为例。
[0070]
处理器31可以为中央处理器(central processing unit,cpu)。处理器31还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。存储器32可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据库表清空装置的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至数据库表清空装置。输入装置33可接收用户输入的计算请求(或其他数字或字符信息),以及产生与数据库表清空装置有关的键信号输入。输出装置34可包括显示屏等显示设备,用以输出计算结果。
[0071]
实施例4
[0072]
本发明第四方面提供一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据库表清空定方法。其中,所述存储介质可为磁碟、光盘、只读存储
记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0073]
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献