数据库表格切换方法、装置、电子设备及计算机存储介质与流程

文档序号:26590516发布日期:2021-09-10 20:45阅读:86来源:国知局
数据库表格切换方法、装置、电子设备及计算机存储介质与流程

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.根据所述目标逻辑数据库日志数据将所述全量复制时间戳以后所述待切换源表格产生的增量变化数据同步至所述中间表格。
46.结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式和第二方面的第三种实现方式,本公开实施例在第二方面的第四种实现方式中,所述切换模块包括:
47.确认子模块,被配置为确认数据复制完成;
48.切换子模块,被配置为当数据复制确认完成后,将所述待切换源表格相关操作切换至所述中间表格上。
49.结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式和第二方面的第四种实现方式,本公开实施例在第二方面的第五种实现方式中,所述确认子模块被配置为:
50.将所述中间表格中的数据与所述待切换源表格中的数据进行比对,当所述中间表格中的数据与所述待切换源表格中的数据一致时,确认数据复制完成。
51.结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式、第二方面的第四种实现方式和第二方面的第五种实现方式,本公开
实施例在第二方面的第六种实现方式中,所述切换子模块被配置为:
52.当数据复制确认完成后,且接收到表格切换命令时,将所述待切换源表格的写属性设置为禁写;
53.将所述待切换源表格设置为备份表格,将所述中间表格设置为源表格,并确认所述源表格的写属性为可写。
54.结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式、第二方面的第四种实现方式、第二方面的第五种实现方式和第二方面的第六种实现方式,本公开实施例在第二方面的第七种实现方式中,还包括:
55.删除模块,被配置为接收备份表格删除命令,删除所述备份表格。
56.第三方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持数据库表格切换装置执行上述数据库表格切换方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述数据库表格切换装置还可以包括通信接口,用于数据库表格切换装置与其他设备或通信网络通信。
57.第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储数据库表格切换装置所用的计算机指令,其包含用于执行上述数据库表格切换方法为数据库表格切换装置所涉及的计算机指令。
58.本发明实施例提供的技术方案可包括以下有益效果:
59.上述技术方案通过设置一个与待切换源表格的表格名称不同,结构也不相同的中间表格,借助分级数据复制实现从待切换源表格至中间表格的全数据迁移,并在数据迁移完成后通过快速的表格名称更换实现数据表格的无缝切换。该技术方案既能够在数据迁移时避免出现读写错误的情况,还大大减少了数据的读写用时,提高了数据读写效率,有利于数据服务质量的提升,同时还能够大大降低了数据表格切换工作量,避免出现计算资源的浪费。
60.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
附图说明
61.结合附图,通过以下非限制性实施方式的详细描述,本发明实施例的其它特征、目的和优点将变得更加明显。在附图中:
62.图1示出根据本发明一实施方式的数据库表格切换方法的流程图;
63.图2示出根据图1所示实施方式的数据库表格切换方法的步骤s102的流程图;
64.图3示出根据图1所示实施方式的数据库表格切换方法的步骤s103的流程图;
65.图4示出根据本发明另一实施方式的数据库表格切换方法的流程图;
66.图5a和图5b示出根据本发明一实施方式的数据库表格切换应用场景流程图;
67.图6示出根据本发明一实施方式的数据库表格切换装置的结构框图;
68.图7示出根据图6所示实施方式的数据库表格切换装置的复制模块602的结构框图;
69.图8示出根据图6所示实施方式的数据库表格切换装置的切换模块603的结构框图;
70.图9示出根据本发明另一实施方式的数据库表格切换装置的结构框图;
71.图10示出根据本发明一实施方式的电子设备的结构框图;
72.图11是适于用来实现根据本发明一实施方式的数据库表格切换方法的计算机系统的结构示意图。
具体实施方式
73.下文中,将参考附图详细描述本发明实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
74.在本发明实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
75.另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明实施例。
76.本发明实施例提供的技术方案通过设置一个与待切换源表格的表格名称不同,结构也不相同的中间表格,借助分级数据复制实现从待切换源表格至中间表格的全数据迁移,并在数据迁移完成后通过快速的表格名称更换实现数据表格的无缝切换。该技术方案既能够在数据迁移时避免出现读写错误的情况,还大大减少了数据的读写用时,提高了数据读写效率,有利于数据服务质量的提升,同时还能够大大降低了数据表格切换工作量,避免出现计算资源的浪费。
77.图1示出根据本发明一实施方式的数据库表格切换方法的流程图,适用于数据库表格切换服务器,如图1所示,所述数据库表格切换方法包括以下步骤s101-s103:
78.在步骤s101中,接收数据库表格切换请求,确认待切换源表格所在的目标逻辑数据库,并根据所述待切换源表格在所述目标逻辑数据库中创建中间表格,其中,所述中间表格与所述待切换源表格的表格名称不同,表格结构也不相同;
79.在步骤s102中,将所述待切换源表格中的数据复制至所述中间表格中;
80.在步骤s103中,接收表格切换命令,当确认数据复制完成后,将所述待切换源表格相关操作切换至所述中间表格上。
81.上文提及,随着数据技术的发展,数据库的应用越来越广泛,数据库中需要存储的数据也越来越多,但如果数据库过于庞大,尤其是数据写入操作过于频繁时,将会为承载数据库的主机带来巨大的压力,同时也会大大降低数据写入以及数据读取的效率。现有技术通常根据某种预设的条件,将存放在同一数据库中的数据分散存放至多个数据库中,或者将存放在某一数据库中同一数据表格中的数据分散存放至多个数据表格中,从而达到分散数据写入读取压力、提高数据写入读取效率的效果。在数据拆分过程中,经常存在用户对于拆分策略进行变更的要求,比如对于拆分时所依据的主键值或索引字段进行变更,这时就需要新建一个与源数据表格具有不同表结构的数据表格,然后再将源数据表格中的数据迁移至新建数据表格中,实现数据表格的切换。现有技术在进行数据表格的切换时,通常通过全局禁写的方式将待切换数据导入至新建数据表格中,以防止在数据迁移时出现读写错误,进而导致切换前后数据表格中的数据出现不一致的情况,同时,新建数据表格还需要设
置成与源数据表格不同的表格名称。上述处理方式虽然能够在数据迁移时避免出现读写错误的情况,但由于设置了全局禁写,只能等到所有数据迁移完成之后才能够开放读写权限,这就会大大影响数据的读写用时,降低数据读写效率,不利于数据服务质量的提升,另外,由于切换前后数据表格名称不同,将会导致需要对于引用所述数据表格的链接等数据进行大范围更新,这就大大增加了数据表格切换的工作量,导致计算资源的浪费。
82.考虑到上述问题,在该实施方式中,提出一种数据库表格切换方法,该方法通过设置一个与待切换源表格的表格名称不同,表格结构也不相同的中间表格,借助分级数据复制实现从待切换源表格至中间表格的全数据迁移,并在数据迁移完成后通过快速的表格名称更换实现数据表格的无缝切换。该技术方案既能够在数据迁移时避免出现读写错误的情况,还大大减少了数据的读写用时,提高了数据读写效率,有利于数据服务质量的提升,同时还能够大大降低了数据表格切换工作量,避免出现计算资源的浪费。
83.在本发明一实施方式中,所述数据库表格指的是存储在某一数据库中用于存储数据记录的表格,所述数据库表格具有预设的表格结构,具有预设的主键值或索引字段。
84.在本发明一实施方式中,所述数据库表格切换请求指的是对于数据库表格进行切换,以实现表格结构变更的请求,其可由用户或者其他数据库表格切换需求方提出。上文提及,在数据拆分过程中,经常存在用户对于拆分策略进行变更的要求,比如对于拆分时所依据的主键值或索引字段进行变更,这时就需要新建一个与源数据表格具有不同表格结构的数据表格,然后将源数据表格中的数据迁移至新建数据表格中,实现数据表格的切换,比如将以元素a作为主键值或索引值的源数据表格切换为以元素b作为主键值或索引值的数据表格。
85.在本发明一实施方式中,所述逻辑数据库指的是从面向用户的角度上进行逻辑区分的数据库,与所述逻辑数据库不同,物理数据库指的是根据存储主机位置的不同进行物理区分的数据库。因此,存放在同一逻辑数据库中的不同表格可能存放在相同的物理数据库中,即存放在相同的主机上,也有可能存放在不同的物理数据库中,即存放在不同的主机上。在该实施方式中,所述待切换源表格以及后续新建的中间表格都存放在同一目标逻辑数据库中,而不考虑其对应的物理数据库是否相同。
86.在本发明一实施方式中,所述中间表格指的是为了实现所述待切换源表格的无缝切换而新建的一个表格,该中间表格的新建表格名称除了与所述待切换源表格的表格名称不同,其表格结构也不相同,具体地,所述中间表格的表格结构可根据用户或者其他数据库表格切换需求方的需求来确定。其中,所述中间表格的新建表格名称在后续表格数据全部迁移成功之后,会变更为所述待切换源表格的表格名称,进而实现数据表格的无缝切换。
87.在本发明一实施方式中,当确认数据复制完成后,需要切换至所述中间表格的相关操作比如可以为读写属性的切换、读写操作权限切换、编辑权限切换等等。
88.在本发明一实施方式中,如图2所示,所述步骤s102,即将所述待切换源表格中的数据复制至所述中间表格中的步骤,包括以下步骤s201-s202:
89.在步骤s201中,将所述待切换源表格中的当前数据全量复制至所述中间表格中,并根据全量复制开始时间生成全量复制时间戳;
90.在步骤s202中,当数据全量复制完成后,将所述全量复制时间戳以后所述待切换源表格产生的增量变化数据同步至所述中间表格。
91.为了实现数据有效、准确、完整的复制,在该实施方式中,采用先全量复制、后增量复制的分级复制策略来实现表格数据的完全复制。具体地,首先将所述待切换源表格中的当前数据全量复制至所述中间表格中,并根据全量复制开始时间生成全量复制时间戳;考虑到全量复制开始之后,还有可能发生数据的变化和更新,因此,为了保障数据复制的准确性和完整性,在数据全量复制完成之后,还需将所述全量复制时间戳之后,所述待切换源表格产生的增量变化数据同步至所述中间表格,所有数据同步完成之后,才意味着所述表格数据完成完全复制。
92.在本发明一实施方式中,所述步骤s201,即将所述待切换源表格中的当前数据全量复制至所述中间表格中,并根据全量复制开始时间生成全量复制时间戳的步骤,可被实施为:
93.获取所述待切换源表格主键的键值范围;
94.将所述待切换源表格主键的键值范围对应的数据记录根据所述中间表格的结构特征复制至所述中间表格中;
95.根据全量复制开始时间生成全量复制时间戳。
96.在对于表格数据进行全量复制时,首先获取所述待切换源表格主键的键值范围;然后确定所述待切换源表格主键的键值范围所对应的数据记录,并将所述待切换源表格主键的键值范围对应的数据记录根据所述中间表格的表格结构特征复制至所述中间表格中,其中,所述中间表格的表格结构特征比如可以为新的主键值,此时就需要对于所述待切换源表格主键的键值范围对应的数据记录进行整理和调整,并以新的主键值为导引将所有的数据记录存放于所述中间表格中;最后根据全量复制开始的时间生成全量复制时间戳,其中,所述全量复制时间戳比如可以设置为所述全量复制开始的时间。
97.在本发明一实施方式中,所述步骤s202,即当数据全量复制完成后,将所述全量复制时间戳以后所述待切换源表格产生的增量变化数据同步至所述中间表格的步骤,可被实施为:
98.当数据全量复制完成后,确定所述全量复制时间戳;
99.根据所述全量复制时间戳获取所述全量复制时间戳以后生成的所述目标逻辑数据库日志数据;
100.根据所述目标逻辑数据库日志数据将所述全量复制时间戳以后所述待切换源表格产生的增量变化数据同步至所述中间表格。
101.考虑到全量复制开始之后,还有可能发生数据的变化和更新,因此,为了保障数据复制的准确性和完整性,在数据全量复制完成之后,还需要将所述全量复制时间戳之后,所述待切换源表格产生的增量变化数据同步至所述中间表格中。在该实施方式中,借助所述目标逻辑数据库的日志数据来实现表格数据的增量复制。具体地,当数据全量复制完成后,首先确定所述全量复制时间戳;然后根据所述全量复制时间戳获取所述全量复制时间戳以后生成的所述目标逻辑数据库日志数据;最后根据所述目标逻辑数据库日志数据将所述全量复制时间戳以后所述待切换源表格产生的增量变化数据同步至所述中间表格。其中,所述目标逻辑数据库日志数据记载有以下信息中的一种或多种:变化数据名称、变化数据对应的数据记录标识、变化数据的存储位置、变化数据的变化时间、变化数据在变化之前的数据值、变化数据在变化之后的数据值等等。
102.在本发明一实施方式中,如图3所示,所述步骤s103,即当确认数据复制完成后,将所述待切换源表格相关操作切换至所述中间表格上的步骤,包括以下步骤s301-s302:
103.在步骤s301中,确认数据复制完成;
104.在步骤s302中,当数据复制确认完成后,将所述待切换源表格相关操作切换至所述中间表格上。
105.为了确保表格相关操作切换的准确性,避免出现表格相关操作切换过早,从而导致数据复制不完全,进而出现中间表格数据错误的情况,在该实施方式中,在确认数据复制完成之后,再将所述待切换源表格相关操作切换至所述中间表格上。
106.在本发明一实施方式中,所述步骤s301,即确认数据复制完成的步骤,可被实施为:
107.将所述中间表格中的数据与所述待切换源表格中的数据进行比对,当所述中间表格中的数据与所述待切换源表格中的数据一致时,确认数据复制完成。
108.为了提高数据复制完成确认的准确性,在该实施方式中,通过将所述中间表格中的数据与所述待切换源表格中的数据进行一一比对来确认所述数据复制是否已完成。
109.在本发明一实施方式中,所述步骤s302,即当数据复制确认完成后,将所述待切换源表格相关操作切换至所述中间表格上的步骤,可被实施为:
110.当数据复制确认完成后,且接收到表格切换命令时,将所述待切换源表格的写属性设置为禁写;
111.将所述待切换源表格设置为备份表格,将所述中间表格设置为源表格,并确认所述源表格的写属性为可写。
112.在数据复制确认完成之后,为了实现表格的无缝切换,避免出现在切换过程中发生所述待切换源表格仍有数据写入或者数据更新从而导致发生数据错误的情况,在该实施方式中,在数据复制确认完成之后,且接收到表格切换命令时,首先将所述待切换源表格的写属性设置为禁写,即禁止所述切换源表格的数据写入功能,在此期间,对于所述待切换源表格的所有写操作将会被拒绝;然后将所述待切换源表格设置为备份表格,比如将所述待切换源表格的表格名称修改为备份表格或其他不同于所述中间表格的当前表格名称的名称,将所述中间表格设置为源表格,比如将所述中间表格的表格名称修改为所述待切换源表格的原名称,最后将具有所述待切换源表格的原名称的中间表格,即现在的源表格的写属性设置或确认为可写。
113.需要说明的是,在该实施方式中,所述待切换源表格处于禁写状态的时间仅为秒级,表格名称的修改时间甚至可以更短,因此上述数据表格切换的过程对于数据读写业务几乎无影响。而且,如果数据读写业务还设置有重试机制,则用户对于整个数据表格的切换过程可以说基本无感知,进而避免了对于数据读写用时的影响,保证了数据读写的效率。
114.在本发明一实施方式中,所述方法还包括根据接收到的备份表格删除命令,删除所述备份表格的步骤,即如图4所示,所述数据库表格切换方法包括以下步骤s401-s404:
115.在步骤s401中,接收数据库表格切换请求,确认待切换源表格所在的目标逻辑数据库,并根据所述待切换源表格在所述目标逻辑数据库中创建中间表格,其中,所述中间表格与所述待切换源表格的表格名称不同,表格结构也不相同;
116.在步骤s402中,将所述待切换源表格中的数据复制至所述中间表格中;
117.在步骤s403中,接收表格切换命令,当确认数据复制完成后,将所述待切换源表格相关操作切换至所述中间表格上;
118.在步骤s404中,接收备份表格删除命令,删除所述备份表格。
119.为了节省数据存储空间,在该实施方式中,当接收到用户或者其他数据库表格切换需求方发送的备份表格删除命令时,需要根据所述备份表格删除命令删除所述备份表格。
120.图5a和图5b示出根据本发明一实施方式的数据库表格切换应用场景流程图,如图5a所示,在该应用场景中,与所述数据库表格切换服务器连接的逻辑数据库有n个,分别为:逻辑数据库1、逻辑数据库2

逻辑数据库n,其中,所述待切换源表格所在的目标逻辑数据库为逻辑数据库1。当接收到用户或其他数据库表格切换需求方发送的数据库表格切换请求后,首先根据所述待切换源表格在所述逻辑数据库1中创建一个名称和表格结构均与所述待切换源表格不同的中间表格;然后将所述待切换源表格中的数据全量复制至所述中间表格中,再将全量复制时间戳以后所述待切换源表格产生的增量变化数据同步至所述中间表格。然后在借助数据比对校验确认数据复制全部完成之后,将所述待切换源表格的写属性设置为禁写,对于所述待切换源表格进行重命名,比如将所述待切换源表格设置为备份表格,对于所述中间表格进行重命名,比如将所述中间表格设置为源表格,之后再确认所述源表格的写属性为可写,如图5b所示。这样就完成了数据表格的无缝切换。
121.下述为本发明装置实施例,可以用于执行本发明方法实施例。
122.图6示出根据本发明一实施方式的数据库表格切换装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部,可实现为数据库表格切换服务器。如图6所示,所述数据库表格切换装置包括:
123.创建模块601,被配置为接收数据库表格切换请求,确认待切换源表格所在的目标逻辑数据库,并根据所述待切换源表格在所述目标逻辑数据库中创建中间表格,其中,所述中间表格与所述待切换源表格的表格名称不同,表格结构也不相同;
124.复制模块602,被配置为将所述待切换源表格中的数据复制至所述中间表格中;
125.切换模块603,被配置为接收表格切换命令,当确认数据复制完成后,将所述待切换源表格相关操作切换至所述中间表格上。
126.上文提及,随着数据技术的发展,数据库的应用越来越广泛,数据库中需要存储的数据也越来越多,但如果数据库过于庞大,尤其是数据写入操作过于频繁时,将会为承载数据库的主机带来巨大的压力,同时也会大大降低数据写入以及数据读取的效率。现有技术通常根据某种预设的条件,将存放在同一数据库中的数据分散存放至多个数据库中,或者将存放在某一数据库中同一数据表格中的数据分散存放至多个数据表格中,从而达到分散数据写入读取压力、提高数据写入读取效率的效果。在数据拆分过程中,经常存在用户对于拆分策略进行变更的要求,比如对于拆分时所依据的主键值或索引字段进行变更,这时就需要新建一个与源数据表格具有不同表结构的数据表格,然后再将源数据表格中的数据迁移至新建数据表格中,实现数据表格的切换。现有技术在进行数据表格的切换时,通常通过全局禁写的方式将待切换数据导入至新建数据表格中,以防止在数据迁移时出现读写错误,进而导致切换前后数据表格中的数据出现不一致的情况,同时,新建数据表格还需要设置成与源数据表格不同的表格名称。上述处理方式虽然能够在数据迁移时避免出现读写错
误的情况,但由于设置了全局禁写,只能等到所有数据迁移完成之后才能够开放读写权限,这就会大大影响数据的读写用时,降低数据读写效率,不利于数据服务质量的提升,另外,由于切换前后数据表格名称不同,将会导致需要对于引用所述数据表格的链接等数据进行大范围更新,这就大大增加了数据表格切换的工作量,导致计算资源的浪费。
127.考虑到上述问题,在该实施方式中,提出一种数据库表格切换装置,该装置通过设置一个与待切换源表格的表格名称不同,表格结构也不相同的中间表格,借助分级数据复制实现从待切换源表格至中间表格的全数据迁移,并在数据迁移完成后通过快速的表格名称更换实现数据表格的无缝切换。该技术方案既能够在数据迁移时避免出现读写错误的情况,还大大减少了数据的读写用时,提高了数据读写效率,有利于数据服务质量的提升,同时还能够大大降低了数据表格切换工作量,避免出现计算资源的浪费。
128.在本发明一实施方式中,所述数据库表格指的是存储在某一数据库中用于存储数据记录的表格,所述数据库表格具有预设的表格结构,具有预设的主键值或索引字段。
129.在本发明一实施方式中,所述数据库表格切换请求指的是对于数据库表格进行切换,以实现表格结构变更的请求,其可由用户或者其他数据库表格切换需求方提出。上文提及,在数据拆分过程中,经常存在用户对于拆分策略进行变更的要求,比如对于拆分时所依据的主键值或索引字段进行变更,这时就需要新建一个与源数据表格具有不同表格结构的数据表格,然后将源数据表格中的数据迁移至新建数据表格中,实现数据表格的切换,比如将以元素a作为主键值或索引值的源数据表格切换为以元素b作为主键值或索引值的数据表格。
130.在本发明一实施方式中,所述逻辑数据库指的是从面向用户的角度上进行逻辑区分的数据库,与所述逻辑数据库不同,物理数据库指的是根据存储主机位置的不同进行物理区分的数据库。因此,存放在同一逻辑数据库中的不同表格可能存放在相同的物理数据库中,即存放在相同的主机上,也有可能存放在不同的物理数据库中,即存放在不同的主机上。在该实施方式中,所述待切换源表格以及后续新建的中间表格都存放在同一目标逻辑数据库中,而不考虑其对应的物理数据库是否相同。
131.在本发明一实施方式中,所述中间表格指的是为了实现所述待切换源表格的无缝切换而新建的一个表格,该中间表格的新建表格名称除了与所述待切换源表格的表格名称不同,其表格结构也不相同,具体地,所述中间表格的表格结构可根据用户或者其他数据库表格切换需求方的需求来确定。其中,所述中间表格的新建表格名称在后续表格数据全部迁移成功之后,会变更为所述待切换源表格的表格名称,进而实现数据表格的无缝切换。
132.在本发明一实施方式中,当确认数据复制完成后,需要切换至所述中间表格的相关操作比如可以为读写属性的切换、读写操作权限切换、编辑权限切换等等。
133.在本发明一实施方式中,如图7所示,所述复制模块602包括:
134.全量复制子模块701,被配置为将所述待切换源表格中的当前数据全量复制至所述中间表格中,并根据全量复制开始时间生成全量复制时间戳;
135.增量同步子模块702,被配置为当数据全量复制完成后,将所述全量复制时间戳以后所述待切换源表格产生的增量变化数据同步至所述中间表格。
136.为了实现数据有效、准确、完整的复制,在该实施方式中,采用先全量复制、后增量复制的分级复制策略来实现表格数据的完全复制。具体地,全量复制子模块701将所述待切
换源表格中的当前数据全量复制至所述中间表格中,并根据全量复制开始时间生成全量复制时间戳;考虑到全量复制开始之后,还有可能发生数据的变化和更新,因此,为了保障数据复制的准确性和完整性,在数据全量复制完成之后,增量同步子模块702还需将所述全量复制时间戳之后,所述待切换源表格产生的增量变化数据同步至所述中间表格,所有数据同步完成之后,才意味着所述表格数据完成完全复制。
137.在本发明一实施方式中,所述全量复制子模块701可被配置为:
138.获取所述待切换源表格主键的键值范围;
139.将所述待切换源表格主键的键值范围对应的数据记录根据所述中间表格的结构特征复制至所述中间表格中;
140.根据全量复制开始时间生成全量复制时间戳。
141.在对于表格数据进行全量复制时,首先获取所述待切换源表格主键的键值范围;然后确定所述待切换源表格主键的键值范围所对应的数据记录,并将所述待切换源表格主键的键值范围对应的数据记录根据所述中间表格的表格结构特征复制至所述中间表格中,其中,所述中间表格的表格结构特征比如可以为新的主键值,此时就需要对于所述待切换源表格主键的键值范围对应的数据记录进行整理和调整,并以新的主键值为导引将所有的数据记录存放于所述中间表格中;最后根据全量复制开始的时间生成全量复制时间戳,其中,所述全量复制时间戳比如可以设置为所述全量复制开始的时间。
142.在本发明一实施方式中,所述增量同步子模块702可被配置为:
143.当数据全量复制完成后,确定所述全量复制时间戳;
144.根据所述全量复制时间戳获取所述全量复制时间戳以后生成的所述目标逻辑数据库日志数据;
145.根据所述目标逻辑数据库日志数据将所述全量复制时间戳以后所述待切换源表格产生的增量变化数据同步至所述中间表格。
146.考虑到全量复制开始之后,还有可能发生数据的变化和更新,因此,为了保障数据复制的准确性和完整性,在数据全量复制完成之后,还需要将所述全量复制时间戳之后,所述待切换源表格产生的增量变化数据同步至所述中间表格中。在该实施方式中,借助所述目标逻辑数据库的日志数据来实现表格数据的增量复制。具体地,当数据全量复制完成后,首先确定所述全量复制时间戳;然后根据所述全量复制时间戳获取所述全量复制时间戳以后生成的所述目标逻辑数据库日志数据;最后根据所述目标逻辑数据库日志数据将所述全量复制时间戳以后所述待切换源表格产生的增量变化数据同步至所述中间表格。其中,所述目标逻辑数据库日志数据记载有以下信息中的一种或多种:变化数据名称、变化数据对应的数据记录标识、变化数据的存储位置、变化数据的变化时间、变化数据在变化之前的数据值、变化数据在变化之后的数据值等等。
147.在本发明一实施方式中,如图8所示,所述切换模块603包括:
148.确认子模块801,被配置为确认数据复制完成;
149.切换子模块802,被配置为当数据复制确认完成后,将所述待切换源表格相关操作切换至所述中间表格上。
150.为了确保表格相关操作切换的准确性,避免出现表格相关操作切换过早,从而导致数据复制不完全,进而出现中间表格数据错误的情况,在该实施方式中,在确认子模块
801确认数据复制完成之后,切换子模块802再将所述待切换源表格相关操作切换至所述中间表格上。
151.在本发明一实施方式中,所述确认子模块801可被配置为:
152.将所述中间表格中的数据与所述待切换源表格中的数据进行比对,当所述中间表格中的数据与所述待切换源表格中的数据一致时,确认数据复制完成。
153.为了提高数据复制完成确认的准确性,在该实施方式中,通过将所述中间表格中的数据与所述待切换源表格中的数据进行一一比对来确认所述数据复制是否已完成。
154.在本发明一实施方式中,所述切换子模块802可被配置为:
155.当数据复制确认完成后,且接收到表格切换命令时,将所述待切换源表格的写属性设置为禁写;
156.将所述待切换源表格设置为备份表格,将所述中间表格设置为源表格,并确认所述源表格的写属性为可写。
157.在数据复制确认完成之后,为了实现表格的无缝切换,避免出现在切换过程中发生所述待切换源表格仍有数据写入或者数据更新从而导致发生数据错误的情况,在该实施方式中,在数据复制确认完成之后,且接收到表格切换命令时,首先将所述待切换源表格的写属性设置为禁写,即禁止所述切换源表格的数据写入功能,在此期间,对于所述待切换源表格的所有写操作将会被拒绝;然后将所述待切换源表格设置为备份表格,比如将所述待切换源表格的表格名称修改为备份表格或其他不同于所述中间表格的当前表格名称的名称,将所述中间表格设置为源表格,比如将所述中间表格的表格名称修改为所述待切换源表格的原名称,最后将具有所述待切换源表格的原名称的中间表格,即现在的源表格的写属性设置或确认为可写。
158.需要说明的是,在该实施方式中,所述待切换源表格处于禁写状态的时间仅为秒级,表格名称的修改时间甚至可以更短,因此上述数据表格切换的过程对于数据读写业务几乎无影响。而且,如果数据读写业务还设置有重试机制,则用户对于整个数据表格的切换过程可以说基本无感知,进而避免了对于数据读写用时的影响,保证了数据读写的效率。
159.在本发明一实施方式中,所述装置还包括根据接收到的备份表格删除命令,删除所述备份表格的部分,即如图9所示,所述数据库表格切换装置包括:
160.创建模块901,被配置为接收数据库表格切换请求,确认待切换源表格所在的目标逻辑数据库,并根据所述待切换源表格在所述目标逻辑数据库中创建中间表格,其中,所述中间表格与所述待切换源表格的表格名称不同,表格结构也不相同;
161.复制模块902,被配置为将所述待切换源表格中的数据复制至所述中间表格中;
162.切换模块903,被配置为接收表格切换命令,当确认数据复制完成后,将所述待切换源表格相关操作切换至所述中间表格上;
163.删除模块904,被配置为接收备份表格删除命令,删除所述备份表格。
164.为了节省数据存储空间,在该实施方式中,当接收到用户或者其他数据库表格切换需求方发送的备份表格删除命令时,删除模块904根据所述备份表格删除命令删除所述备份表格。
165.本发明实施例还公开了一种电子设备,图10示出根据本发明一实施方式的电子设备的结构框图,如图10所示,所述电子设备1000包括存储器1001和处理器1002;其中,
166.所述存储器1001用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1002执行以实现上述任一方法步骤。
167.图11是适于用来实现根据本发明一实施方式的数据库表格切换方法的计算机系统的结构示意图。
168.如图11所示,计算机系统1100包括处理单元1101,其可以根据存储在只读存储器(rom)1102中的程序或者从存储部分1108加载到随机访问存储器(ram)1103中的程序而执行上述实施方式中的各种处理。在ram1103中,还存储有系统1100操作所需的各种程序和数据。处理单元1101、rom1102以及ram1103通过总线1104彼此相连。输入/输出(i/o)接口1105也连接至总线1104。
169.以下部件连接至i/o接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至i/o接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。其中,所述处理单元1101可实现为cpu、gpu、tpu、fpga、npu等处理单元。
170.特别地,根据本发明的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本发明的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述数据库表格切换方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。
171.附图中的流程图和框图,图示了按照本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
172.描述于本发明实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
173.作为另一方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本发明实施例的方法。
174.以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成
的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1