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

文档序号:33650622发布日期:2023-03-29 08:09阅读:38来源:国知局
一种数据库分区处理方法、装置、计算机设备和存储介质与流程

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.图1是本技术实施例提供的数据库分区处理方法的流程示意图;
43.图2是本技术实施例提供的数据库分区处理装置的结构示意图;
44.图3是本技术实施例提供的计算机设备的结构示意图。
具体实施方式
45.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,然而,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.本技术实施例提出了一种数据库分区处理方法,该数据库分区处理方法可以由数据库分区处理装置执行,该数据库分区处理装置可以集成在具有至少一种数据库分区处理硬件的计算机设备中。其中,该计算机设备可以包括计算机设备以及服务器等中的至少一个。即,本技术实施例提出的数据库分区处理方法即可以由计算机设备执行,还可以由服务器执行,还可以由能够进行互相通信的终端和服务器共同执行。
47.其中,终端可以为智能手机、平板电脑、笔记本电脑、个人电脑(personal computer,pc)、智能家居、可穿戴电子设备、vr/ar设备、车载计算机等等。服务器可以为多个异构系统之间的互通服务器或者后台服务器,还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器等等。
48.在一实施例中,数据库分区处理装置可以集成在服务器上,以实施本技术实施例提出的数据库分区处理方法。具体地,服务器可以接收任务执行指令,基于任务执行指令获取任务配置信息;对任务配置信息进行解析,得到至少一个目标执行任务和针对数据库的分区配置信息;当执行至少一个目标执行任务时,对数据库的分区配置信息进行识别处理,得到数据库的区域划分信息;基于区域划分信息生成数据库操作语句;针对数据库执行所述数据库操作语句,以实现对数据库进行分区处理,并利用分区后数据库存储所述目标执行任务对应的执行信息。
49.以下分别进行详细说明,需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
50.本技术实施例将从数据库分区处理装置的角度进行描述,该数据库分区处理装置可以集成在计算机设备。
51.如图1所示,提供了一种数据库分区处理方法,具体流程包括:
52.101、接收任务执行指令,基于任务执行指令获取任务配置信息。
53.其中,任务执行指令用于指示数据分区处理装置执行相关的任务,并对数据库进行分区处理。
54.其中,任务配置信息可以说明如何执行相关的任务,以及如何对数据库进行分区处理。
55.在一实施例中,为了便于实现本技术实施例提出的数据库分区处理方法,本技术还提出了一个分区工具,可以通过调用该分区工具实现本技术实施例提出的数据库分区处理方法。
56.例如,在接收到任务执行指令之后,可以调用分区工具获取任务配置信息。
57.其中,本技术实施例提出的分区工具包括任务初始化、任务调度、参数实体化和失败通知这四个模块,只需要初始化一次便可以直接使用该分区工具,后续无需再投入过多的人力,对数据库压力较小,性能表现良好。
58.其中,任务初始化需要获取任务配置信息,然后,根据任务配置信息进行区域的划分。例如,任务配置信息可以包括数据库的网际互连协议(internet protocol,ip)端口、库名、表名、分区间隔、需要保留的历史分区、下次执行时间和预建分区数,等等。其中,任务配置信息中的必要信息可以包括ip端口、库名、表名、分区间隔和需要保留的历史分区。而任务配置信息中的非必要信息可以包括次执行时间和预建分区数。
59.在任务调度后,会根据表结构自动判断下次执行时间回写至配置表中,预建分区数可以根据分区间隔确定。一般情况下,可以按照天分区默认预建15天分区,按月预建2个月分区等等。
60.102、对任务配置信息进行解析,得到至少一个目标执行任务和针对数据库的分区配置信息。
61.其中,分区配置信息可以用于说明如何对数据库进行分区划分。例如,分区配置信息可以包括分区间隔、需要保留的历史分区和预建分区数,等等。
62.在一实施例中,在获取得到任务配置信息之后,可以对任务配置信息进行解析,得到至少一个目标执行任务和针对数据库的分区配置信息。
63.例如,可以对任务配置信息进行遍历,得到任务配置信息中包含的关键字段。然后,通过对关键字段进行读取,得到针对数据库的分区配置信息。
64.例如,分区配置信息包含的关键字段可以包括“分区配置信息”和“任务信息”。数据库分区处理方法在遍历到字段“分区配置信息”之后,可以读取字段,得到分区配置信息。
65.在一实施例中,数据库中包括至少一个数据库,每个数据库中包括至少一个数据表。例如,该数据表可以是基于mysql生成的数据表。
66.在一实施例中,可以调用分区工具对任务配置信息进行解析,得到至少一个目标执行任务和针对数据库的分区配置信息。
67.在一实施例中,分区工具对数据库中的表结构有一定的要求。例如,数据库中分区字段类型可以为date、datetime、timestamp,等等。譬如,数据库中分区字段类型可以为date、datetime和timestamp,虽然数据库中分区字段类型是三个类型,但他们都是通用的数据类型,存储的数据本身格式都较为统一,所以不会导致存储的数据存在冲突。又例如,数据库中分区类型可以为range和rangecolumns。又例如,数据库中可以有max分区,这样可
以避免当数据库中无分区可用时导致数据写入失败的情况,保证了表的可用性。
68.103、当执行至少一个目标执行任务时,对数据库的分区配置信息进行识别处理,得到数据库的区域划分信息。
69.在一实施例中,数据库分区处理装置在解析得到至少一个目标执行任务之后,可以对该至少一个目标执行任务进行执行处理。其中,当执行至少一个目标执行任务时,可以对数据库配置信息进行识别处理,得到数据库的区域划分信息。
70.在一实施例中,可以根据数据库中数据表对应的结构信息,得到数据库的区域划分信息。具体的,步骤“当执行至少一个目标执行任务时,对数据库的分区配置信息进行识别处理,得到所述数据库的区域划分信息”,可以包括:
71.当执行至少一个目标执行任务时,对数据库的分区配置信息进行识别处理,得到数据库中数据表对应的结构信息;
72.对数据表对应的结构信息进行识别处理,得到数据库的区域划分信息。
73.在一实施例中,当执行至少一个目标执行任务时,可以对数据库的分区配置信息进行识别处理,得到数据库中数据表对应的结构信息。
74.其中,数据表的结构信息可以用于说明数据表的分区情况。例如,数据表的结构信息可以用于说明数据表当前的分区间隔、历史分区的数量、被划分了多少个区,等等。
75.在一实施例中,可以对数据表对应的结构信息进行识别处理,得到数据库的区域划分信息。例如,可以将数据表对应的结构信息和历史数据表的结构信息进行对比,得到数据库的区域划分信息。
76.例如,可以将数据表的结构信息和历史数据表的结构信息进行对比,得到结构差异信息。然后,可以根据结构差异信息生成数据区的区域划分信息。具体的,步骤“对数据表对应的结构信息进行识别处理,得到数据库的区域划分信息”,可以包括:
77.获取数据库的历史数据表对应的结构信息;
78.将历史数据表对应的结构信息和数据表对应的结构信息进行比较处理,得到结构差异信息;
79.根据结构差异信息生成数据库的区域划分信息。
80.在一实施例中,可以获取数据库中历史数据表对应的结构信息。其中,历史数据表可以指已经在数据库中存在的数据表。其中,历史数据表对应的结构信息可以用于说明历史数据表的分区情况。例如,历史数据表的结构信息可以用于说明历史数据表当前的分区间隔、历史分区的数量、被划分了多少个区,等等。
81.在一实施例中,可以将历史数据表对应的结构信息和数据表对应的结构信息进行比较处理,得到结构差异信息。
82.例如,历史结构数据表对应的结构信息为分区间隔为15天、被划分为了5个分区,历史分区包括2个,用于存储过去两个月内的历史信息。而数据表对应的结构信息为分区间隔为30天,被划分为10个分区,历史分区包括2个,用于存储过去两个月内的历史信息。通过将历史结构数据表对应的结构信息和数据表对应的结构信息进行对比,可以得到结构差异信息为分区间隔为30天,划分为10个分区。
83.又例如,历史结构数据表对应的结构信息为分区间隔为15天、被划分为了5个分区,历史分区包括2个,用于存储过去两个月内的历史信息。而数据表对应的结构信息为分
区间隔为30天,被划分为10个分区,历史分区包括3个,用于存储过去一个月内的历史信息。通过将历史结构数据表对应的结构信息和数据表对应的结构信息进行对比,可以得到结构差异信息为分区间隔为30天,被划分为10个分区,历史分区包括3个,用于存储过去一个月内的历史信息。
84.然后,可以根据结构差异信息生成数据库的区域划分信息。例如,可以直接将结构差异信息转化为区域划分信息。例如,当结构差异信息为“分区间隔为30天,划分为10个分区”时,区域划分信息可以为“分区间隔为30天,划分为10个分区”。又例如,当结构差异信息为“结构差异信息为分区间隔为30天,被划分为10个分区,历史分区包括3个,用于存储过去一个月内的历史信息”时,区域划分信息可以为“结构差异信息为分区间隔为30天,被划分为10个分区,历史分区包括3个,用于存储过去一个月内的历史信息”。
85.在一实施例中,可以调用分区工具对数据库的分区配置信息进行识别处理,得到数据库的区域划分信息。
86.例如,分区工具包括任务初始化、任务调度、参数实体化和失败通知四个模块。任务初始化为获取任务配置信息。在配置完成之后,在每天指定的时间,分区工具的主进程便会启动。在分区工具启动之后,分区工具可以获取任务配置信息中下次执行时间为当日的目标执行任务进行待执行队列,即分区工具需要将当日需要执行的目标执行任务添加进入待执行队列。其中,待执行队列中的目标执行任务是以ip端口为单位的。在执行过程中,采用的是同ip端口串行执行,不同ip端口并行执行的模式。这是因为,读取数据库中的数据时,往往是通过ip端口进行读取的。对于需要通过同一个ip端口读取数据库中数据的目标执行任务,可以进行串行执行,避免造成任务执行拥堵。而对于需要通过不同一个ip端口读取数据库中数据的目标执行任务,由于这些目标执行任务之间读取数据库的过程不会互相影响,所以这些目标执行任务可以并行执行。此外,不同ip端口间,数据库操作语句以及其引起的性能消耗等互不干扰,可以并行,且在大量目标执行任务待执行的情况下,并行可以提高执行效率。而同ip端口上不同库表的任务采用串行的方式,主要是为了避免多任务并发可能引起大量锁等待的性能问题。
87.104、基于区域划分信息生成数据库操作语句。
88.在一实施例中,为了可以解决现有技术中需要开发人员通过手动编写数据库操作语句实现对数据库进行分区的问题,本技术实施例可以实现自动化地生成数据库操作语句。通过数据库分区处理装置执行数据库操作语句,便可以实现对数据库进行分区处理。例如,数据库分区语句可以是数据定义语句(data definition language,ddl)。其中,ddl语句可以对数据库对象(数据库、表、列、索引等)进行创建、删除、修改等操作。
89.在一实施例中,可以基于区域划分信息生成数据库操作语句。具体的,步骤“基于区域划分信息生成数据库操作语句”,可以包括:
90.对区域划分信息进行解析,得到历史区域划分信息和非历史区域划分信息;
91.根据历史区域划分信息和非历史区域划分信息,生成区域划分参数;
92.基于预设语法规则和区域划分参数,生成数据库操作语句。
93.在一实施例中,由于数据库主要被划分为历史区域和非历史区域这两个区域。其中,历史区域用于存储历史数据,而非历史区域用于存储实时数据。所以,可以对区域划分信息进行解析,得到历史区域划分信息和非历史区域划分信息。然后,可以根据历史区域划
分信息和非历史区域划分信息,生成区域划分参数。然后,基于预设语法规则和区域划分参数,生成数据库操作语句。
94.例如,可以根据历史区域的划分数量和划分间隔,设置相应的参数。同理,可以根据非历史区域的划分数量和划分间隔,设置相应的参数。然后,可以根据ddl语句的语法规则和区域划分参数,生成数据库操作语句。
95.105、针对数据库执行数据库操作语句,以实现对数据库进行分区处理,并利用分区后数据库存储目标执行任务对应的执行信息。
96.在一实施例中,可以针对数据库执行生成的数据库操作语句,以实现对数据库进行分区处理,并利用分区后数据库存储目标执行任务对应的执行信息。
97.在一实施例中,为了保证数据库操作语句可以准确地被执行,可以在执行数据库操作语句分配元数据锁,只有被分配了元数据锁的数据库操作语句才可以被执行。
98.具体的,步骤“针对数据库执行所述数据库操作语句,以实现对数据库进行分区处理,并利用分区后数据库存储目标执行任务对应的执行信息”,可以包括:
99.基于数据库操作语句,对预设元数据锁进行检测处理,得到元数据锁的状态信息;
100.当元数据锁的状态信息符合预设状态条件时,将元数据锁分配给数据库操作语句,以执行数据库操作语句。
101.在一实施例中,可以基于数据库操作语句,对预设元数据库锁进行检测处理,得到元数据锁的状态信息。其中,元数据锁的状态信息可以用于说明元数据锁当前是被占用状态还是空闲状态。当元数据锁的状态信息是空间状态时,可以将元数据锁分配给数据库操作语句,以执行数据库操作语句。
102.而当元数据锁的状态信息不符合预设状态条件时,即元数据锁的状态信息是被占用状态时,为了避免异常情况发生,形成锁等待队列,严重情况下拖垮数据库的情况,本技术实施例还增加了锁检测和超时清理机制,用于避免异常情况发生。
103.因此,本技术实施例提出的方法还可以包括:
104.当元数据锁的状态信息不符合预设状态条件时,启动计时器对元数据锁的状态持续时间进行计时处理;
105.将元数据锁的状态持续时间和预设时间阈值进行比较处理;
106.当元数据锁的状态持续时间满足预设时间阈值时,确定当前执行的数据库操作语句;
107.对当前执行的数据库操作语句进行清除处理。
108.在一实施例中,当元数据锁处于被占用状态时,可以启用计时器对元数据锁的状态持续时间进行计时处理。通过状态持续时间,可以知道元数据锁被占有了多长时间。然后,可以将元数据锁的状态持续时间和预设时间阈值进行比较处理。例如,预设时间阈值可以设置为5分钟。当元数据锁的状态持续时间大于预设时间阈值时,可以说明当前执行的数据库操作语句进入了一个异常状态,这会成锁等待队列,严重情况下拖垮数据库。当元数据锁的状态持续时间满足预设时间阈值时,可以确定当前执行的数据库操作语句。通过确定当前执行的数据库操作语句,便可以确定是哪个数据库操作语句陷入了异常状态。然后,可以对当前执行的数据库操作语句进行清除处理,以清除掉进入了异常状态的数据库操作语句,避免形成锁等待队列。
109.在一实施例中,当元数据锁的状态持续时间满足预设时间阈值时,还可以将这种异常情况进行上报。具体的,本技术实施例提出的方法还可以包括:
110.当元数据锁的状态持续时间满足预设时间阈值时,生成执行异常消息;
111.将执行异常消息上报至预设管理服务器。
112.在一实施例中,可以调用分区工具针对数据库执行数据库操作语句,以实现对数据库进行分区处理,并利用分区后数据库存储目标执行任务对应的执行信息。
113.在一实施例中,为了便于实现本技术实施例提出的数据库分区处理方法,本技术还提出了一个分区工具,可以通过调用该分区工具实现本技术实施例提出的数据库分区处理方法。
114.其中,本技术实施例提出的分区工具包括任务初始化、任务调度、参数实体化和失败通知这四个模块,只需要初始化一次便可以直接使用该分区工具,后续无需再投入过多的人力,对数据库压力较小,性能表现良好。
115.在一实施例中,任务初始化阶段需要配置的必要信息可以包括ip端口、库名、表名、分区间隔和需要保留的历史分区。非必要信息可以包括次执行时间和预建分区数。在任务调度后,会根据表结构自动判断下次执行时间回写至配置表中,预建分区数可以根据分区间隔确定。一般情况下,可以按照天分区默认预建15天分区,按月预建2个月分区等等。
116.在配置完成之后,在每天指定的时间,分区工具的主进程便会启动。在分区工具启动之后,分区工具可以获取任务配置信息中下次执行时间为当日的目标执行任务进行待执行队列,即分区工具需要将当日需要执行的目标执行任务添加进入待执行队列。其中,待执行队列中的目标执行任务是以ip端口为单位的。在执行过程中,采用的是同ip端口串行执行,不同ip端口并行执行的模式。这是因为,读取数据库中的数据时,往往是通过ip端口进行读取的。对于需要通过同一个ip端口读取数据库中数据的目标执行任务,可以进行串行执行,避免造成任务执行拥堵。而对于需要通过不同一个ip端口读取数据库中数据的目标执行任务,由于这些目标执行任务之间读取数据库的过程不会互相影响,所以这些目标执行任务可以并行执行。此外,不同ip端口间,数据库操作语句以及其引起的性能消耗等互不干扰,可以并行,且在大量目标执行任务待执行的情况下,并行可以提高执行效率。而同ip端口上不同库表的任务采用串行的方式,主要是为了避免多任务并发可能引起大量锁等待的性能问题。
117.具体到单个目标执行任务的执行逻辑,可以根据任务配置信息中初始化的配置,实时获取数据库中数据表对应的结构信息,并判断是否需要扩展分区、删除历史分区以及任务下次执行事件。当需要执行相应的扩展分区以及分区清理操作时,可以结构数据表对应的结构信息,根据语法规则,生成相应的ddl语句。在执行ddl语句时,由于ddl操作时需要持有元数据锁,而元数据锁比较特殊,当其他会话持有该锁未释放,ddl操作会等待该元数据锁。当ddl操作等待元数据锁时,会使后续该表相关的读写操作均写入等待锁队列。正常情况下,分区的扩展和清理都能很快执行完毕,请求锁释放所非常快。但当异常情况发生时,会形成锁等待队列,严重情况下会拖垮数据库,因此,额外增加了锁检测和超时清理机制。在超时清理机制中,设定业务会话优先级高于工具会话,当ddl语句运行时间达到超时阈值时,可以扫描ip端口上各个活动会话的进度。当发现存在业务会话锁等待时,可以执行清理回滚操作,清除ddl进程,快速释放锁。在无锁等待时,可以动态延长ddl的超时时长。
118.此外,无论是锁等待回滚、执行超时回滚还是实例故障导致执行失败等,这些失败都需要及时通知到运维方,对失败原因进行跟进分析,与应用行为进行沟通,改进优化分区工具。
119.本技术实施例提出了一个数据库分区处理方法,包括:接收任务执行指令,基于任务执行指令获取任务配置信息;对任务配置信息进行解析,得到至少一个目标执行任务和针对数据库的分区配置信息;当执行至少一个目标执行任务时,对数据库的分区配置信息进行识别处理,得到数据库的区域划分信息;基于区域划分信息生成数据库操作语句;针对数据库执行所述数据库操作语句,以实现对数据库进行分区处理,并利用分区后数据库存储所述目标执行任务对应的执行信息。通过本技术实施例,当运维人员需要对数据库分区进行管理时,只需要配置好任务配置信息,既可以自动有序地对表分区进行管理,极大地减少了手动的工作量,提升了效率。此外,本技术实施例可以通过分区工具实现本技术提出的方法,通过调用分区工具,可以减少对业务的影响,节约了生产设备资源、降低成本,还有利于保持数据库的稳定。
120.为了更好地实施本技术实施例提供的数据库分区处理方法,在一实施例中还提供了一种数据库分区处理装置,该数据库分区处理装置可以集成于计算机设备中。其中名词的含义与上述产品的数据库分区处理方法中相同,具体实现细节可以参考方法实施例中的说明。
121.在一实施例中,提供了一种数据库分区处理装置,该数据库分区处理装置具体可以集成在计算机设备,例如电视中,如图2所示,该数据库分区处理装置包括:获取单元301、解析单元302、识别单元303、生成单元304和执行单元305,具体如下:
122.获取单元301,用于接收任务执行指令,基于所述任务执行指令获取任务配置信息;
123.解析单元302,用于对所述任务配置信息进行解析,得到至少一个目标执行任务和针对数据库的分区配置信息;
124.识别单元303,用于当执行所述至少一个目标执行任务时,对所述数据库的分区配置信息进行识别处理,得到所述数据库的区域划分信息;
125.生成单元304,用于基于所述区域划分信息生成数据库操作语句;
126.执行单元305,用于针对所述数据库执行所述数据库操作语句,以实现对所述数据库进行分区处理,并利用分区后数据库存储所述目标执行任务对应的执行信息。
127.在一实施例中,所述识别单元303,可以包括:
128.第一信息识别子单元,用于当执行所述至少一个目标执行任务时,对所述数据库的分区配置信息进行识别处理,得到所述数据库中数据表对应的结构信息;
129.第二信息识别子单元,用于对所述数据表对应的结构信息进行识别处理,得到所述数据库的区域划分信息。
130.在一实施例中,所述第二信息识别子单元,可以包括:
131.信息获取模块,用于获取所述数据库的历史数据表对应的结构信息;
132.比较模块,用于将所述历史数据表对应的结构信息和所述数据表对应的结构信息进行比较处理,得到结构差异信息;
133.生成模块,用于根据所述结构差异信息生成所述数据库的区域划分信息。
134.在一实施例中,所述生成单元304,可以包括:
135.信息解析子单元,用于对所述区域划分信息进行解析,得到历史区域划分信息和非历史区域划分信息;
136.参数生成子单元,用于根据所述历史区域划分信息和所述非历史区域划分信息,生成区域划分参数;
137.语句生成子单元,用于基于预设语法规则和所述区域划分参数,生成所述数据库操作语句。
138.在一实施例中,所述执行单元305,可以包括:
139.检测子单元,用于基于所述数据库操作语句,对预设元数据锁进行检测处理,得到所述元数据锁的状态信息;
140.分配子单元,用于当所述元数据锁的状态信息符合预设状态条件时,将所述元数据锁分配给所述数据库操作语句,以执行所述数据库操作语句。
141.在一实施例中,所述数据库分区处理装置,还可以包括:
142.启动单元,用于当所述元数据锁的状态信息不符合预设状态条件时,启动计时器对所述元数据锁的状态持续时间进行计时处理;
143.比较单元,用于将所述元数据锁的状态持续时间和预设时间阈值进行比较处理;
144.语句确定单元,用于当所述元数据锁的状态持续时间满足所述预设时间阈值时,确定当前执行的数据库操作语句;
145.清除单元,用于对所述当前执行的数据库操作语句进行清除处理。
146.在一实施例中,所述数据库分区处理装置,还可以包括:
147.消息生成单元,用于当所述元数据锁的状态持续时间满足所述预设时间阈值时,生成执行异常消息;
148.上报单元,用于将所述执行异常消息上报至预设管理服务器。
149.具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
150.通过上述的数据库分区处理装置可以自动地实现对数据库进行分区处理,提高了数据库的性能。
151.本技术实施例还提供一种计算机设备,该计算机设备可以包括计算机设备或服务器,比如,计算机设备可以作为数据库分区处理计算机设备,该数据库分区处理计算机设备可以为智能电视等等;又比如计算机设备可以为服务器,如数据库分区处理服务器等。如图3所示,其示出了本技术实施例所涉及的计算机设备的结构示意图,具体来讲:
152.该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
153.处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整
体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
154.存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据库分区处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
155.计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
156.该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
157.尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
158.接收任务执行指令,基于所述任务执行指令获取任务配置信息;
159.对所述任务配置信息进行解析,得到至少一个目标执行任务和针对数据库的分区配置信息;
160.当执行所述至少一个目标执行任务时,对所述数据库的分区配置信息进行识别处理,得到所述数据库的区域划分信息;
161.基于所述区域划分信息生成数据库操作语句;
162.针对所述数据库执行所述数据库操作语句,以实现对所述数据库进行分区处理,并利用分区后数据库存储所述目标执行任务对应的执行信息。
163.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
164.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中各种可选实现方式中提供的方法。
165.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
166.为此,本技术实施例还提供一种存储介质,其中存储有计算机程序,该计算机程序
能够被处理器进行加载,以执行本技术实施例所提供的任一种数据库分区处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
167.接收任务执行指令,基于所述任务执行指令获取任务配置信息;
168.对所述任务配置信息进行解析,得到至少一个目标执行任务和针对数据库的分区配置信息;
169.当执行所述至少一个目标执行任务时,对所述数据库的分区配置信息进行识别处理,得到所述数据库的区域划分信息;
170.基于所述区域划分信息生成数据库操作语句;
171.针对所述数据库执行所述数据库操作语句,以实现对所述数据库进行分区处理,并利用分区后数据库存储所述目标执行任务对应的执行信息。
172.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
173.由于该存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种数据库分区处理方法中的步骤,因此,可以实现本技术实施例所提供的任一种数据库分区处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
174.以上对本技术实施例所提供的一种数据库分区处理方法、装置、计算机设备和存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1