本公开涉及数据库,可用于金融领域或其他领域,更具体地涉及一种数据库迁移方法、装置、电子设备、介质和程序产品。
背景技术:
1、随着现代社会的发展,数据呈现出爆发式增长,逐步成为各大公司的“新石油”。公司对于数据的长期存储因为资源不足、机房搬迁、低等级设备退出、国产化改造等,通常需要对现有的服务器数据进行迁移。而这种数据都是大规模的,需要同时考虑数据迁移的一致性、迁移的时效问题。
2、现有的数据迁移方法通常是扩大机器规格、提高并发,这类方法在一定程度上提高了迁移效率,但是迁移失败则暴露出较为明显的问题。一方面存在无主键表迁移失败需要全部清空表数据后重新迁移,极大地增加迁移时间。一方面,未能考虑迁移过程中增量数据的写入,导致在途数据丢失,迁移前后无法保证数据一致性。
技术实现思路
1、鉴于上述问题,本公开提供了一种数据库迁移方法、装置、电子设备、介质和程序产品。
2、根据本公开的第一个方面,提供了一种数据库迁移方法,包括:对源数据库设置只读模式,以停止源数据库的数据写入;对目标数据库进行初始化;将源数据库的全量数据分类为存在主键表的第一部分数据和不存在主键表的第二部分数据;分别将第一部分数据和第二部分数据迁移到初始化的目标数据库,并在迁移过程中实时监测迁移状态,其中,迁移状态包括迁移成功或迁移失败;在监测到第一部分数据和第二部分数据均呈迁移成功状态的情况下,校验源数据库和目标数据库中的数据是否一致,如果一致,则确定数据库迁移完成。
3、根据本公开的实施例,对目标数据库进行初始化,包括:清理目标数据库中的表数据、对象和索引信息。
4、根据本公开的实施例,分别将第一部分数据和第二部分数据迁移到初始化的目标数据库,并在迁移过程中实时监测迁移状态,还包括:在监测到第一部分数据呈迁移失败状态的情况下,通过对第一部分数据中的主键表进行查表和断点重提,继续迁移第一部分数据。
5、根据本公开的实施例,分别将第一部分数据和第二部分数据迁移到初始化的目标数据库,并在迁移过程中实时监测迁移状态,包括:对第二部分数据单独设置至少两个迁移任务;针对至少两个迁移任务中的每个迁移任务:执行该迁移任务,以将该迁移任务的第二部分数据迁移到目标数据库;在监测到该迁移任务呈迁移失败状态的情况下,清理目标数据库中与该迁移任务的第二部分数据对应的数据;重新执行该迁移任务。
6、根据本公开的实施例,第二部分数据包括多个表数据;对第二部分数据单独设置至少两个迁移任务,包括:对多个表数据中超出预设的数据量阈值的每个表数据单独设置一个迁移任务;对多个表数据中未超出数据量阈值的至少一个表数据集中设置一个迁移任务。
7、根据本公开的实施例,针对至少两个迁移任务中的每个迁移任务,根据设备资源情况设置最大并发数,以最大并发数并行执行该迁移任务。
8、根据本公开的实施例,校验源数据库和目标数据库中的数据是否一致,包括:在源数据库和目标数据库中的数据文件大小和索引文件大小均相同的情况下,确定源数据库和目标数据库中的数据一致。
9、本公开的第二方面提供了一种数据库迁移装置,包括:只读模式设置模块,用于对源数据库设置只读模式,以停止源数据库的数据写入;数据库初始化模块,用于对目标数据库进行初始化;数据分类模块,用于将源数据库的全量数据分类为存在主键表的第一部分数据和不存在主键表的第二部分数据;分类迁移模块,用于分别将第一部分数据和第二部分数据迁移到初始化的目标数据库,并在迁移过程中实时监测迁移状态,其中,迁移状态包括迁移成功或迁移失败;数据校验模块,用于在监测到第一部分数据和第二部分数据均呈迁移成功状态的情况下,校验源数据库和目标数据库中的数据是否一致,如果一致,则确定数据库迁移完成。
10、本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述数据库迁移方法。
11、本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述数据库迁移方法。
12、本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据库迁移方法。
13、通过本公开实施例提供的数据库迁移方法、装置、电子设备、介质和程序产品,针对大规模高斯数据迁移过程中无主键表时迁移失败,需要全部清理表数据后重新迁移,导致已成功迁移的数据表重复迁移的问题,本方法将源数据库整体数据的迁移分为两类,即有键表迁移和无主键表迁移,保证迁移中途因环境等问题失败时,可单独对无主键表迁移中失败的任务清理目标数据库对应的表数据后重新迁移。并且,针对数据迁移过程中发生增量数据,导致在途数据丢失,数据迁移前后一致性无法保证的问题,本方法通过停止批量调度的方式,停止新增数据写入,同时将源高斯数据库设置只读模式,保证数据迁移前后一致性。由此,可以实现大规模高斯数据库的高效迁移。
1.一种数据库迁移方法,包括:
2.根据权利要求1所述的方法,其中,所述对目标数据库进行初始化,包括:
3.根据权利要求1所述的方法,其中,所述分别将所述第一部分数据和所述第二部分数据迁移到初始化的目标数据库,并在迁移过程中实时监测迁移状态,还包括:
4.根据权利要求1所述的方法,其中,所述分别将所述第一部分数据和所述第二部分数据迁移到初始化的目标数据库,并在迁移过程中实时监测迁移状态,包括:
5.根据权利要求4所述的方法,其中,所述第二部分数据包括多个表数据;所述对所述第二部分数据单独设置至少两个迁移任务,包括:
6.根据权利要求4所述的方法,其中,针对所述至少两个迁移任务中的每个迁移任务,根据设备资源情况设置最大并发数,以所述最大并发数并行执行该迁移任务。
7.根据权利要求1所述的方法,其中,所述校验所述源数据库和所述目标数据库中的数据是否一致,包括:
8.一种数据库迁移装置,包括:
9.一种电子设备,包括:
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的方法。