CN114116676A - 数据迁移方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据迁移方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114116676A CN114116676A CN202111481239.1A CN202111481239A CN114116676A CN 114116676 A CN114116676 A CN 114116676A CN 202111481239 A CN202111481239 A CN 202111481239A CN 114116676 A CN114116676 A CN 114116676A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- source
- database
- migration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013508 migration Methods 0.000 title claims abstract description 170
- 230000005012 migration Effects 0.000 title claims abstract description 170
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000008569 process Effects 0.000 claims abstract description 57
- 238000012545 processing Methods 0.000 claims description 30
- 230000002159 abnormal effect Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 7
- 238000012360 testing method Methods 0.000 claims description 7
- 230000001915 proofreading effect Effects 0.000 claims description 6
- 230000001502 supplementing effect Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据迁移方法、装置、电子设备及计算机可读存储介质,涉及数据库领域。本申请实施例通过在数据迁移的过程中,接收到针对第一源数据的第一目标操作请求时,通过在数据迁移操作的源数据库中,对第一源数据执行与第一目标操作请求对应的第一数据操作;以及在数据迁移操作的目标数据库中,对第一源数据对应的第一目标数据执行与第一目标操作请求对应的第二数据操作,从而实现在数据迁移操作过程中,源数据库与目标数据库的数据保持一致性;这样,在数据迁移操作过程中,可供用户正常读写源数据库;在完成数据迁移操作后,仍可供用户正常读写目标数据库,从而实现数据迁移操作过程不影响用户正常读写数据,提升了用户体验。
Description
技术领域
本申请涉及数据库技术领域,具体而言,本申请涉及一种数据迁移方法、装置、电子设备及计算机可读存储介质。
背景技术
随着互联网行业的迅速发展,互联网业务的数据库中通常存储着海量数据,而海量数据通常需要在数据库之间进行迁移等处理操作。例如,新老***数据库之间的数据迁移操作,由于老***在前期业务快速迭代时,未能很好的进行***架构上的设计,导致后续项目维护难度大,***性能及扩展性达不到支撑业务快速发展的需求,因此,需要对老***进行重构改造。作为数据库中重要的资源,随着数据库***的升级和重构,数据结构发生变化的同时,数据也需要从老***迁移至新***。但相关技术中,由于数据迁移操作过程中源数据与目标数据不一致等问题,导致数据迁移操作影响用户正常使用数据库***。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是数据迁移过程影响用户正常使用数据库的技术缺陷。
根据本申请的一个方面,提供了一种数据迁移方法,该方法包括:
在执行数据迁移操作的过程中,接收针对第一源数据的第一目标操作请求;
在所述数据迁移操作的源数据库中,对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作;以及在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作;
其中,所述源数据库对应第一业务逻辑,所述目标数据库对应第二业务逻辑。
可选的,所述在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作,包括:
根据预设对应关系,确定所述目标数据库中,所述第一源数据对应的目标数据在所述目标数据库的数据表中的目标位置;
对所述目标位置的所述第一目标数据执行与所述第一目标操作请求对应的第二数据操作。
可选的,所述方法还包括:
接收指示完成所述数据迁移操作的指示信息;
响应于所述指示信息,接收针对所述第一目标数据的第二目标操作请求;
在所述目标数据库中,对所述第一目标数据执行与所述第二目标操作请求对应的第三数据操作;以及在所述源数据库中,对所述第一目标数据对应的所述第一源数据执行与所述第二目标操作请求对应的第四数据操作。
可选的,所述方法还包括:
接收指示完成所述数据迁移操作的指示信息之后,将所述源数据库中执行所述第一数据操作后的第一处理数据,与所述目标数据库中执行所述第二数据操作后的第二处理数据进行校对;
若所述第一处理数据与所述第二处理数据校对一致,将用户读取数据的数据源切换为所述目标数据库。
可选的,所述方法还包括:
在满足预设条件后,停止接收针对所述源数据库中的源数据的数据操作请求,所述预设条件包括:在预设测试周期内,接收到指示所述目标数据库运行异常的报错信息小于第一预设值。
可选的,所述第一处理数据与所述第二处理数据进行校对之后,所述方法还包括:
若所述目标数据库中存在异常数据,则在所述目标数据库中补充所述异常数据的数据位置对应的目标数据,或重新执行所述数据迁移操作;其中,所述异常数据包括:所述异常数据的数据位置对应的数据字段为空的数据,或者所述异常数据的数据位置对应的数据字段与所述第一处理数据不一致的数据。
可选的,所述将用户读取数据的数据源切换为所述目标数据库之后,
接收到所述目标数据库运行异常的指示信息,将用户读取数据的数据源切换为所述源数据库。
可选的,其特征在于,所述第一数据操作、所述第二数据操作、所述第三数据操作、所述第四数据操作分别包括以下至少一项:
增加数据;
修改数据;
删除数据。
根据本申请的另一个方面,提供了一种数据迁移装置,该装置包括:
接收模块,用于在执行数据迁移操作的过程中,接收针对第一源数据的第一目标操作请求;
数据操作模块,用于在所述数据迁移操作的源数据库中,对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作;以及在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作;
其中,所述源数据库对应第一业务逻辑,所述目标数据库对应第二业务逻辑。
根据本申请的另一个方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行本申请实施例第一方面所述的数据迁移方法。
例如,本申请的第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行如本申请的第一方面所示的数据迁移方法对应的操作。
根据本申请的再一个方面,提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现本申请第一方面所述的数据迁移方法。
例如,本申请实施例的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的数据迁移方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面的各种可选实现方式中提供的方法。
本申请提供的技术方案带来的有益效果是:
本申请实施例通过在数据迁移的过程中,接收到针对第一源数据的第一目标操作请求时,通过在所述数据迁移操作的源数据库中,对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作;以及在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作,从而实现在数据迁移操作过程中,源数据库与目标数据库的数据保持一致性;这样,在数据迁移操作过程中,可供用户正常读写源数据库;在完成数据迁移操作后,仍可供用户正常读写目标数据库,从而实现数据迁移操作过程不影响用户正常读写数据,提升了用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据迁移方法的流程示意图;
图2为本申请实施例提供的一种数据迁移方法的流程时序示意图;
图3为本申请实施例提供的一种数据迁移装置的结构示意图;
图4为本申请实施例提供的一种数据迁移的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着数据库***的升级和重构,数据结构发生变化的同时,数据也需要从老***迁移至新***。在相关技术中,数据迁移操作过程未能严谨设计,无法实现数据迁移过程中用户正常使用数据库***。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请实施例所提供的数据迁移方法可以由计算机设备执行,计算机设备包括但不限于终端或服务器。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例提供了一种可能的实现方式,如图1所示,提供了一种数据处理方法的流程图,该方案可以由任一电子设备执行,可选的,可以在服务器端或终端设备执行,为描述方便,下面以服务器作为执行主体对本申请实施例提供的方法进行说明。
本申请实施例可应用于数据库领域,在数据迁移的过程中,接收到针对第一源数据的第一目标操作请求时,通过在所述数据迁移操作的源数据库中,对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作;以及在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作,从而实现在数据迁移操作过程中,源数据库与目标数据库的数据保持一致性;这样,在数据迁移操作过程中,可供用户正常读写源数据库;在完成数据迁移操作后,仍可供用户正常读写目标数据库,从而实现了数据迁移操作过程不影响用户正常使用数据库,提升了用户体验。
如图1中所示,该方法可以包括以下步骤:
S101:在执行数据迁移操作的过程中,接收针对第一源数据的第一目标操作请求。
本申请实施例可应用于数据库领域,在数据迁移的过程中,将待迁移数据由源数据库迁移至目标数据库;例如以所述方法应用于异构数据库为例,由于原业务***(以下简称原***)在长时间的运行过程中出现业务逻辑陈旧、业务数据复杂无序,导致原***运行效率较低等问题。鉴于原***的各种问题,需要更新业务逻辑并重建新***,在新老***更替的过程中,为保证两个***的数据一致,需在两个***之间进行数据迁移操作。
具体地,数据迁移操作包括将数据由原***的源数据库迁移至新***的目标数据库的操作。
其中,源数据库对应原***的第一业务逻辑,即原始业务逻辑;目标数据库对应新***的第二业务逻辑,即更新后的新业务逻辑。由于源数据库与目标数据库分别对应的业务逻辑的发生变更,根据实际业务需求,可以对源数据进行重新分类,并将重新分类后的源数据迁移至目标数据库中的数据表(后续简称为目标数据表)。
在本申请实施例中,目标数据表可以包括预先建立的数据表,预先建立的数据表可以是根据实际业务需求建立的。由于对源数据进行数据迁移前后,每个源数据在源数据库中的源数据表中的源位置,与该源数据对应的目标数据表中的目标位置不同,本申请实施例还可以根据源位置与目标位置的对应关系,建立对应关系表。
可选地,数据迁移操作可以在新业务逻辑建立完成,并且新***测试完毕后执行。
具体的,数据迁移操作可以基于数据迁移指令执行;数据迁移指令中可以包括源数据库信息及目标数据库信息。可选的,源数据库信息可以包括源数据库的IP(InternetProtocol Address,互联网协议地址)地址、源数据库端口号、待迁移源数据对应的来源信息表(来源信息表中可以包括待迁移源数据对应的来源字段)、执行数据迁移时单位时间段内所迁移的数据量的限流值、进行数据迁移的起始时间等。
目标数据库信息可以包括目标数据库的IP地址、目标数据库中待迁移源数据的写入地址,以及执行数据迁移时单位时间段内所迁移的数据量的限流值等。
在数据迁移过程中,由于源数据量较大,持续的数据迁移可能会对源数据库的正常运行造成影响;例如,使源数据库运行效率减低等影响。因此,为减少数据迁移过程对源数据库的影响,可以先将源数据进行缓存处理等等。
此外,在执行数据迁移操作时,可以根据源数据所属的各个业务模块,将源数据划分为多个子任务,并分别对各个子任务执行数据迁移。例如,源数据涉及3个业务模块的数据,可以将每个业务模块对应的源数据作为一个子任务。
进一步的,本申请实施例中,在执行数据迁移操作的过程中,源数据库仍在运行;在这种情况下,源数据库仍可以被读写,即可以通过原***接收针对第一源数据的第一目标操作请求。
其中,第一源数据包括源数据库中的任一源数据。第一目标操作请求表示对第一源数据执行第一数据操作的请求。第一数据操作可以包括增加数据、修改数据、删除数据等操作。
第一目标操作请求可以包括用户发出的对第一源数据执行增加数据、修改数据、删除数据等操作的请求;此外,第一目标操作请求还可以包括响应于预设触发条件,***自动发出的对第一源数据执行增加数据、修改数据、删除数据等操作的请求。
可以理解的是,在所述数据迁移操作的过程中,由于源数据库中的源数据还未全部迁移至目标数据库,因此,执行所述数据迁移操作的过程中,目标数据库对应的新***仍未上线使用,用户或者***自动触发的对数据的读写操作(读写操作可以包括读取数据、增加数据、修改数据、删除数据等操作)所读写的数据仍是读写源数据库中源数据。
S102:在所述数据迁移操作的源数据库中,对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作;以及在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作;
其中,所述源数据库对应第一业务逻辑,所述目标数据库对应第二业务逻辑。
本申请实施例中,源数据库与目标数据库分别对应不同的数据逻辑,即所述源数据库对应第一业务逻辑,所述目标数据库对应第二业务逻辑。其中,第一业务逻辑为应用于源数据库的业务逻辑,第二业务逻辑为应用于目标数据库的业务逻辑;第一业务逻辑与第二业务逻辑可以分别包括不同的功能指令、业务接口,以及对数据读写操作权限等。
在接收到接收针对第一源数据的第一目标操作请求之后,响应于所述第一目标操作请求,对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作。
可以理解的是,本申请实施例中,在执行所述数据迁移操作的过程中,可以不停止对源数据库对应的原***的使用;也就是说,在所述数据迁移操作过程中,仍可供用户对源数据库中的源数据进行读写操作。为保证源数据库与目标数据库的数据保持一致性,以实现在数据迁移操作完成之后,用户使用目标数据库对应的新***时,不影响用户正常读写目标数据库中的数据,本申请实施例中,还可在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作。
具体的,可以根据预设对应关系,确定所述第一源数据对应的目标数据在所述目标数据库的数据表中的目标位置;然后,对所述目标位置的所述第一目标数据执行与所述第一目标操作请求对应的第二数据操作。
其中,第二数据操作具体可以包括增加数据、修改数据、删除数据等操作。为保证源数据库与目标数据库的数据保持一致性,第二数据操作为与第一数据操作对应的操作。
本申请实施例通过在数据迁移的过程中,接收到针对第一源数据的第一目标操作请求时,通过在数据迁移操作的源数据库中,对第一源数据执行与第一目标操作请求对应的第一数据操作;以及在数据迁移操作的目标数据库中,对第一源数据对应的第一目标数据执行与第一目标操作请求对应的第二数据操作,从而实现在数据迁移操作过程中,源数据库与目标数据库的数据保持一致性;这样,在数据迁移操作过程中,可供用户正常读写源数据库;在完成数据迁移操作后,仍可供用户正常读写目标数据库,从而实现数据迁移操作过程不影响用户正常读写数据,提升了用户体验。
在一个可选实施例中,所述在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作,包括:
根据预设对应关系,确定所述目标数据库中,所述第一源数据对应的目标数据在所述目标数据库的数据表中的目标位置;
对所述目标位置的所述第一目标数据执行与所述第一目标操作请求对应的第二数据操作。
具体的,本申请实施例中,由于源数据库中源数据的数据表存在设计不合理的情况,因此,在构建目标数据库时,可以重新建立目标数据库中目标数据的数据表。此外,还可以根据源数据在源数据库的数据表中的位置,以及目标数据在目标数据库的数据表中的位置,建立源数据与目标数据之间的对应关系。例如,对于第一源数据A,其在源数据库的表一中的第一行第一列;执行数据迁移后,第一源数据A对应的第一目标数据a(a与A可以为相同的数据,a也可以为对A执行数据处理之后的数据),其在目标数据库的表三中的第二行第一列等等。
进一步的,可以根据预设对应关系,确定所述目标数据库中,所述第一源数据对应的目标数据在所述目标数据库的数据表中的目标位置;对所述目标位置的所述第一目标数据执行与所述第一目标操作请求对应的第二数据操作。
其中,第二数据操作具体可以包括增加数据、修改数据、删除数据等操作。可以理解的是,为保证源数据库与目标数据库的数据保持一致性,第二数据操作为与第一数据操作对应的操作。具体的,在执行第二数据操作时,可以分为以下两种情况:
情况一:在数据迁移操作过程中,若接收针对第一源数据的第一目标操作请求之前,已经对第一源数据执行数据迁移,那么,第二数据操作可以为,在目标数据库中相应的更新第一源数据对应的第一目标数据,例如,可以对第一目标数据执行与第一数据操作相同的数据操作。作为示例,在实际场景中,第一数据操作为将第一源数据的数据字段由“开”修改为“关”;相应的,第二数据操作可以为将迁移操作后的第一目标数据的数据字段由“开”修改为“关”。
情况二:在数据迁移操作过程中,若接收针对第一源数据的第一目标操作请求之前,未对第一源数据执行数据迁移,那么,第二数据操作可以为,在目标数据库中,写入与对第一源数据执行第一数据操作后的第一处理数据对应的第一目标数据。作为示例,在实际场景中,第一数据操作为将第一源数据的数据字段由“开”修改为“关”;相应的,第二数据操作可以为直接在第一目标数据在目标数据库的数据表中的对应位置,写入数据字段“关”。
在一个可选实施例中,所述方法还包括:
接收指示完成所述数据迁移操作的指示信息;
响应于所述指示信息,接收针对所述第一目标数据的第二目标操作请求;
在所述目标数据库中,对所述第一目标数据执行与所述第二目标操作请求对应的第三数据操作;以及在所述源数据库中,对所述第一目标数据对应的所述第一源数据执行与所述第二目标操作请求对应的第四数据操作。
具体的,接收到指示完成所述数据迁移操作的指示信息,即完成所述数据迁移操作后,可以将写入数据操作的权限切换为写入目标数据库,也就是在目标数据库中完成数据写入操作,其中,数据写入操作可以包括增加数据、修改数据、删除数据等操作。
本申请实施例中,将写入数据操作的权限切换为写入目标数据库后,可以接收针对所述第一目标数据的第二目标操作请求。
其中,第二目标操作请求可以包括用户发出的对第一目标数据执行增加数据、修改数据、删除数据等操作的请求;此外,第二目标操作请求还可以包括响应于预设触发条件,***自动发出的对第一目标数据执行增加数据、修改数据、删除数据等操作的请求。
可以理解的是,在完成所述数据迁移操作后,由于源数据库中的源数据全部迁移至目标数据库,因此,目标数据库对应的新***可以上线使用,用户或者***自动触发的对数据的写入操作可以是写入目标数据库中的数据表。
本申请实施例中,在完成所述数据迁移操作后,可以对目标数据库进行写入操作,此时,由于目标数据库对应的新***处于运行初期,为了确保在新***出现问题时,可以顺利回切到源数据库对应的原***从而不影响用户的使用体验,可以在接收到针对所述第一目标数据的第二目标操作请求时,在所述目标数据库中,对所述第一目标数据执行与所述第二目标操作请求对应的第三数据操作;以及在所述源数据库中,对所述第一目标数据对应的所述第一源数据执行与所述第二目标操作请求对应的第四数据操作。
其中,第三数据操作、第四数据操作具体可以包括增加数据、修改数据、删除数据等操作。可以理解的是,为保证源数据库与目标数据库的数据保持一致性,第三数据操作为与第四数据操作对应的操作。例如,第三数据操作与第四数据操作可以为分别对第一目标数据及第一源数据执行的相同的数据操作。作为示例,在实际场景中,第三数据操作可以为将第一目标数据的数据字段由“开”修改为“关”;相应的,第四数据操作可以为将第一源数据的数据字段由“开”修改为“关”。
在一个可选实施例中,所述方法还包括:
接收指示完成所述数据迁移操作的指示信息之后,将所述源数据库中执行所述第一数据操作后的第一处理数据,与所述目标数据库中执行所述第二数据操作后的第二处理数据进行校对;
若所述第一处理数据与所述第二处理数据校对一致,将用户读取数据的数据源切换为所述目标数据库。
在完成所述数据迁移操作后,为确保目标数据库中的数据与源数据库中的数据保持一致,还可以将所述源数据库中执行所述第一数据操作后的第一处理数据,与所述目标数据库中执行所述第二数据操作后的第二处理数据进行校对。
其中,第一处理数据包括对对第一源数据执行第一数据操作后的数据,第二处理数据包括对对第一目标数据执行第二数据操作后的数据。
当所述第一处理数据与所述第二处理数据校对一致时,可以将用户读取数据的数据源切换为所述目标数据库。可以理解的是,完成数据迁移操作后,并且,目标数据库中的数据与源数据库中的数据校验一致,则可以将用户读取数据的权限切换为读取所述目标数据库。
在一个可选实施例中,所述方法还包括:
在满足预设条件后,停止接收针对所述源数据库中的源数据的数据操作请求;所述预设条件包括:在预设测试周期内,接收到指示所述目标数据库运行异常的报错信息小于第一预设值。
本申请实施例中,可以在预设测试周期内,例如,10天内,若接收到指示所述目标数据库运行异常的报错信息小于第一预设值时,可以关闭对源数据库的数据写入权限,即停止接收针对所述源数据库中的源数据的数据操作请求。
可以理解的是,本申请实施例中,在预设测试周期内,目标数据库运行异常的报错信息小于第一预设值时,可以关闭对源数据库的数据写入权限,也就是说,可以停止源数据库的运行。
在一个可选实施例中,所述第一处理数据与所述第二处理数据进行校对之后,所述方法还包括:
若所述目标数据库中存在异常数据,则在所述目标数据库中补充所述异常数据的数据位置对应的目标数据,或重新执行所述数据迁移操作;其中,所述异常数据包括:所述异常数据的数据位置对应的数据字段为空的数据,或者所述异常数据的数据位置对应的数据字段与所述第一处理数据不一致的数据。
具体的,在对所述第一处理数据与所述第二处理数据进行校对过程中,若目标数据库中的所述第二处理数据与源数据库中的所述第一处理数据不一致,或者,目标数据库的数据表中对应位置的数据字段为空,即待迁移的源数据未成功迁移,则可以在所述目标数据库中补充所述异常数据的数据位置对应的目标数据,或重新执行所述数据迁移操作。
在一个可选实施例中,所述将用户读取数据的数据源切换为所述目标数据库之后,
接收到所述目标数据库运行异常的指示信息,将用户读取数据的数据源切换为所述源数据库。
在上述实施例的基础上,由于在接收指示完成所述数据迁移操作的指示信息时,响应于所述指示信息,接收针对所述第一目标数据的第二目标操作请求;在所述目标数据库中,对所述第一目标数据执行与所述第二目标操作请求对应的第三数据操作;以及在所述源数据库中,对所述第一目标数据对应的所述第一源数据执行与所述第二目标操作请求对应的第四数据操作。也就是说,在对目标数据库进行写入操作时,也对源数据库执行了相应的操作,因此,目标数据库与源数据库中的数据保持一致,这样,当接收到所述目标数据库运行异常的指示信息,可以将用户读取数据的数据源切换为所述源数据库,从而实现不影响用户的使用体验。
作为示例,结合图2,本申请实施例的数据迁移方法进行说明:
本申请实施例中,由于原***在长时间的运行过程中出现业务逻辑陈旧、业务数据复杂无序,导致原***运行效率较低等问题。例如,原***可以包括可向用户提供推送消息、提醒消息的触达***,由于触达***面向的商家用户较多,以及该***长时间运行过程中积累的数据复杂无序,导致***运行效率低下。
鉴于原***的各种问题,需要更新业务逻辑并重建新***,在新老***更替的过程中,为保证两个***的数据一致,需在两个***之间进行数据迁移操作。
由于需要持续向用户提供数据服务,因此,在数据迁移操作的过程中,仍需通过原***的源数据库供用户进行数据读写操作,即在数据迁移操作的过程中用户所读写的数据仍是读写源数据库中的源数据。
在执行数据迁移操作的过程中,接收针对第一源数据的第一目标操作请求时,一方面对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作;另一方面,在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作。
当数据迁移操作完成后,可以通过新***的目标数据库供用户进行数据读写操作,当接收针对所述第一目标数据的第二目标操作请求时,一方面,对所述第一目标数据执行与所述第二目标操作请求对应的第三数据操作;另一方面,在所述源数据库中,对所述第一目标数据对应的所述第一源数据执行与所述第二目标操作请求对应的第四数据操作。
此外,在数据迁移操作完成后,还可以对源数据库中的源数据与目标数据库中的目标数据进行校对,若源数据与目标数据校对一致,则可以将用户读取数据的权限切换为读取目标数据库,即将用户读取数据的数据源切换为所述目标数据库。若源数据与目标数据存在不一致的情况,如部分源数据未成功迁移的情况,可以补全目标数据或者重新执行全部源数据的数据迁移操作。
若切换为读取目标数据库后,接收到所述目标数据库运行异常的指示信息,还可以将用户读取数据的数据源切换为所述源数据库。
若预设测试周期内,没有收到目标数据库运行异常的报错信息,则可以关闭对源数据库的读写权限,即停止接收针对所述源数据库中的源数据的数据操作请求。
本申请实施例通过在数据迁移的过程中,接收到针对第一源数据的第一目标操作请求时,通过在数据迁移操作的源数据库中,对第一源数据执行与第一目标操作请求对应的第一数据操作;以及在数据迁移操作的目标数据库中,对第一源数据对应的第一目标数据执行与第一目标操作请求对应的第二数据操作,从而实现在数据迁移操作过程中,源数据库与目标数据库的数据保持一致性;这样,在数据迁移操作过程中,可供用户正常读写源数据库;在完成数据迁移操作后,仍可供用户正常读写目标数据库,从而实现数据迁移操作过程不影响用户正常读写数据,提升了用户体验。
本申请实施例提供了一种数据迁移装置,如图3所示,该数据迁移装置30可以包括:接收模块301、第一数据操作模块302,其中,
接收模块301,用于在执行数据迁移操作的过程中,接收针对第一源数据的第一目标操作请求;
第一数据操作模块302,用于在所述数据迁移操作的源数据库中,对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作;以及在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作;
其中,所述源数据库对应第一业务逻辑,所述目标数据库对应第二业务逻辑。
在一个可选实施例中,数据操作模块,具体用于根据预设对应关系,确定所述目标数据库中,所述第一源数据对应的目标数据在所述目标数据库的数据表中的目标位置;
对所述目标位置的所述第一目标数据执行与所述第一目标操作请求对应的第二数据操作。
在一个可选实施例中,该装置还包括:
第二数据操作模块,用于接收指示完成所述数据迁移操作的指示信息;
响应于所述指示信息,接收针对所述第一目标数据的第二目标操作请求;
在所述目标数据库中,对所述第一目标数据执行与所述第二目标操作请求对应的第三数据操作;以及在所述源数据库中,对所述第一目标数据对应的所述第一源数据执行与所述第二目标操作请求对应的第四数据操作。
在一个可选实施例中,该装置还包括:
校对模块,用于接收指示完成所述数据迁移操作的指示信息之后,将所述源数据库中执行所述第一数据操作后的第一处理数据,与所述目标数据库中执行所述第二数据操作后的第二处理数据进行校对;
若所述第一处理数据与所述第二处理数据校对一致,将用户读取数据的数据源切换为所述目标数据库。
在一个可选实施例中,该装置还包括:
关闭模块,用于在满足预设条件后,停止接收针对所述源数据库中的源数据的数据操作请求,所述预设条件包括:在预设测试周期内,接收到指示所述目标数据库运行异常的报错信息小于第一预设值。
在一个可选实施例中,该装置还包括:
补充模块,用于所述第一处理数据与所述第二处理数据进行校对之后,若存在异常数据,则在所述目标数据库中补充所述异常数据的数据位置对应的目标数据,或重新执行所述数据迁移操作;其中,所述异常数据包括:所述异常数据的数据位置对应的数据字段为空的数据,或者所述异常数据的数据位置对应的数据字段与所述第一处理数据不一致的数据。
在一个可选实施例中,该装置还包括:
切换模块,用于在所述将用户读取数据的数据源切换为所述目标数据库之后,
接收到所述目标数据库运行异常的指示信息,将用户读取数据的数据源切换为所述源数据库。
在一个可选实施例中,其特征在于,所述第一数据操作、所述第二数据操作、所述第三数据操作、所述第四数据操作分别包括以下至少一项:
增加数据;
修改数据;
删除数据。
本实施例的数据迁移装置可执行本申请上述实施例所示的数据迁移方法,其实现原理相类似,此处不再赘述。
本申请实施例通过在数据迁移的过程中,接收到针对第一源数据的第一目标操作请求时,通过在数据迁移操作的源数据库中,对第一源数据执行与第一目标操作请求对应的第一数据操作;以及在数据迁移操作的目标数据库中,对第一源数据对应的第一目标数据执行与第一目标操作请求对应的第二数据操作,从而实现在数据迁移操作过程中,源数据库与目标数据库的数据保持一致性;这样,在数据迁移操作过程中,可供用户正常读写源数据库;在完成数据迁移操作后,仍可供用户正常读写目标数据库,从而实现数据迁移操作过程不影响用户正常读写数据,提升了用户体验。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本申请实施例通过在数据迁移的过程中,接收到针对第一源数据的第一目标操作请求时,通过在数据迁移操作的源数据库中,对第一源数据执行与第一目标操作请求对应的第一数据操作;以及在数据迁移操作的目标数据库中,对第一源数据对应的第一目标数据执行与第一目标操作请求对应的第二数据操作,从而实现在数据迁移操作过程中,源数据库与目标数据库的数据保持一致性;这样,在数据迁移操作过程中,可供用户正常读写源数据库;在完成数据迁移操作后,仍可供用户正常读写目标数据库,从而实现数据迁移操作过程不影响用户正常读写数据,提升了用户体验。
在一个可选实施例中提供了一种电子设备,如图4所示,图4所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码(计算机程序),并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、多媒体播放器、台式计算机等。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
本申请实施例通过在数据迁移的过程中,接收到针对第一源数据的第一目标操作请求时,通过在数据迁移操作的源数据库中,对第一源数据执行与第一目标操作请求对应的第一数据操作;以及在数据迁移操作的目标数据库中,对第一源数据对应的第一目标数据执行与第一目标操作请求对应的第二数据操作,从而实现在数据迁移操作过程中,源数据库与目标数据库的数据保持一致性;这样,在数据迁移操作过程中,可供用户正常读写源数据库;在完成数据迁移操作后,仍可供用户正常读写目标数据库,从而实现数据迁移操作过程不影响用户正常读写数据,提升了用户体验。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据迁移方法,其特征在于,包括:
在执行数据迁移操作的过程中,接收针对第一源数据的第一目标操作请求;
在所述数据迁移操作的源数据库中,对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作;以及在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作;
其中,所述源数据库对应第一业务逻辑,所述目标数据库对应第二业务逻辑。
2.根据权利要求1所述的数据迁移方法,其特征在于,所述在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作,包括:
根据预设对应关系,确定所述目标数据库中,所述第一源数据对应的第一目标数据在所述目标数据库的数据表中的目标位置;
对所述目标位置的所述第一目标数据执行与所述第一目标操作请求对应的第二数据操作。
3.根据权利要求1所述的数据迁移方法,其特征在于,所述方法还包括:
接收指示完成所述数据迁移操作的指示信息;
响应于所述指示信息,接收针对所述第一目标数据的第二目标操作请求;
在所述目标数据库中,对所述第一目标数据执行与所述第二目标操作请求对应的第三数据操作;以及在所述源数据库中,对所述第一目标数据对应的所述第一源数据执行与所述第二目标操作请求对应的第四数据操作。
4.根据权利要求3所述的数据迁移方法,其特征在于,所述方法还包括:
接收指示完成所述数据迁移操作的指示信息之后,将所述源数据库中执行所述第一数据操作后的第一处理数据,与所述目标数据库中执行所述第二数据操作后的第二处理数据进行校对;
若所述第一处理数据与所述第二处理数据校对一致,将用户读取数据的数据源切换为所述目标数据库。
5.根据权利要求3所述的数据迁移方法,其特征在于,所述方法还包括:
在满足预设条件后,停止接收针对所述源数据库中的源数据的数据操作请求,所述预设条件包括:在预设测试周期内,接收到指示所述目标数据库运行异常的报错信息小于第一预设值。
6.根据权利要求4所述的数据迁移方法,其特征在于,所述第一处理数据与所述第二处理数据进行校对之后,所述方法还包括:
若所述目标数据库中存在异常数据,则在所述目标数据库中补充所述异常数据的数据位置对应的目标数据,或重新执行所述数据迁移操作;其中,所述异常数据包括:所述异常数据的数据位置对应的数据字段为空的数据,或者所述异常数据的数据位置对应的数据字段与所述第一处理数据不一致的数据。
7.根据权利要求4所述的数据迁移方法,其特征在于,所述将用户读取数据的数据源切换为所述目标数据库之后,
接收到所述目标数据库运行异常的指示信息,将用户读取数据的数据源切换为所述源数据库。
8.根据权利要求3至7中任一所述的数据迁移方法,其特征在于,所述第一数据操作、所述第二数据操作、所述第三数据操作、所述第四数据操作分别包括以下至少一项:
增加数据;
修改数据;
删除数据。
9.一种数据迁移装置,其特征在于,包括:
接收模块,用于在执行数据迁移操作的过程中,接收针对第一源数据的第一目标操作请求;
第一数据操作模块,用于在所述数据迁移操作的源数据库中,对所述第一源数据执行与所述第一目标操作请求对应的第一数据操作;以及在所述数据迁移操作的目标数据库中,对所述第一源数据对应的第一目标数据执行与所述第一目标操作请求对应的第二数据操作;
其中,所述源数据库对应第一业务逻辑,所述目标数据库对应第二业务逻辑。
10.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1至8任一项所述的数据迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111481239.1A CN114116676A (zh) | 2021-12-06 | 2021-12-06 | 数据迁移方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111481239.1A CN114116676A (zh) | 2021-12-06 | 2021-12-06 | 数据迁移方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116676A true CN114116676A (zh) | 2022-03-01 |
Family
ID=80367304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111481239.1A Pending CN114116676A (zh) | 2021-12-06 | 2021-12-06 | 数据迁移方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116676A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860716A (zh) * | 2023-06-16 | 2023-10-10 | 北京原点数安科技有限公司 | 数据迁移方法、装置及存储介质 |
-
2021
- 2021-12-06 CN CN202111481239.1A patent/CN114116676A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860716A (zh) * | 2023-06-16 | 2023-10-10 | 北京原点数安科技有限公司 | 数据迁移方法、装置及存储介质 |
CN116860716B (zh) * | 2023-06-16 | 2023-12-22 | 北京原点数安科技有限公司 | 数据迁移方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108055343B (zh) | 用于机房的数据同步方法及装置 | |
US8725684B1 (en) | Synchronizing data stores | |
US10970311B2 (en) | Scalable snapshot isolation on non-transactional NoSQL | |
CN108959407B (zh) | 数据的强一致性写入方法及终端设备 | |
CN108599973B (zh) | 一种日志关联方法、装置及设备 | |
CN107016016B (zh) | 一种数据处理的方法及装置 | |
US10394775B2 (en) | Order constraint for transaction processing with snapshot isolation on non-transactional NoSQL servers | |
US9374417B1 (en) | Dynamic specification auditing for a distributed system | |
US12001450B2 (en) | Distributed table storage processing method, device and system | |
CN111506580B (zh) | 一种基于中心化块链式账本的交易存储方法 | |
CN107277022B (zh) | 进程标记方法及装置 | |
US11061727B1 (en) | Preventing performance degradation over time in a cache | |
CN112930530A (zh) | 用于网络应用程序执行的客户端应用程序 | |
CN110019538B (zh) | 一种数据表切换方法及装置 | |
CN111414207A (zh) | 一种页面搭建方法、装置和设备 | |
CN114116676A (zh) | 数据迁移方法、装置、电子设备及计算机可读存储介质 | |
CN113553214A (zh) | 一种幂等性校验方法及装置 | |
CN117435569A (zh) | 缓存***动态扩容方法、装置、设备、介质和程序产品 | |
WO2024036829A1 (zh) | 一种数据融合方法、装置、设备及存储介质 | |
US9378230B1 (en) | Ensuring availability of data in a set being uncorrelated over time | |
CN111221817B (zh) | 业务信息数据存储方法、装置、计算机设备及存储介质 | |
CN115033551A (zh) | 一种数据库迁移方法、装置、电子设备及存储介质 | |
CN108959405B (zh) | 数据的强一致性读取方法及终端设备 | |
CN111427868B (zh) | 数据库迁移中操作请求的处理方法、装置和电子设备 | |
CN113568890A (zh) | 数据迁移方法、装置、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |