数据库的处理方法、装置、计算机设备和存储介质与流程

文档序号:28377637发布日期:2022-01-07 22:19阅读:52来源:国知局
数据库的处理方法、装置、计算机设备和存储介质与流程

1.本技术涉及数据处理技术领域,特别是涉及数据库的处理方法、装置、计算机设备和存储介质。


背景技术:

2.对数据库进行新增、删除和修改,节能会产生文件碎片,文件碎片会占用磁盘空间。在现有方法中,当磁盘空间不足时,会对数据库文件进行清理,或者对磁盘空间进行扩容。
3.但是,现有方法缺少自动化检测磁盘空间,根据磁盘空间的检测结果对磁盘空间进行操作控制的方法,经常因为未按照计划清理磁盘、未对磁盘空间进行合理扩容,而造成磁盘空间不足、数据库查询效率下降等问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供能够保证数据库查询效率的数据库的处理方法、装置、计算机设备和存储介质。
5.第一方面,本技术提供了一种数据库的处理方法,所述方法包括:
6.获取待处理数据库在目标时段内的多个表日志和多个清理日志,其中,所述清理日志是基于预设的清理时长对所述待处理数据库中的数据进行清理得到的;
7.基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表;
8.将所述若干异常表中满足第一预设条件的异常表作为参考表,并清理所述参考表中的碎片;
9.若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容。
10.在其中一个实施例中,所述获取待处理数据库在目标时段内的多个表日志和多个清理日志,包括:
11.接收大数据分析平台发送的多个候选表日志和多个候选清理日志,并存入前端数据库表中,其中,所述大数据分析平台,用于基于第一预设字段集和第二预设字段集,对获取的多个初始表日志和多个初始清理日志进行预处理,以得到多个候选表日志和多个候选清理日志;
12.从所述前端数据库表中获取目标时段内的多个表日志和多个清理日志。
13.在其中一个实施例中,所述基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表,包括:
14.获取每个表日志的日期和记录数,并基于每个表日志的日期和记录数,确定记录数增长率,以及除了最早日期的表日志以外的任一表日志的参考增长率;
15.若所述任一表日志的参考增长率大于所述记录数增长率,则将所述任一表日志对应的数据库表作为异常表。
16.在其中一个实施例中,所述基于每个表日志的日期和记录数,确定记录数增长率,以及除了最早日期的表日志以外的任一表日志的参考增长率,包括:
17.对于所述多个表日志中除了最早日期的表日志以外的任一表日志,基于所述任一表日志在日期上相邻的候选表日志,确定所述任一表日志的参考增长率;
18.计算所有参考增长率的平均值,得到记录数增长率。
19.在其中一个实施例中,所述第一预设条件为:碎片占用空间与总数据占用空间之间的比值大于预设阈值。
20.在其中一个实施例中,所述若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容,包括:
21.若所述多个清理日志均满足第二预设条件,并且所述清理时长大于预设的数据保留时长阈值与步长的和,则按照所述步长降低所述清理时长;
22.若所述清理时长小于或等于所述数据保留时长阈值与所述步长的和,则基于所述多个表日志确定存储增长率,并基于所述存储增长率对所述待处理数据库的磁盘空间进行扩容。
23.在其中一个实施例中,所述第二预设条件为:所述多个清理日志的数量等于目标时段与所述清理时长之间的比值,并且每个清理日志中的清理结果均为已清理,并且清理记录数不为零。
24.第二方面,本技术还提供了一种数据库的处理装置,所述装置包括:
25.获取模块,用于获取待处理数据库在目标时段内的多个表日志和多个清理日志,其中,所述清理日志是基于预设的清理时长对所述待处理数据库中的数据进行清理得到的;
26.异常表确定模块,用于基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表;
27.第一处理模块,用于将所述若干异常表中满足第一预设条件的异常表作为参考表,并清理所述参考表中的碎片;
28.第二处理模块,用于若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容。
29.第三方面,本技术还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
30.获取待处理数据库在目标时段内的多个表日志和多个清理日志,其中,所述清理日志是基于预设的清理时长对所述待处理数据库中的数据进行清理得到的;
31.基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表;
32.将所述若干异常表中满足第一预设条件的异常表作为参考表,并清理所述参考表中的碎片;
33.若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容。
34.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
35.获取待处理数据库在目标时段内的多个表日志和多个清理日志,其中,所述清理
日志是基于预设的清理时长对所述待处理数据库中的数据进行清理得到的;
36.基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表;
37.将所述若干异常表中满足第一预设条件的异常表作为参考表,并清理所述参考表中的碎片;
38.若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容。
39.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
40.获取待处理数据库在目标时段内的多个表日志和多个清理日志,其中,所述清理日志是基于预设的清理时长对所述待处理数据库中的数据进行清理得到的;
41.基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表;
42.将所述若干异常表中满足第一预设条件的异常表作为参考表,并清理所述参考表中的碎片;
43.若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容。
44.上述数据库的处理方法、装置、计算机设备和存储介质,获取待处理数据库的在目标时段内的多个表日志和多个清理日志,在多个表日志中确定记录数增长异常的异常表,并确定异常表中的参考表,清理参考表中的碎片,以释放磁盘空间;若所述多个清理日志均满足第二预设条件,则降低清理时长,以提高清理频率,降低异常表的数量,进而释放磁盘空间,保证数据库查询效率,或者对磁盘空间进行扩容,以保证待处理数据库的查询效率。通过对异常表进行碎片清理、提高清理频率或者对磁盘空间进行扩容,保证数据库的查询效率。
附图说明
45.图1为一个实施例中数据库的处理方法的流程示意图;
46.图2为一个实施例中表日志的示意图;
47.图3为一个实施例中清理日志的示意图;
48.图4为一个实施例中数据库的处理装置的结构框图;
49.图5为一个实施例中计算机设备的内部结构图。
具体实施方式
50.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
51.在一个实施例中,如图1所示,提供了一种数据库的处理方法,本实施例以该方法应用于前端服务器进行举例说明,可以理解的是,该方法也可以应用于终端中,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
52.s101、获取待处理数据库在目标时段内的多个表日志和多个清理日志。
53.其中,所述待处理数据库可以是oracle、mysql等,待处理数据库包括多个应用程序数据库;所述清理日志是基于预设的清理时长对所述待处理数据库中的数据进行清理得到。
54.具体地,前端服务器接收用户端发送的目标时段,在前端数据库表中,获取目标时段内的多个表日志和多个清理日志,所述前端数据库表可以是前端oracle数据库的表。
55.所述前端数据库表中保存有所述待处理数据库的多个候选表日志和多个候选清理日志;在多个候选表日志和多个候选清理日志中,获取目标时段内的多个表日志和多个清理日志。前端数据库表中保存的多个候选表日志和多个候选清理日志,是大数据分析平台对待处理数据库的多个初始表日志和多个初始清理日志进行预处理,得到多个候选表日志和多个候选清理日志,并发送至所述前端服务器,前端服务器将多个候选表日志和多个候选清理日志存在前端数据库表中。
56.s102、基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表。
57.具体地,异常表是记录数增长较大的表,记录数增长较大的表,可能会导致表空间不足,并影响数据库的查询效率。通过目标时段内多个表日志的记录数增长情况,确定记录数增长异常的若干异常表。根据多个表日志中的记录数确定记录数平均增长率,以及每个表日志的记录数增长率,若任一表日志的记录数增长率大于记录数平均增长率,则将任一表日志作为异常表。
58.s103、将所述若干异常表中满足第一预设条件的异常表作为参考表,并清理所述参考表中的碎片。
59.具体地,若数据库表和索引存在碎片,则可能会影响系统的交易性能,造成磁盘空间过度浪费,确定每个异常表的碎片率,若任一异常标的碎片率超过预设阈值,则将所述异常表作为参考表,参考表是需要清理碎片的数据库表。
60.s104、若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容。
61.具体地,判断多个清理日志是否均满足第二预设条件,若多个清理日志均满足第二预设条件,则表示对数据库表的清理操作是正常且有效执行的,则需要降低清理时长,也就是增加清理频率,以降低异常表的产生,或者,清理时长不能再降低,则表示当前磁盘空间无法适用于系统正常运行,需要对磁盘空间进行扩容,以保证待处理数据库的查询效率。
62.在上述数据库的处理方法中,获取待处理数据库的在目标时段内的多个表日志和多个清理日志,在多个表日志中确定记录数增长异常的异常表,并确定异常表中的参考表,清理参考表中的碎片,以释放磁盘空间;若所述多个清理日志均满足第二预设条件,则降低清理时长,以提高清理频率,降低异常表的数量,进而释放磁盘空间,保证数据库查询效率,或者对磁盘空间进行扩容,以保证待处理数据库的查询效率。通过对异常表进行碎片清理、提高清理频率或者对磁盘空间进行扩容,保证数据库的查询效率。
63.在一个实施例中,s101包括:
64.s110、接收大数据分析平台发送的多个候选表日志和多个候选清理日志,并存入前端数据库表中。
65.其中,所述大数据分析平台,用于基于第一预设字段集和第二预设字段集,对获取
的多个初始表日志和多个初始清理日志进行预处理,以得到多个候选表日志和多个候选清理日志。
66.具体地,通过后台服务器获取多个初始表日志和多个初始清理日志,后台服务器将获取的多个初始表日志和多个初始清理日志发送到消息队列集群,大数据分析平台从消息队列集群中获取多个初始表日志和多个初始清理日志,并对多个初始表日志和多个初始清理日志进行预处理,得到多个候选表日志和多个候选清理日志,大数据分析平台将多个候选表日志和多个候选清理日志存入前端数据库中。所述消息队列集群可以是kafka,或者mq,所述大数据分析平台可以是magiclamp。
67.由于大数据分析平台存储数据量巨大,查询处理效率低,无法支持前端灵活查询,因此,将在大数据分析平台预处理得到的多个候选表日志和多个候选清理日志存入前端数据库,通过前端数据库,可以灵活查询目标时段内的多个表日志和多个清理日志;所述前端数据库可以定时清理数据,以确保查询效率。
68.通过日志采集器获取待处理数据库的多个初始表日志,在待处理数据库设置日志采集器,所述日志采集器可以是开源工具filebeat、logstash等。多个初始表日志包括:多个应用程序数据库的多个初始表日志;在各应用程序数据库设置日志采集器,日志采集器可以每间隔预设的采集时长,对各应用程序数据库进行采集,得到多个初始表日志。
69.通过清理工具获取待处理数据库的多个初始清理日志,清理工具可以以数据库脚本的形式发布,并部署至各应用程序数据库中;通过清理工具,每间隔预设的清理时长对所述待处理数据库(包括多个应用程序数据库)中的数据进行清理,得到多个初始清理日志。
70.每间隔第一发送时长,则将后台服务器获取的该第一发送时长内多个初始表日志和多个初始清理日志,发送到消息队列集群,通过消息队列集群发送到大数据分析平台,大数据分析平台每间隔第二发送时长,对该第二发送时长内的多个初始表日志和多个初始清理日志进行处理,得到多个候选表日志和多个候选清理日志。
71.所述采集时长、所述清理时长、所述第一发送时长和所述第二发送时长均可以根据需求自定义设置。
72.大数据分析平台对多个初始表日志和多个初始清理日志进行预处理,得到多个候选表日志和多个初始清理日志的过程,包括:根据预设的第一预设字段集合,提取每个初始表日志中的关键字段,得到候选表日志,根据预设的第二预设字段集合,提取每个初始清理日志中的关键字段,得到候选清理日志。
73.第一预设字段集如图2所示,包括:应用程序名称、ip地址、端口、表名称、表名、记录数(表的行数)、数据占用空间、索引占用空间和碎片占用空间;第二预设字段集如图3所示,包括:ip地址、表owner、表名称、清理实施日期、清理数据的日期、清理开始时间、清理结束时间、清理的记录数、清理记录占用空间、清理结果、错误信息和清理周期。
74.s111、从所述前端数据库表中获取目标时段内的多个表日志和多个清理日志。
75.具体地,每个表日志均有对应的日期,多个清理日志也有对应的日期,所述目标时段包括第一日期和第二日期,所述多个表日志的第一日期到第二日期之间的表日志,所述多个清理日志是第一日期到第二日期之间的清理日志;所述多个表日志中日期最早的表日志的日期,不早于所述第一日期,多个表日志中日期最晚的表日志的日期,不晚于所述第二日期,同样的,所述多个清理日志中日期最早的清理日志的日期,不早于所述第一日期,所
述多个清理日志中日期最晚的清理日志的日期,不晚于所述第二日期。
76.在一个实施例中,s102包括:
77.s210、获取每个表日志的日期和记录数,并基于每个表日志的日期和记录数,确定记录数增长率,以及除了最早日期的表日志以外的任一表日志的参考增长率。
78.具体地,所述记录数是日志行数,每个表日志均有其对应的日期,获取每个表日志的日期和记录数,对于除了日期最早的表日志以外的所有表日志,计算每个表日志相对于前一日期的表日志的参考增长率,计算每个参考增长率的平均值,得到记录数增长率。
79.s210包括:
80.s221、对于所述多个表日志中除了最早日期的表日志以外的任一表日志,基于所述任一表日志在日期上相邻的候选表日志,确定所述任一表日志的参考增长率。
81.例如,多个表日志按照日期排列包括:a1,a2,a3,a4,a5,a6,a7和a8,对于除了日期最早的a1以外的所有日志,计算每个表日志相对于前一日期的表日志的候选记录数增长率,包括:a1和a2之间的参考增长率:p1;a2和a3之间的参考增长率:p2;a3和a4之间的参考增长率:p3;a4和a5之间的参考增长率:p4;a5和a6之间的参考增长率:p5;a6和a7之间的参考增长率:p6;a7和a8之间的参考增长率:p7。
82.s222、计算所有参考增长率的平均值,得到记录数增长率。
83.具体地,计算所有参考增长率的平均值,得到记录数增长率。由于后台服务器是每间隔预审的采集时长,采集初始表日志,因此,多个初始表日志中任意两个日期相邻的表日志之间的时间间隔一致,每个表日志与其前一日期的表日志之间的时间间隔均一致,根据所有参考增长率的平均值,可以得到记录增长率。
84.例如,在上例中,计算p1、p2、p3、p4、p5、p6和p7的平均值,得到记录数增长率。
85.在一种实现方式中,可以通过scikit learn机器学习算法程序库的线性回归预测模型,对目标时段内的多个表日志进行分析,得到记录数增长率。提取每个表日志的日期、记录数和存储量,将每个表日志的日期和记录数输入线性回归预测模型,通过线性回归预测模型输出记录数增长率。
86.具体地,scikit-learn中导入线性回归模型:from sklearn.linear_model import linearregression;获取每个表日志的日期(a)和记录数(b)通过线性回归模型的fit()方法进行拟合:
87.model.fit(a,b)
88.x=model.coef
89.x则是记录数增长率。
90.s211、若所述任一表日志的参考增长率大于所述记录数增长率,则将所述任一表日志对应的数据库表作为异常表。
91.具体地,若任一表日志的参考增长率大于所述记录数增长率,则表示所述任一表日志中的记录数增长较大,可以推断出,所述任一表日志对应的数据库表占用的磁盘空间较大,则可能会导致数据库的查询效率减低,因此,将参考增长率大于所述记录数增长率的表日志所对应的数据库表作为异常表,以便于后继对异常表进行处理。
92.在一个实施例中,s103中,所述第一预设条件为:碎片占用空间与总数据占用空间之间的比值大于预设阈值。
93.具体地,在任一异常表对应的表日志中,获取任一异常表对应的碎片占用空间、数据占用空间、索引占用空间;根据任一异常表对应的碎片占用空间、数据占用空间、索引占用空间,确定任一异常表的总数据占用空间;确定所述任一异常表的碎片占用空间和总数据占用空间之间的比值,若确定的比值大于预设阈值,则表示所述任一异常表的碎片占用空间较大,需要对所述任一异常进行碎片清理。所述预设阈值可以根据需求自定义设置。
94.所述第一预设条件可以通过碎片率优化算法表示,碎片率优化算法如公式(1)所示。
[0095][0096]
其中,data
free
是碎片占用空间,data
length
是数据占用空间,index
length
是索引占用空间,data
length
+index
length
+data
free
是数据占用总空间,z%是预设阈值。
[0097]
若任一异常表满足公式(1),则任一异常表满足第一预设条件,将任一异常表作为参考表,并清理所述参考表中的碎片。
[0098]
具体地,清理所述参考表中的碎片,可以是对所述参考表进行重定义,以清理所述参考表的碎片;对所述参考表进行重定义,可以是生成没有碎片的临时表,采用临时表替换所述参考表。
[0099]
在此实施例中,根据多个表日志,确定记录数增大较大,并且碎片占用空间较大的参考表,清理参考表中的碎片,以减小所述参考表的占用空间,释放了待处理数据库的磁盘空间,提升了待处理数据库的查询效率。
[0100]
在一个实施例中,s104中,所述第二预设条件为:所述多个清理日志的数量等于目标时段与所述清理时长之间的比值,并且每个清理日志中的清理结果均为已清理,并且清理记录数不为零。
[0101]
具体地,若多个清理日志的数量等于目标时段与所述清理时长之间的比值,则表示,按照每间隔清理时长均执行了清理操作,若每个清理日志中的清理结果均为已清理,则表示每个清理操作均完成,若每个清理日志中的清理记录数均不为零,则表示对每个清理操作均为有效操作。
[0102]
具体的,s104包括:
[0103]
s410、若所述多个清理日志均满足第二预设条件,并且所述清理时长大于预设的数据保留时长阈值与步长的和,则按照所述步长降低所述清理时长。
[0104]
具体地,所述多个清理日志均满足第二预设条件,是指每个清理日志均满足第二预设条件,则表示每个数据库表均按照预设的清理时长进行完整、有效地清理,但是按照预设的清理时长进行清理,已经不适用于当前阶段的应用场景,需要降低清理时长,以提高清理频率,降低异常表的数量。
[0105]
由于在众多业务中,会调用某些数据库表中的内容,若过早清理数据库表中的历史数据,会对业务处理造成影响,因此,需要预先为所述待处理数据库设定数据保留时长阈值。
[0106]
若所述多个清理日志均满足第二预设条件,确定清理时长是否大于预设的数据保留时长阈值与步长的和,若是,则按照所述步长降低所述清理时长。
[0107]
s411、若所述清理时长小于或等于所述数据保留时长阈值与所述步长的和,则基
于所述多个表日志确定存储增长率,并基于所述存储增长率对所述待处理数据库的磁盘空间进行扩容。
[0108]
具体地,若所述清理时长小于或等于所述数据保留时长阈值与所述步长的和,则所述清理时长不能继续降低,则计算存储增长率,并基于所述存储增长率对所述待处理数据库的磁盘空间进行扩容。
[0109]
可以通过scikit learn机器学习算法程序库的线性回归预测模型,对目标时段内的多个表日志进行分析,得到存储增长率。提取每个表日志的日期和总数据占用空间(包括碎片占用空间、索引占用空间和数据占用空间),将每个表日志的日期和总数据占用空间输入线性回归预测模型,通过线性回归预测模型输出存储增长率。
[0110]
具体地,scikit-learn中导入线性回归模型:from sklearn.linear_model import linearregression;获取每个表日志的日期(a)和总数据占用空间(c),通过线性回归模型的fit()方法进行拟合:
[0111]
model.fit(a,c)
[0112]
y=model.coef
[0113]
y则是存储增长率。
[0114]
获取磁盘空间,根据存储增长率和磁盘空间确定扩容空间,根据扩容空间对磁盘空间进行扩容。
[0115]
在一个实施例中,若所述多个清理日志不满足第二预设条件,则表示清理操作异常执行,获取每个清理日志的错误信息,根据每个清理日志的错误信息排查清理操作异常执行的原因。
[0116]
在一个实施例中,s103之后,所述数据库的处理方法还包括:若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者拆分每个异常表,或者对所述待处理数据库的磁盘空间进行扩容。
[0117]
若所述清理时长小于或等于所述数据保留时长阈值与所述步长的和,则获取任一异常表的若干表名称,按照所述若干表名称将所述任一异常表拆分为若干子数据库表,所述若干表名称与所述多干子数据库表一一对应,减少了异常表带来的数据库查询效率低的问题。
[0118]
例如,一异常表的若干表名称包括:“北京”、“上海”、“广州”,则将该异常表拆分为表名称为“北京”的子数据库表、表名称为“上海”的子数据库表,以及表名称为“上海”的子数据库表。
[0119]
若所述若干异常表中超过一半数量的异常表无法拆分,则对所述待处理数据库的磁盘空间进行扩容。
[0120]
按照实际需求,s103之后,所述数据库的处理方法还可以包括:若所述多个清理日志均满足第二预设条件,则降低所述清理时长,并且拆分每个异常表,或者对所述待处理数据库的磁盘空间进行扩容。
[0121]
或者,所述s103之后,所述数据库的处理方法还可以包括:若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者拆分每个异常表,并且对所述待处理数据库的磁盘空间进行扩容。
[0122]
在上述实施例中,所述数据库的处理方法,通过获取待处理数据库的在目标时段
内的多个表日志和多个清理日志,以确定记录数增长异常的异常表,并将碎片占用空间与总数据占用空间之间的比值大于预设阈值的异常表作为参考表,清理参考表中的碎片,以释放磁盘空间;若所述多个清理日志均满足第二预设条件,则降低清理时长,以提高清理频率,降低异常表的数量,进而释放磁盘空间,保证待处理数据库查询效率,或者对磁盘空间进行扩容,以保证待处理数据库的查询效率;还可以拆分异常表,以减少异常表,进而释放磁盘空间,保证了待处理数据库的查询效率。所述数据库的处理方法,可以自动监控待处理数据库的清理操作是否正常执行,调整清理时长,以保证查询效率,监控待处理数据库的磁盘空间,在待处理数据库的磁盘空间不足以匹配系统运行时,对磁盘空间进行扩容,可以实现对待处理数据库表进行动态监控,有助于进一步提升数据生命周期的管理质量,并减少系统性能和容量的隐患。
[0123]
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0124]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的数据库的处理方法的数据库的处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据库的处理装置实施例中的具体限定可以参见上文中对于数据库的处理方法的限定,在此不再赘述。
[0125]
在一个实施例中,如图4所示,提供了一种数据库的处理装置,包括:获取模块、异常表确定模块、第一处理模块和第二处理模块,其中:
[0126]
获取模块,用于获取待处理数据库在目标时段内的多个表日志和多个清理日志,其中,所述清理日志是基于预设的清理时长对所述待处理数据库中的数据进行清理得到的;
[0127]
异常表确定模块,用于基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表;
[0128]
第一处理模块,用于将所述若干异常表中满足第一预设条件的异常表作为参考表,并清理所述参考表中的碎片;
[0129]
第二处理模块,用于若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容。
[0130]
在一个实施例中,获取模块包括接收单元和获取单元,其中:
[0131]
所述接收单元,用于接收大数据分析平台发送的多个候选表日志和多个候选清理日志,并存入前端数据库表中,其中,所述大数据分析平台,用于基于第一预设字段集和第二预设字段集,对获取的多个初始表日志和多个初始清理日志进行预处理,以得到多个候选表日志和多个候选清理日志;
[0132]
所述获取单元,用于从所述前端数据库表中获取目标时段内的多个表日志和多个清理日志。
[0133]
在一个实施例中,异常表确定模块,包括:增长率确定单元和异常表确定单元,其
中:
[0134]
增长率确定单元,用于获取每个表日志的日期和记录数,并基于每个表日志的日期和记录数,确定记录数增长率,以及除了最早日期的表日志以外的任一表日志的参考增长率;
[0135]
异常表确定单元,用于若所述任一表日志的参考增长率大于所述记录数增长率,则将所述任一表日志对应的数据库表作为异常表。
[0136]
在一个实施例中,所述增长率确定单元包括:参考增长率确定子单元和记录数增长率确定子单元,其中:
[0137]
参考增长率确定子单元,用于对于所述多个表日志中除了最早日期的表日志以外的任一表日志,基于所述任一表日志在日期上相邻的候选表日志,确定所述任一表日志的参考增长率;
[0138]
记录数增长率确定子单元,用于计算所有参考增长率的平均值,得到记录数增长率。
[0139]
在一个实施例中,所述第二处理模块包括:清理时长调整单元和扩容单元,其中:
[0140]
清理时长调整单元,用于若所述多个清理日志均满足第二预设条件,并且所述清理时长大于预设的数据保留时长阈值与步长的和,则按照所述步长降低所述清理时长;
[0141]
扩容单元,用于若所述清理时长小于或等于所述数据保留时长阈值与所述步长的和,则基于所述多个表日志确定存储增长率,并基于所述存储增长率对所述待处理数据库的磁盘空间进行扩容。
[0142]
关于数据库的处理装置的具体限定可以参见上文中对于数据库的处理方法的限定,在此不再赘述。上述数据库的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0143]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据库的处理方法所需的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库的处理方法。
[0144]
本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0145]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0146]
获取待处理数据库在目标时段内的多个表日志和多个清理日志,其中,所述清理日志是基于预设的清理时长对所述待处理数据库中的数据进行清理得到的;
[0147]
基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表;
[0148]
将所述若干异常表中满足第一预设条件的异常表作为参考表,并清理所述参考表中的碎片;
[0149]
若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容。
[0150]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0151]
所述获取待处理数据库在目标时段内的多个表日志和多个清理日志,包括:
[0152]
接收大数据分析平台发送的多个候选表日志和多个候选清理日志,并存入前端数据库表中,其中,所述大数据分析平台,用于基于第一预设字段集和第二预设字段集,对获取的多个初始表日志和多个初始清理日志进行预处理,以得到多个候选表日志和多个候选清理日志;
[0153]
从所述前端数据库表中获取目标时段内的多个表日志和多个清理日志。
[0154]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0155]
所述基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表,包括:
[0156]
获取每个表日志的日期和记录数,并基于每个表日志的日期和记录数,确定记录数增长率,以及除了最早日期的表日志以外的任一表日志的参考增长率;
[0157]
若所述任一表日志的参考增长率大于所述记录数增长率,则将所述任一表日志对应的数据库表作为异常表。
[0158]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0159]
所述基于每个表日志的日期和记录数,确定记录数增长率,以及除了最早日期的表日志以外的任一表日志的参考增长率,包括:
[0160]
对于所述多个表日志中除了最早日期的表日志以外的任一表日志,基于所述任一表日志在日期上相邻的候选表日志,确定所述任一表日志的参考增长率;
[0161]
计算所有参考增长率的平均值,得到记录数增长率。
[0162]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
[0163]
所述若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容,包括:
[0164]
若所述多个清理日志均满足第二预设条件,并且所述清理时长大于预设的数据保留时长阈值与步长的和,则按照所述步长降低所述清理时长;
[0165]
若所述清理时长小于或等于所述数据保留时长阈值与所述步长的和,则基于所述多个表日志确定存储增长率,并基于所述存储增长率对所述待处理数据库的磁盘空间进行扩容。
[0166]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0167]
获取待处理数据库在目标时段内的多个表日志和多个清理日志,其中,所述清理日志是基于预设的清理时长对所述待处理数据库中的数据进行清理得到的;
[0168]
基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表;
[0169]
将所述若干异常表中满足第一预设条件的异常表作为参考表,并清理所述参考表中的碎片;
[0170]
若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容。
[0171]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0172]
所述获取待处理数据库在目标时段内的多个表日志和多个清理日志,包括:
[0173]
接收大数据分析平台发送的多个候选表日志和多个候选清理日志,并存入前端数据库表中,其中,所述大数据分析平台,用于基于第一预设字段集和第二预设字段集,对获取的多个初始表日志和多个初始清理日志进行预处理,以得到多个候选表日志和多个候选清理日志;
[0174]
从所述前端数据库表中获取目标时段内的多个表日志和多个清理日志。
[0175]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0176]
所述基于所述多个表日志,确定所述待处理数据库中记录数增长异常的若干异常表,包括:
[0177]
获取每个表日志的日期和记录数,并基于每个表日志的日期和记录数,确定记录数增长率,以及除了最早日期的表日志以外的任一表日志的参考增长率;
[0178]
若所述任一表日志的参考增长率大于所述记录数增长率,则将所述任一表日志对应的数据库表作为异常表。
[0179]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0180]
所述基于每个表日志的日期和记录数,确定记录数增长率,以及除了最早日期的表日志以外的任一表日志的参考增长率,包括:
[0181]
对于所述多个表日志中除了最早日期的表日志以外的任一表日志,基于所述任一表日志在日期上相邻的候选表日志,确定所述任一表日志的参考增长率;
[0182]
计算所有参考增长率的平均值,得到记录数增长率。
[0183]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
[0184]
所述若所述多个清理日志均满足第二预设条件,则降低所述清理时长,或者对所述待处理数据库的磁盘空间进行扩容,包括:
[0185]
若所述多个清理日志均满足第二预设条件,并且所述清理时长大于预设的数据保留时长阈值与步长的和,则按照所述步长降低所述清理时长;
[0186]
若所述清理时长小于或等于所述数据保留时长阈值与所述步长的和,则基于所述多个表日志确定存储增长率,并基于所述存储增长率对所述待处理数据库的磁盘空间进行扩容。
[0187]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0188]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0189]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1