CN114116681A - 数据迁移方法及装置 - Google Patents

数据迁移方法及装置 Download PDF

Info

Publication number
CN114116681A
CN114116681A CN202210073839.2A CN202210073839A CN114116681A CN 114116681 A CN114116681 A CN 114116681A CN 202210073839 A CN202210073839 A CN 202210073839A CN 114116681 A CN114116681 A CN 114116681A
Authority
CN
China
Prior art keywords
database
data
source
migration
target
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.)
Granted
Application number
CN202210073839.2A
Other languages
English (en)
Other versions
CN114116681B (zh
Inventor
吴沛林
付大超
郭寿敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210073839.2A priority Critical patent/CN114116681B/zh
Publication of CN114116681A publication Critical patent/CN114116681A/zh
Application granted granted Critical
Publication of CN114116681B publication Critical patent/CN114116681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

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)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例提供数据迁移方法及装置,其中所述数据迁移方法包括:确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库;根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务;根据所述数据处理任务,对所述源数据库与所述目标数据库进行迁移检测,并将所述源数据库中的数据迁移至所述目标数据库,在迁移检测完成后再进行数据迁移,从而实现将源数据库中的数据成功的迁移到目标数据库中。

Description

数据迁移方法及装置
技术领域
本说明书实施例涉及计算机技术领域,特别涉及数据迁移方法及装置。
背景技术
随着计算机技术和互联网技术的发展,分布式数据库的应用也逐渐普及。在对分布式数据库中的数据进行迁移或实时同步时,由于分布式数据库中存储着大量的存量数据,并且还会实时的写入增量数据,因此在数据迁移时既要考虑存量数据的迁移速度,还要考虑增量数据的迁移速度能否跟上源数据库中的数据写入速度。现有技术中,存在仅支持全量数据迁移的技术,或仅支持增量数据迁移的技术,且迁移速度较慢,因此在对分布式数据库进行数据迁移或数据同步时,亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本说明书实施例提供了一种数据迁移方法。本说明书一个或者多个实施例同时涉及一种数据迁移装置,一种计算设备,一种计算机可读存储介质,一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据迁移方法,包括:
确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库;
根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务;
根据所述数据处理任务,对所述源数据库与所述目标数据库进行迁移检测并,将所述源数据库中的数据迁移至所述目标数据库。
可选地,所述确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库步骤执行之前,还包括:
接收确认指令,基于所述确认指令确定源数据库和目标数据库;
构建所述源数据库中的子分区与所述目标数据库中的目标子分区的映射关系;
根据所述映射关系建立所述源数据库与所述目标数据库间的数据迁移关系。
可选地,确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库,包括:
接收连接指令,基于所述连接指令确定数据库标识信息,基于所述数据库标识信息确定源数据库;
确定与所述源数据库具有数据迁移关系的至少一个迁移数据库;
基于所述连接指令在所述至少一个迁移数据库中确定目标数据库。
可选地,所述将所述源数据库中的数据按照预设的数据迁移规则迁移至所述目标数据库,包括:
获取所述源数据库的待迁移子分区中存储的源数据;
确定所述源数据对应的编码信息;
根据所述编码信息将所述源数据迁移至所述目标数据库。
可选地,所述根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务,包括:
读取所述源数据库中源分区的源分区信息,以及所述目标数据库中目标分区的目标分区信息;
基于所述源分区信息和所述目标分区信息建立所述源分区与所述目标分区的迁移链路;
基于所述迁移链路建立所述目标分区与所述源分区对应的子数据处理任务,并基于所述子数据处理任务建立父数据处理任务。
可选地,所述根据所述数据处理任务,对所述源数据库与所述目标数据库进行迁移检测,包括:
通过执行所述数据处理任务中的父数据处理任务,对所述源数据库与所述目标数据库进行迁移检测;
通过执行所述数据处理任务中的子数据处理任务,对所述目标数据库中的目标分区和所述源数据库中的源分区进行迁移检测。
可选地,所述对所述源数据库与所述目标数据库进行迁移检测,包括:
对所述源数据库与所述目标数据库进行全局连接检测、全局权限检测和/或全局配置信息检测;
相应的,所述对所述目标分区与所述源分区进行迁移检测,包括:
对所述目标分区与所述源分区进行连接检测、权限检测和/或配置信息检测。
可选地,所述确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库步骤执行之后,还包括:
建立数据库检测任务,根据所述数据库检测任务对所述源数据库与所述目标数据库进行数据库检测;
在所述数据库检测通过的情况下,执行步骤根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务。
可选地,所述将所述源数据库中的数据按照预设的数据迁移规则迁移至所述目标数据库,包括:
确定与所述子数据处理任务对应的时间节点;
将所述源数据库中在所述时间节点前存储的数据,按照全量迁移策略迁移至所述目标数据库;
将所述源数据库中在所述时间节点后存储的数据,按照增量迁移策略迁移至所述目标数据库。
可选地,所述将所述源数据库中在所述时间节点前存储的数据,按照全量迁移策略迁移至所述目标数据库,包括:
确定所述源数据库中待迁移的第一源分区;
将所述待迁移的第一源分区中的数据表划分为至少两组子数据表,并为每组子数据表分配线程;
采用多线程并发处理策略将所述待迁移的第一源分区中已分配线程的每组子数据表迁移至目标数据库的第一目标分区。
可选地,所述将所述源数据库中在所述时间节点后存储的数据,按照增量迁移策略迁移至所述目标数据库,包括:
读取所述源数据库中第二源分区的日志文件;
基于所述日志文件确定存储于所述源数据库中第二源分区的增量数据;
将所述增量数据迁移至对应所述目标数据库的第二目标分区。
可选地,所述将所述源数据库中的数据按照预设的数据迁移规则迁移至所述目标数据库,包括:
确定所述源数据库中的待处理源分区;
按照全量迁移策略和/或增量迁移策略将所述待处理源分区中存储的数据迁移至所述目标数据库中的迁移分区。
根据本说明书实施例的第二方面,提供了一种数据迁移装置,包括:
确定模块,被配置为确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库;
建立模块,被配置为根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务;
处理模块,被配置为根据所述数据处理任务,对所述源数据库与所述目标数据库进行迁移检测,并将所述源数据库中的数据迁移至所述目标数据库。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据迁移方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据迁移方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行所述数据迁移方法的步骤。
本说明书提供的数据迁移方法,通过确定源数据库和目标数据库,根据源数据库与目标数据库间的数据迁移关系,建立数据处理任务;根据数据处理任务对源数据库与目标数据库进行迁移检测,并将源数据库中的数据迁移至目标数据库中进行存储,在迁移检测完成后再进行数据迁移,从而实现将源数据库中的数据成功的迁移到目标数据库中。
附图说明
图1是本说明书一个实施例提供的一种数据迁移方法的流程图;
图2是本说明书一个实施例提供的一种数据迁移方法的示意图;
图3是本说明书一个实施例提供的一种数据迁移方法的处理过程流程图;
图4是本说明书一个实施例提供的一种数据迁移装置的结构示意图;
图5是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
数据库:是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
预检查:在数据同步前,需要对源数据库和目标数据库进行连接性检查、账号权限检查、数据库配置检查等方面的检查,统一称为预检查。
连接串:是指数据库的配置信息,书写格式为Data Source = { 0 };InitialCatalog = { 3 };Persist Security Info = True;User ID = { 1 };Password = { 2 },表示在Data Source中指定数据源,Initial Catalog中指定数据库名称,User ID指定数据库用户名,Password中设定对应用户名的密码。
全量同步/迁移:在开始数据同步的时间节点,对当前时间节点之前的存量数据进行同步的过程,称为全量步,通过直接读取存量数据的方式拉取数据。
增量同步/迁移:在开始数据同步的时间节点之后,增量写入的数据,通过读取和解析源数据库写入日志的方式,进行增量同步,这个过程称为增量同步。
子实例和子分区:分布式数据库,一般都会把数据分散存储,提高数据读写性能,分散存储的子单元就是子实例或者子分区。
日志文件:是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志;具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。
在本说明书中,提供了一种数据迁移方法,本说明书同时涉及一种数据迁移装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
在进行数据传输,尤其是数据迁移/同步时,分布式数据库中的存量数据和增量数据会比非分布式数据库中的数据量大,现有技术中通常仅支持数据的全量迁移,或仅支持数据的增量迁移,然而在数据迁移的过程中仍然会不断的向源数据库写入数据,因此亟需一种数据迁移方法既能实现数据的全量迁移,同时又能实现数据的增量迁移。
图1示出了根据本说明书一个实施例提供的一种数据迁移方法的流程图,具体包括以下步骤。
步骤S102:确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库。
具体的,目标数据库是指在数据迁移或数据同步时用于接收并存储数据的接收数据库,对应的源数据库是指在数据迁移或数据同步时,发送数据的数据库,数据发送方和数据接收方之间的关系即为数据迁移关系;数据迁移,是指将数据从原始位置迁移到目标位置,即,将存储在一个数据库中的数据迁移到另一个数据库进行存储。
基于此,在对数据库进行管理的场景下,为了确保数据的存储安全,通常需要将数据库中存储的数据迁移到另一个数据库中进行备份,或对数据库中的部分数据进行拷贝等操作,在数据库数量较多的情况下,需要从多个数据库中确定源数据库,以及数据迁移后用于存储数据的目标数据库。
在对数据库中存储的数据进行迁移时需要先确定数据的迁出数据库,即,源数据库,用于接收并存储从源数据库中迁出的数据。对于目标数据库的确定,需要考虑源数据库中数据量的大小,以确保目标数据库能够完整的接收并存储来自源数据库的数据。此外,考虑到数据的隐私性,目标数据库也可以具有一定的数据读取机制,用于保证从源数据库中迁出的数据能够安全的存储到目标数据库中。
进一步的,在确定源数据库以及与源数据库具有数据迁移关系的目标数据库前,考虑到服务端提供的服务较为复杂,且不同的服务会对应不同的数据,因此服务端会涉及种类和数量较多的数据库;因此在数据迁移前,需要确定将要对其进行数据迁移的源数据库。为了保证迁出的数据能够安全的存储,还需要确定用于接收并存储从源数据库中迁出的数据的目标数据库。由于源数据库中的数据是分区进行存储的,因此在对源数据库中存储的数据进行迁移前,需要构建源数据库中的子分区与目标数据库中的目标子分区之间的映射关系,以确保源数据库包含的子分区中存储的数据在迁入到目标数据库后,数据的存储结构不发生改变,具体实现如下:
接收确认指令,基于所述确认指令确定源数据库和目标数据库;构建所述源数据库中的子分区与所述目标数据库中的目标子分区的映射关系;根据所述映射关系建立所述源数据库与所述目标数据库间的数据迁移关系。
具体的,确认指令是指由计算机发出的,用于在众多数据库中确定源数据库的计算机命令;子分区是指与源数据库对应的,源数据库中包含的子实例,是源数据库中用于存储数据的单元;目标子分区是指与目标数据库对应的用于存储数据的单元;子分区与目标子分区之间构成映射关系,即,当进行数据迁移时,将存储于子分区中的数据迁移到与子分区对应的目标分区中相应的位置进行存储,例如在对源数据库中的数据进行迁移时,将存储于源数据库中,位于子分区1中的数据迁移到对应的目标数据库中的目标子分区1相应的位置进行存储。
基于此,当接收到确认指令后即可基于确认指令确定源数据库和目标数据库,用于实现将源数据库中存储的数据迁移到目标数据库中,为了确保源数据库中存储的数据能成功的从源数据库迁移到目标数据库,可以在确定源数据库和目标数据库后,构建源数据库中的子分区与目标数据库中的目标子分区之间的映射关系,将源数据库中的所有需要进行数据迁移的子分区映射到目标数据库中对应的目标子分区,从而确定源数据库与目标数据库之间的迁移关系,以便于后续基于迁移关系,实现数据迁移。
实际应用中,接收到确认指令后,可以通过解析确认指令确定数据库的标识ID,账号信息以及密码等信息,用于确定目标数据库和源数据库。由于需要进行数据迁移的分布式数据库中包含了多个子分区,每个子分区中都存储有多个数据表等数据,在数据迁移的过程中,为了实现迁移后的数据存储结构不发生改变,还需要构建源数据库中的子分区与目标数据库中的目标子分区之间的映射关系。
例如,当接收到确认指令后,即为接收到了需要进行数据迁移的分布式数据库的相关信息,以及用于接收从需要进行迁移的分布式数据库中迁出的数据的数据库的相关信息,即数据库的标识ID、账号信息以及密码等信息。基于相关信息建立分布式数据库中的子分区,与用于接收数据的数据库中的子分区之间的映射关系,从而实现有针对性的数据迁移。
综上所述,通过接收确认指令,在确定了源数据库和目标数据库后,构建源数据库中的子分区与目标数据库中的目标子分区之间的映射关系,从而实现建立源数据库和目标数据库之间的迁移关系,并基于迁移关系实现将子分区中的数据迁移到与其对应的目标子分区中,达到将源数据库中存储的数据按照其分区进行迁移的效果,从而既实现了数据迁移,又没有改变源数据库中数据的存储结构。
进一步的,由于源数据库中存储的数据量较大,可以用于接收并存储数据的数据库也较多,因此可以根据连接指令所携带的标识信息确定源数据库和目标数据库,具体实现如下:
接收连接指令,基于所述连接指令确定数据库标识信息,基于所述数据库标识信息确定源数据库;确定与所述源数据库具有数据迁移关系的至少一个迁移数据库;基于所述连接指令在所述至少一个迁移数据库中确定目标数据库。
具体的,连接指令是指由用户发出的,用于确定与源数据库具有数据迁移关系的目标数据库的计算机命令;标识信息是指用于表征数据库特征的参数,一般是指数据库的标识ID;迁移数据库是指与源数据库对应的,可以接收从源数据库中迁出的数据,并进行存储的多个数据库。
基于此,当接收到连接指令后,由于连接指令携带了数据库的标识信息,其中,标识信息用于确定一个唯一的数据库,因此在确定了与连接指令对应的标识信息后,即可根据标识信息找到与其对应的源数据库,此时与源数据库之间具有数据迁移关系的迁移数据库会有多个,为支持后续可以顺利完成数据的迁移处理操作,可以基于连接指令在多个迁移数据库中确定与源数据库对应的目标数据库,用于后续将源数据库中存储的数据迁移到与其对应的目标数据库中。
沿用上例,接收到连接指令后,基于连接指令所携带的数据库ID即可确定源数据库ID1,以及用于接收并存储数据的多个数据库。基于连接指令在多个数据库中选择用于接收并存储数据的目标数据库,用于实现后续对源数据库中存储的数据进行迁移。
综上所述,通过接收到的连接指令所携带的数据库标识信息,可以快速的在众多数据库中确定源数据库,以及与源数据库对应的目标数据库,从而实现后续的数据迁移。
步骤S104:根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务。
具体的,在上述完成了确定源数据库以及与源数据库具有对应关系的目标数据库后,即可基于迁移关系确定数据处理任务,从而执行数据处理任务,完成数据迁移,其中,数据处理任务是指将数据从一个数据库复制或移动到另一个数据库的操作任务,在本实施例中数据处理任务包括在数据迁移前对源数据库与目标数据库的检查任务,还包括将源数据库中包含的子分区中存储的数据迁移到目标数据库中对应的目标分区的操作任务。
基于此,在确定了源数据库,以及与源数据库具有数据迁移关系的目标数据库后,就表明需要将源数据库中存储的数据迁移到与其对应的目标数据库中进行存储,然而由于源数据库中存储的数据存在一定的存储结构,在实现数据迁移时为了确保数据迁移后能够正常的进行读写等操作,因此需要在不改变数据存储结构的基础上实现数据迁移,即,基于源数据库与目标数据库之间的数据迁移关系,建立数据处理任务,分别执行每个数据处理任务,实现源数据库中存储的数据的迁移。
进一步的,在确定了源数据库与目标数据库间的数据迁移关系,基于数据迁移关系建立数据处理任务时,由于源数据库中包含了多个源分区,为了在实现数据迁移后,源数据库中存储的数据在目标数据库中进行存储时,存储结构不发生改变,因此在建立源数据库与目标数据库之间的数据处理任务时,还要考虑源数据库中包含的源分区与目标数据库中包含的目标分区之间的对应关系,从而建立迁移链路和处理任务,具体实现如下:
读取所述源数据库中源分区的源分区信息,以及所述目标数据库中目标分区的目标分区信息;基于所述源分区信息和所述目标分区信息建立所述源分区与所述目标分区的迁移链路;基于所述迁移链路建立所述目标分区与所述源分区对应的子数据处理任务,并基于所述子数据处理任务建立父数据处理任务。
具体的,源分区是指源数据库中包含的子分区或子实例,用于实现在源数据库中对数据进行分区存储,即分散存储,从而提高源数据库的性能;源分区信息是指对应源数据库中包含的子分区的信息,包括但不限于子分区的名字、编号、端口号、存储空间的大小、账号和密码等信息;目标分区是指与目标数据库对应的子分区或子实例,用于接收并存储来自源数据库的数据;目标分区信息是指对应目标数据库的子分区的信息,包括但不限于子分区的名字、编号、端口号、存储空间的大小、账号和密码等信息;迁移链路是指源分区与目标分区之间用于实现数据迁移的路径;子数据处理任务,包括用于检查源分区与目标分区之间是否满足数据迁移条件的事件,以及用于实现将源数据库中子分区中存储的数据迁移到目标数据库中对应的目标分区的事件;父数据处理任务是指用于检查源数据库与目标数据库之间是否满足数据迁移条件的事件。
基于此,在确定了与源数据库具有数据迁移关系的目标数据库后,即可建立数据处理任务。分别读取源数据库以及目标数据库对应的分区信息,确定源数据库和目标数据库中包含的分区,再基于读取到的信息确定源数据库中每个源分区对应的目标数据库中包含的目标分区,并分别建立源数据库中包含的多个源分区与目标分区之间的迁移链路,使得源数据库中的一个源分区对应目标数据库中的一个目标分区,基于源分区与目标分区之间的多条迁移链路建立多个子数据处理任务,以及源数据库与目标数据库之间的父数据处理任务,用于对源数据库与目标数据库进行迁移检测。
沿用上例,图2是本说明书一个实施例提供的一种数据迁移方法的示意图,如图2所示,在确定了需要进行数据迁移的分布式数据库,即源数据库,以及用于接收并存储源数据库中迁出的数据的目标数据库后,源数据库与目标数据库之间就构成了数据迁移关系,通过读取源数据库与目标数据库的分区信息可知,源数据库中包含了两个子分区,分别是子分区1和子分区2,为了确保源数据库中存储的数据在迁移到目标数据库中后存储结构不变,即每个子分区中存储的数据不变,需要建立源数据库中子分区1与目标数据库中分区之间的迁移链路,从而确定源数据库中包含的子分区1对应的子任务1,子分区2对应的子任务2,以及用于判断源数据库与目标数据库之间是否满足迁移条件的父任务,以便于后续执行数据处理任务,实现数据迁移。
综上所述,通过确定源分区与目标分区之间的迁移链路,实现了在对源数据库中存储的数据进行迁移时,保持数据的存储结构不变,即源数据库中每个源分区中存储的数据在迁移到目标数据库中后,数据的存储结构一致,通过建立多个任务进行数据迁移,提高了数据迁移的效率。
步骤S106:根据所述数据处理任务,对所述源数据库与所述目标数据库进行迁移检测,并将所述源数据库中的数据迁移至所述目标数据库。
具体的,在上述基于源数据库与目标数据库之间的数据迁移关系建立了数据处理任务后,即可开始执行数据处理任务,每个数据处理任务开始执行时,均需要对源数据库和目标数据库进行检测,通过检测后再进行数据迁移,其中,迁移检测是指对源数据库和目标数据库是否满足数据迁移的需求进行判断,若满足,即可实现数据迁移,若不满足,则不作任何处理;数据迁移规则是指在实现数据迁移时要遵守的规矩和准则,在本实施例中数据迁移规则包括但不限于按照源数据库的数据分区进行数据迁移。
基于此,在建立了数据处理任务后,为了确保源数据库中存储的数据能够通过多条迁移链路准确的迁移到目标数据库中对应的目标分区中,在对源数据库中多个源分区中存储的数据进行迁移之前,需要对源数据库和目标数据库进行迁移检测,判断源数据库和目标数据库之间是否满足迁移条件,在检测通过的情况下,就代表源数据库与目标数据库之间已经建立了连接关系,可以进行数据迁移,将源数据库中存储的数据按照预设的数据迁移规则迁出,并迁入到目标数据库,目标数据库接收到来自源数据库的数据后,存储到相应的位置。
进一步的,在建立了源数据库与目标数据库之间的多个数据处理任务后,为了确保源数据库中存储的数据能够顺利的发送到目标数据库,并在与源数据库中的源分区对应的目标分区中进行存储,通过执行父数据处理任务实现对源数据库与目标数据库的迁移检测,通过执行子数据处理任务实现对源分区与目标分区的迁移检测,具体实现如下:
通过执行所述数据处理任务中的父数据处理任务,对所述源数据库与所述目标数据库进行迁移检测,以及通过执行所述数据处理任务中的子数据处理任务,对所述目标数据库中的目标分区和所述源数据库中的源分区进行迁移检测。
基于此,在建立了源数据库与目标数据库之间的数据处理任务后,执行数据处理任务中的父数据处理任务,对源数据库和目标数据库进行数据迁移前的迁移检测,检测源数据库与目标数据库之间是否满足数据迁移条件;执行数据处理任务中的子数据处理任务,对源数据库中包含的源分区以及目标数据中包含的目标分区进行数据迁移前的迁移检测,检测源数据库和目标数据库中存在迁移链路的源分区与目标分区之间是否满足数据迁移条件,若满足即可进行数据迁移。
综上所述,在将源数据库中存储的数据迁移到目标数据库之前,通过执行数据处理任务实现对源数据库、目标数据库、源分区和目标分区的迁移检测,以确保目标数据库能够完整且准确的接收并存储来自源数据库的数据,提高了数据迁移的完整性。
此外,在确定了源数据库与目标数据库之后,由于数据处理任务能否执行取决于数据库检测是否通过,在数据库检测未通过的情况下,数据处理任务则不能执行,因此还可以采用先建立数据库检测任务,在数据库检测通过的情况下,再建立数据处理任务的处理方法,具体实现如下:
建立数据库检测任务,根据所述数据库检测任务对所述源数据库与所述目标数据库进行数据库检测;在所述数据库检测通过的情况下,执行步骤根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务。
具体的,数据库检测任务是指用于检查源数据库与目标数据库之间是否满足数据处理任务建立条件的事件;相应的,数据库检测是指对源数据库与目标数据库之间的连接性、权限等信息进行的检测,在检测通过的情况下,才可以继续建立数据处理任务。
基于此,在确定了源数据库与目标数据库之后,先建立源数据库与目标数据库之间的数据库检测任务,执行数据库检测任务,对源数据库与目标数据库进行数据库检测,检测通过后,再根据源数据库与目标数据库之间的数据迁移关系,建立数据处理任务,以便于后续对源数据库中包含的源分区以及目标数据中包含的目标分区进行数据迁移前的检测,检测通过的情况下,开始进行数据迁移,将源数据库中包含的源分区中存储的数据迁移到目标数据库的目标分区中。
沿用上例,在确定了源数据库与目标数据库后,先建立父任务,基于父任务对源数据库与目标数据库之间的连通性和权限等信息进行预检查,若预检查通过,则建立子任务1和子任务2,并行执行子任务1和子任务2,分别进行子任务1对应的预检查和子任务2对应的预检查,在子任务1对应的预检查通过的情况下将子分区1中存储的数据全量同步/增量同步到目标数据库中,在子任务2对应的预检查通过的情况下将子分区2中存储的数据全量同步/增量同步到目标数据库中。
综上所述,在数据库检测通过的情况下,再建立数据处理任务,避免了在数据库检测不通过的情况下,已经建立了数据处理任务所造成的资源浪费,同时提高了数据库检测任务的创建以及执行效率。
进一步的,在上述执行父数据处理任务实现对源数据库和目标数据库的迁移检测时,是对源数据库与目标数据库中具有迁移关系的全部分区进行连接性、权限和配置信息的检测,目的是确保源数据库中存储的数据能够顺利的迁移到目标数据库中,在执行子数据处理任务时,对源数据库对应的源分区和目标数据库对应的目标分区进行连接性、权限和配置信息检测,具体实现如下:
对所述源数据库与所述目标数据库进行全局连接检测、全局权限检测和/或全局配置信息检测;相应的,所述对所述目标分区与所述源分区进行迁移检测,包括:对所述目标分区与所述源分区进行连接检测、权限检测和/或配置信息检测。
具体的,全局连接性检测是指与父数据处理任务对应的,对源数据库与目标数据库之间具有迁移关系的全部分区进行的连接性检测,检测源数据库与目标数据库中具有迁移关系的全部源分区和目标分区之间的连接是否正常,是否可以进行后续的数据迁移。全局权限检测是指与父数据处理任务对应的,对源数据库与目标数据库中具有迁移关系的全部源分区和目标分区的访问权限、读写权限进行检测;全局配置信息检测是指与父数据处理任务对应的,分别对源数据库与目标数据库中具有迁移关系的全部源分区和目标分区的端口号、子分区信息、存储空间大小等参数进行检测;连接检测是指与子数据处理任务对应的,对源数据库中的源分区与目标数据库中的目标分区之间的连接性进行检测,检测源分区与目标分区是否可以正常连接,是否可以构建迁移链路并实现数据迁移;权限检测是指与子数据处理任务对应的,对源数据库包含的源分区与目标数据库包含的目标分区之间的访问权限、读写权限进行检测;配置信息检测是指与子数据处理任务对应的,分别对源数据库包含的源分区与目标数据库包含的目标分区的端口号、子分区信息、存储空间大小等参数进行检测。
基于此,在实现将源数据库中存储的数据迁移到目标数据库中进行存储时,通过执行父数据处理任务,对源数据库与目标数据库进行数据迁移前的检测,通过对源数据库与目标数据库进行全局连接检测,实现检测源数据库与目标数据库中具有迁移关系的全部源分区和目标分区之间的连接性,通过对源数据库与目标数据库中具有迁移关系的全部源分区和目标分区进行全局权限检测,实现对源数据库与目标数据库的访问权限进行检测;通过对源数据库与目标数据库中具有迁移关系的全部源分区和目标分区进行全局配置信息检测,判断源数据库与目标数据库的配置信息是否匹配,以及是否适合用于做数据迁移。在对目标分区与源分区进行连接检测、权限检测和/或配置信息检测时,只检测源分区以及与其对应的目标分区之间是否连接,是否均有数据操作权限,以及源分区与目标分区之间的配置信息是否匹配,以便于后续在通过检测后实现数据迁移。
沿用上例,如图2 所示在建立了需要进行迁移的分布式数据库,即源数据库与目标数据库之间的数据处理任务后,同时对父任务、子任务1和子任务2进行预检查,对父任务的检查是由源数据库包含的子分区和目标数据库包含的子分区组成的子分区集群进行全局性检查,目的是检查源数据库与目标数据库中具有迁移关系的全部源分区和目标分区是否已经建立了连接关系,连接串信息是否匹配,相关的数据库账号是否有数据的访问和读写等操作权限,以及被授权的权限的等级信息。对子任务的检查则是检查源数据库中的子任务及其对应的目标数据库中的子任务之间是否已经建立连接关系,连接串信息是否匹配,相关的子分区对应的账号是否有数据的访问和读写等操作权限,其本质是对子分区1和子分区2分别进行检查,当对父任务和子任务1的预检查通过后,才可以实现子分区1中存储的数据迁移,若子分区2的预检查未通过,则不能对子分区2中存储的数据进行数据迁移。
综上所述,通过对源数据库与目标数据库之间,以及源分区与目标分区之间的连接性、权限、配置信息进行检测,判断源数据库与目标数据库之间以及源分区与目标分区之间是否适合进行数据迁移操作,以及目标数据库能否顺利接收并存储来自源数据库的数据,提高了数据迁移的安全性以及准确性。
进一步的,在将源数据库中存储的数据迁移到目标数据库时,由于数据库的种类较多,源数据库和目标数据库可能为同一类别的数据库,也可能为不同的类别的数据,因此在将从源数据库中迁出的数据存储到目标数据库时,有多种数据存储方式,具体实现如下:
获取所述源数据库的待迁移子分区中存储的源数据;确定所述源数据对应的编码信息;根据所述编码信息将所述源数据迁移至所述目标数据库。
具体的,待迁移子分区是指源数据库中用于存储数据的存储单元,源数据库中包含至少一个待迁移子分区;源数据是指存储于待迁移子分区中的数据;编码信息是指与源数据对应的数据编号,待迁移子分区中存储的每条数据分别对应的数据ID。
基于此,在源数据库与目标数据库均通过了迁移检测后,开始进行数据迁移。获取源数据库包含的多个待迁移子分区,确定每个待迁移子分区中存储的源数据。在数据处理任务开始执行时,对存储在多个待迁移子分区中的源数据进行数据迁移。在将迁出的源数据存储到目标数据库时,由目标数据库根据接收到的每条源数据对应的编码信息,确定每条源数据在目标数据库中的存储位置。当目标数据库接收到源数据后,通过分析源数据的编码信息构建源数据的编码信息与目标数据库的存储位置信息之间的存储索引,根据存储索引将源数据存储到目标数据库的对应位置。其中,存储索引,表示源数据的编码信息与目标数据库的存储位置信息之间的对应关系,可以通过判断源数据对应的编码信息的奇偶性,以及目标数据库的分区信息建立存储索引,将编码信息为奇数的源数据存储到目标数据库的一个子分区中,将编码信息为偶数的源数据存储到目标数据库的另一个子分区中,需要说明的是,对于存储索引的创建,可以根据目标数据库的分区情况确定,不局限于上述通过判断源数据对应的编码信息的奇偶性这一种方式。
举例说明,在将数据库A中存储的数据迁移到数据库B中时,分别对数据库A包含的子分区1、子分区2、子分区3中存储的数据进行数据迁移,迁移到数据库B中的子分区a和子分区b中,需要说明的是,数据库A包含的子分区1、子分区2、子分区3中存储的数据在数据迁移时,可以顺序对每个子分区中存储的数据进行迁移,还可以通过多线程的方式对三个子分区进行同步迁移,本实施例对此不作限定。在数据库B对接收到的数据进行存储时,分别读取来自子分区1、子分区2、子分区3中存储的数据,确定每条数据对应的数据编号,根据数据编号对每条数据进行分类,再根据数据库B的分区情况构建存储索引表。可以通过判断数据编号的奇偶性实现对数据的分类,数据编号为奇数的划分为x类,数据编号为偶数的划分为y类,通过读取存储索引表确定将属于x类的数据存储到数据库B包含的子分区a中,将数据y类的数据存储到数据库B包含的子分区b中。需要说明的是,在对数据库A中迁出的数据进行分类时,还可以由数据库B的分区情况或存储空间情况决定,可以将数据库A中的数据分为两类也可以分为多个类,本实施例对分类依据,以及划分的类别数量不作具体限定。
此外,在开始对数据库A包含的每个子分区中存储的数据进行数据迁移时,将开始进行数据迁移的时刻作为时间节点,在时间节点前存储到子分区1、子分区2以及子分区3中的数据,通过全量迁移的方法迁移到目标数据库中,在时间节点后存储到子分区1、子分区2以及子分区3中的数据,通过增量迁移的方法迁移到目标数据库中。
综上所述,通过读取源数据库中存储的源数据对应的编码信息,从而确定源数据在目标数据库中的存储位置以及存储方式,使源数据在目标数据库中的存储方式更加灵活,提高了数据迁移速度。
进一步的,在对源数据库中存储的数据进行数据迁移时,由于源数据库中包含多个源分区,每个源分区存储着大量不同的数据,并且数据还在不断的写入到源数据库的源分区中,即便是在数据处理任务正在执行的过程中,也会不断的写入新的数据。在数据开始迁移时,源数据库中的多个源分区会处于不同的读写状态,对处于不同读写状态的源分区,处理方法也不同,具体实现如下:
确定所述源数据库中的待处理源分区;按照全量迁移策略和/或增量迁移策略将所述待处理源分区中存储的数据迁移至所述目标数据库中的迁移分区。
具体的,待处理源分区是指源数据库中需要进行数据迁移的源分区;迁移分区是指目标数据库中,与待处理源分区对应的用于存储从待处理源分区中迁移出的数据的子分区。
基于此,在对源数据库中存储的数据进行迁移时,由于源数据库中包含了多个源分区,每个源分区均对应着一个数据读写状态,因此在对源数据库中存储的数据进行迁移时,可以按照源分区对应的数据读写状态确定数据迁移策略,当待处理源分区处于存储状态时,对此待处理分区中存储的数据按照全量迁移策略迁移到目标数据库的迁移分区中;当待处理源分区处于写入状态时,对此待处理分区中存储的数据按照增量迁移策略迁移到目标数据库的迁移分区中,其中,存储状态表示当前待处理源分区不需要进行数据读写操作,写入状态表示当前待处理源分区正在进行数据写入。
例如,分布式数据库中包含3个子分区,其中子分区1和子分区2已经存满了数据,当数据写入时,不再存储到子分区1和子分区2中,子分区3此时正处于写入状态,在向分布式数据库中写入数据时,均写入到子分区3中。在对分布式数据库中的三个子分区进行数据迁移时,对子分区1和子分区2按照全量迁移策略进行数据迁移,对子分区3按照增量迁移策略进行数据迁移,迁移到目标数据库对应的子分区中。
综上所述,在开始进行数据迁移时,针对处于不同读写状态源分区,采用不同的迁移策略,从而实现有针对性的进行数据迁移,在提高源数据库中存储的全量数据的迁移速度的同时,将增量数据也实时的迁移到目标数据库中,避免了在数据迁移过程中,遗漏需要进行增量迁移的数据。
进一步的,在迁移检测通过的情况下,将源数据库中存储的数据迁移到目标数据库时,需要按照迁移规则对源数据库中存储的数据进行迁移,迁移规则可以是按照固定的时间节点对源数据库中存储的存量数据进行全量迁移,对源数据库中在固定的时间节点后写入的数据进行增量迁移,确保在对源数据库进行数据迁移时,实时写入源数据库中的数据也能被迁移到目标数据库中,具体实现如下:
确定与所述子数据处理任务对应的时间节点;将所述源数据库中在所述时间节点前存储的数据,按照全量迁移策略迁移至所述目标数据库;将所述源数据库中在所述时间节点后存储的数据,按照增量迁移策略迁移至所述目标数据库。
具体的,时间节点是指时间戳,包括但不限于数据处理任务创建的时间戳,执行父任务和子任务完成迁移检测的时间戳,还可以是对源数据库中存储的数据开始进行全量迁移时的时间戳;全量迁移策略是指以时间节点为分界线,在时间节点前存储到源数据库中的数据,直接进行读取并写入到目标数据库中;增量迁移策略是指在时间节点后存储到源数据库中的数据,实时的迁移到目标数据库中。
基于此,在迁移检测通过的情况下,即可开始将源数据库中存储的数据迁移到目标数据库中,由于在对源数据库中的数据进行迁移时,还存在不断写入源数据库的数据,为了将这些不断写入的数据也迁移到目标数据库中,采用了不同的数据迁移策略。确定开始执行子数据处理任务时的时间节点,将源数据库中,在这个时间节点前存储到源数据库中的数据,按照全量迁移策略全量迁移到目标数据库中,在这个时间节后存储到源数据库中的数据,按照增量迁移策略增量迁移到目标数据库中,采用上述迁移策略,使得可以快速的完成全量数据的迁移,同时也能确保在数据迁移过程中,源数据库中增量写入的数据也能迁移到目标数据库中。
需要说明的是,对于源数据库中存储的数据,全量迁移和增量迁移可以同步执行,也可以先执行全量迁移,再执行增量迁移,本实施例对全量迁移和增量迁移的执行顺序不做具体限定。
综上所述,在对源数据库进行数据迁移时,通过预设时间节点的方法对时间节点前的数据进行全量迁移,同时对时间节点后的数据进行实时的增量迁移,在快速的完成全量数据的迁移的同时,确保在数据迁移过程中实时写入的增量数据也能完成数据迁移,且迁移速度与源数据库中数据的写入速度相匹配。
进一步的,在对源数据库中存储的数据进行数据迁移时,由于源数据库的多个分区中存储的数据量较大,按照分区依次进行数据迁移需要消耗大量的时间和资源,为了提高数据的迁移速度,可以按照源数据库中的数据分区,采用多线程并发处理的方式实现数据迁移,具体实现如下:
确定所述源数据库中待迁移的第一源分区;将所述待迁移的第一源分区中的数据表划分为至少两组子数据表,并为每组子数据表分配线程;采用多线程并发处理策略将所述待迁移的第一源分区中已分配线程的每组子数据表迁移至目标数据库的第一目标分区。
具体的,第一源分区是指源数据库中需要按照全量迁移策略进行数据迁移的子分区;子数据表是指存储于源数据库的子分区中,用于存储数据的虚拟的表,一个子分区中存储有多个子数据表;线程是操作系统能够进行运算调度的最小单位,在实现源数据库的数据迁移时,则是通过多线程的策略进行数据传输。
基于此,在对源数据库中在时间节点前存储的数据,按照全量迁移策略进行迁移时,通过确定源数据库中待迁移的第一源分区,获取到第一源分区中需要进行数据迁移的数据表,由于第一源分区中存储有多个数据表,在对多个数据表进行迁移时,为了提高迁移速度,将第一源分区中的多个数据表划分为至少两组子数据表,每组子数据表分配一个线程,用于实现子数据表的迁移,当开始进行数据迁移时,采用多线程并发处理的策略将第一源分区中被分配了线程的每组子数据表迁移到目标数据库中对应的第一目标分区中,通过采用并行处理的方法对第一源分区中存储的数据表进行迁移,提高了第一源分区中数据的迁移速度。
综上所述,通过多线程并发处理的方式将源数据库中多个子数据表中存储的数据迁移到目标数据库中,提高了数据的迁移速度,节约了时间成本以及用于数据迁移的资源。
进一步的,在对源数据库中的增量数据进行数据迁移时,由于增量数据是实时写入到源数据库的,无法采用全量迁移策略对增量数据进行迁移,因此可以通过读取源数据库日志文件的方法,按照增量迁移策略对源数据库中实时写入的增量数据进行迁移,具体实现如下:
读取所述源数据库中第二源分区的日志文件;基于所述日志文件确定存储于所述源数据库中第二源分区的增量数据;将所述增量数据迁移至对应所述目标数据库的第二目标分区。
具体的,第二源分区是指源数据库中存储了增量数据的子分区;日志文件是指用于记录数据库操作事件的记录文件或文件集合,包括但不限于对数据库进行读写操作的时间、内容、位置等信息;增量数据是指在数据处理任务开始后写入源数据库中的数据;第二目标分区是指源数据库中用于存储增量数据的子分区,或存储了部分增量数据的子分区。需要说明的是上述第一分区与第二分区可以为源数据库中的同一个源分区,当源数据库中的一个源分区中既存储了全量数据,又存储了增量数据时,则这个源分区既要进行全量迁移又要进行增量迁移;当源数据库中的一个源分区中只存储了全量数据时,对此源分区,只进行全量迁移;当源数据库中的一个源分区中只存储了增量数据时,对此源分区,只进行增量迁移。
基于此,在对源数据库中在时间节点后存储的数据,按照增量迁移策略进行迁移时,通过读取源数据库中第二源分区的日志文件,可以确定第二源分区中的增量数据,将增量数据迁移到对应目标数据库的第二目标分区,即完成了一次增量数据的迁移。在对源数据库中的增量数据进行迁移的过程中,随着新的数据写入到源数据库中,与源数据库对应的日志文件也在不断的更新,对于新增的数据可以通过多次读取源数据库的日志文件的方法获取到新增的数据,并迁移到对应的目标数据库中。
沿用上例,在完成了对父任务、子任务1和子任务2的预检查,并且在检查通过的情况下,即可开始对子任务1对应的子分区1以及子任务2对应的子分区2进行数据迁移/同步。若检查不通过则停止数据迁移/同步,或由工作人员介入进行调整。以预检查结束后,全量同步启动的时间戳为时间节点,时间节点前存储到子分区1和子分区2中的数据为全量数据,全量同步到目标数据库中对应的子分区中,时间节点后存储到子分区1和子分区2中的数据为增量数据,增量同步到目标数据库中对应的子分区中。在子分区1中存储的均为全量数据,且在全量同步开启前存储空间均被占用的情况下,新增的数据直接写入到子分区2中进行存储,因此,子分区1只进行全量同步;在子分区1中存储的数据既包含全量数据又包含增量数据的情况下,则对子分区1进行全量同步,和增量同步。
综上所述,通过确定源数据库以及与源数据库具有数据迁移关系的目标数据库,进而根据数据迁移关系,建立数据处理任务;通过执行数据处理任务,对源数据库与目标数据库进行迁移检测;在迁移检测通过的情况下,将源数据库中的数据按照全量迁移策略和/或增量迁移策略分区迁移至目标数据库,从而提高了源数据库中的数据迁移速度,对于实时写入的增量数据,也可以确保及时的将增量数据迁移到目标数据库中。
下述结合附图3,以本说明书提供的数据迁移方法在分布式数据库中的应用为例,对所述数据迁移方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种数据迁移方法的处理过程流程图,具体包括以下步骤。
步骤S302:确定源数据库和目标数据库。
在源数据库为分布式数据库的情况下,以分布式数据库A的数据迁移为例。确定将要进行数据迁移的源数据库,即数据库A,以及用于接收并存储数据的数据库B。
步骤S304:基于源数据库和目标数据库的属性信息建立源数据库和目标数据库间的迁移关系。
读取数据库A的属性信息,确定其包含的三个子分区,以及数据库A的连接串、用户名、密码、端口号、存储空间等信息,并确定与其具有迁移关系的数据库B的连接串、用户名、密码等信息。
步骤S306:建立父任务和子任务。
基于数据库A和数据库B的属性信息建立一个父任务,再基于数据库A包含的三个子分区以及与子分区对应的数据库B包含的子实例分别建立一个子任务。
步骤S308:同时对父任务和子任务进行预检查。
同时执行父任务和子任务,实现预检查。对于父任务中的预检查,检查的是数据库A和数据库B之间的连接性、数据库A和数据库B对应的账号是否有对数据进行读写等操作权限。对于子任务中的预检查,则是检查子任务对应的数据库A包含的子分区以及数据库B包含的子实例之间的连接性、对相关数据的操作权限等。
步骤S310:判断对父任务和子任务的预检查是否通过,若是,则执行步骤S312,若否,不做任何处理。
步骤S312:对子任务中存储的数据进行全量迁移和增量迁移。
在对父任务进行预检查和对子任务进行预检查均通过的情况下,即可开始对数据库A包含的子分区中存储的数据进行迁移,迁移到数据库B中对应的子实例中。以迁移开始时的时间戳为时间节点,在时间节点前存储到数据库A包含的子分区中的数据为全量数据,对其进行全量迁移,在时间节点后存储到数据库A包含的子分区中的增量数据,对其进行增量迁移,需要说明的是,全量迁移和增量迁移可以同步进行,也可以顺序执行。
本申请提供的数据迁移方法,通过确定源数据库以及与源数据库具有数据迁移关系的目标数据库,进而根据数据迁移关系,建立数据处理任务;通过执行数据处理任务,对源数据库与目标数据库进行迁移检测;在迁移检测通过的情况下,将源数据库中的数据按照全量迁移策略和/或增量迁移策略分区迁移至目标数据库,从而提高了源数据库中的数据迁移速度,对于实时写入的增量数据,也可以确保及时的将增量数据迁移到目标数据库中。
与上述方法实施例相对应,本说明书还提供了数据迁移装置实施例,图4示出了本说明书一个实施例提供的一种数据迁移装置的结构示意图。如图4所示,该装置包括:
确定模块402,被配置为确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库;
建立模块404,被配置为根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务;
处理模块406,被配置为根据所述数据处理任务,对所述源数据库与所述目标数据库进行迁移检测,并将所述源数据库中的数据迁移至所述目标数据库。
一个可选的实施例中,所述确定模块402还被配置为:
接收确认指令,基于所述确认指令确定源数据库和目标数据库;构建所述源数据库中的子分区与所述目标数据库中的目标子分区的映射关系;根据所述映射关系建立所述源数据库与所述目标数据库间的数据迁移关系。
一个可选的实施例中,所述确定模块402进一步被配置为:
接收连接指令,基于所述连接指令确定数据库标识信息,基于所述数据库标识信息确定源数据库;确定与所述源数据库具有数据迁移关系的至少一个迁移数据库;基于所述连接指令在所述至少一个迁移数据库中确定目标数据库。
一个可选的实施例中,所述处理模块406进一步被配置为:
获取所述源数据库的待迁移子分区中存储的源数据;确定所述源数据对应的编码信息;根据所述编码信息将所述源数据迁移至所述目标数据库。
一个可选的实施例中,所述建立模块404进一步被配置为:
读取所述源数据库中源分区的源分区信息,以及所述目标数据库中目标分区的目标分区信息;基于所述源分区信息和所述目标分区信息建立所述源分区与所述目标分区的迁移链路;基于所述迁移链路建立所述目标分区与所述源分区对应的子数据处理任务,并基于所述子数据处理任务建立父数据处理任务。
一个可选的实施例中,所述处理模块406进一步被配置为:
通过执行所述数据处理任务中的父数据处理任务,对所述源数据库与所述目标数据库进行迁移检测;
通过执行所述数据处理任务中的子数据处理任务,对所述目标数据库中的目标分区和所述源数据库中的源分区进行迁移检测。
一个可选的实施例中,所述处理模块406进一步被配置为:
对所述源数据库与所述目标数据库进行全局连接检测、全局权限检测和/或全局配置信息检测;相应的,所述对所述目标分区与所述源分区进行迁移检测,包括:对所述目标分区与所述源分区进行连接检测、权限检测和/或配置信息检测。
一个可选的实施例中,所述建立模块404进一步被配置为:
建立数据库检测任务,根据所述数据库检测任务对所述源数据库与所述目标数据库进行数据库检测;
在所述数据库检测通过的情况下,执行步骤根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务。
一个可选的实施例中,所述处理模块406进一步被配置为:
确定与所述子数据处理任务对应的时间节点;将所述源数据库中在所述时间节点前存储的数据,按照全量迁移策略迁移至所述目标数据库;将所述源数据库中在所述时间节点后存储的数据,按照增量迁移策略迁移至所述目标数据库。
一个可选的实施例中,所述处理模块406进一步被配置为:
确定所述源数据库中待迁移的第一源分区;将所述待迁移的第一源分区中的数据表划分为至少两组子数据表,并为每组子数据表分配线程;采用多线程并发处理策略将所述待迁移的第一源分区中已分配线程的每组子数据表迁移至目标数据库的第一目标分区。
一个可选的实施例中,所述处理模块406进一步被配置为:
读取所述源数据库中第二源分区的日志文件;基于所述日志文件确定存储于所述源数据库中第二源分区的增量数据;将所述增量数据迁移至对应所述目标数据库的第二目标分区。
一个可选的实施例中,所述处理模块406进一步被配置为:
确定所述源数据库中的待处理源分区;按照全量迁移策略和/或增量迁移策略将所述待处理源分区中存储的数据迁移至所述目标数据库中的迁移分区。
本说明书一实施例提供的数据迁移装置,通过确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库;根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务;通过执行所述数据处理任务,对所述源数据库与所述目标数据库进行迁移检测;在迁移检测通过的情况下,将所述源数据库中的数据按照预设的数据迁移规则迁移至所述目标数据库,通过执行数据处理任务,在迁移检测完成后实现数据迁移,从而提高了数据迁移速度,以及数据迁移的准确性。
上述为本实施例的一种数据迁移装置的示意性方案。需要说明的是,该数据迁移装置的技术方案与上述的数据迁移方法的技术方案属于同一构思,数据迁移装置的技术方案未详细描述的细节内容,均可以参见上述数据迁移方法的技术方案的描述。
图5示出了根据本说明书一个实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520用于执行如下计算机可执行指令,该计算机可执行指令被处理器520执行时实现上述数据迁移方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据迁移方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据迁移方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据迁移方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据迁移方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据迁移方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据迁移方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据迁移方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据迁移方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (14)

1.一种数据迁移方法,包括:
确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库;
根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务;
根据所述数据处理任务,对所述源数据库与所述目标数据库进行迁移检测,并将所述源数据库中的数据迁移至所述目标数据库。
2.根据权利要求1所述的方法,所述确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库步骤执行之前,还包括:
接收确认指令,基于所述确认指令确定源数据库和目标数据库;
构建所述源数据库中的子分区与所述目标数据库中的目标子分区的映射关系;
根据所述映射关系建立所述源数据库与所述目标数据库间的数据迁移关系。
3.根据权利要求2所述的方法,所述确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库,包括:
接收连接指令,基于所述连接指令确定数据库标识信息,基于所述数据库标识信息确定源数据库;
确定与所述源数据库具有数据迁移关系的至少一个迁移数据库;
基于所述连接指令在所述至少一个迁移数据库中确定目标数据库。
4.根据权利要求1所述的方法,所述将所述源数据库中的数据迁移至所述目标数据库,包括:
获取所述源数据库的待迁移子分区中存储的源数据;
确定所述源数据对应的编码信息;
根据所述编码信息将所述源数据迁移至所述目标数据库。
5.根据权利要求1所述的方法,所述根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务,包括:
读取所述源数据库中源分区的源分区信息,以及所述目标数据库中目标分区的目标分区信息;
基于所述源分区信息和所述目标分区信息建立所述源分区与所述目标分区的迁移链路;
基于所述迁移链路建立所述目标分区与所述源分区对应的子数据处理任务,并基于所述子数据处理任务建立父数据处理任务。
6.根据权利要求1所述的方法,所述根据所述数据处理任务,对所述源数据库与所述目标数据库进行迁移检测,包括:
通过执行所述数据处理任务中的父数据处理任务,对所述源数据库与所述目标数据库进行迁移检测;
通过执行所述数据处理任务中的子数据处理任务,对所述目标数据库中的目标分区和所述源数据库中的源分区进行迁移检测。
7.根据权利要求6所述的方法,所述对所述源数据库与所述目标数据库进行迁移检测,包括:
对所述源数据库与所述目标数据库进行全局连接检测、全局权限检测和/或全局配置信息检测;
相应的,所述对所述目标分区与所述源分区进行迁移检测,包括:
对所述目标分区与所述源分区进行连接检测、权限检测和/或配置信息检测。
8.根据权利要求1所述的方法,所述确定源数据库以及与所述源数据库具有数据迁移关系的目标数据库步骤执行之后,还包括:
建立数据库检测任务,根据所述数据库检测任务对所述源数据库与所述目标数据库进行数据库检测;
在所述数据库检测通过的情况下,执行步骤根据所述源数据库与所述目标数据库间的数据迁移关系,建立数据处理任务。
9.根据权利要求5-7任意一项所述的方法,所述将所述源数据库中的数据迁移至所述目标数据库,包括:
确定与所述子数据处理任务对应的时间节点;
将所述源数据库中在所述时间节点前存储的数据,按照全量迁移策略迁移至所述目标数据库;
将所述源数据库中在所述时间节点后存储的数据,按照增量迁移策略迁移至所述目标数据库。
10.根据权利要求9所述的方法,所述将所述源数据库中在所述时间节点前存储的数据,按照全量迁移策略迁移至所述目标数据库,包括:
确定所述源数据库中待迁移的第一源分区;
将所述待迁移的第一源分区中的数据表划分为至少两组子数据表,并为每组子数据表分配线程;
采用多线程并发处理策略将所述待迁移的第一源分区中已分配线程的每组子数据表迁移至目标数据库的第一目标分区。
11.根据权利要求9所述的方法,所述将所述源数据库中在所述时间节点后存储的数据,按照增量迁移策略迁移至所述目标数据库,包括:
读取所述源数据库中第二源分区的日志文件;
基于所述日志文件确定存储于所述源数据库中第二源分区的增量数据;
将所述增量数据迁移至对应所述目标数据库的第二目标分区。
12.根据权利要求1所述的方法,所述将所述源数据库中的数据迁移至所述目标数据库,包括:
确定所述源数据库中的待处理源分区;
按照全量迁移策略和/或增量迁移策略将所述待处理源分区中存储的数据迁移至所述目标数据库中的迁移分区。
13.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至12任意一项所述数据迁移方法的步骤。
14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至12任意一项所述数据迁移方法的步骤。
CN202210073839.2A 2022-01-21 2022-01-21 数据迁移方法及装置 Active CN114116681B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210073839.2A CN114116681B (zh) 2022-01-21 2022-01-21 数据迁移方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210073839.2A CN114116681B (zh) 2022-01-21 2022-01-21 数据迁移方法及装置

Publications (2)

Publication Number Publication Date
CN114116681A true CN114116681A (zh) 2022-03-01
CN114116681B CN114116681B (zh) 2022-07-15

Family

ID=80361107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210073839.2A Active CN114116681B (zh) 2022-01-21 2022-01-21 数据迁移方法及装置

Country Status (1)

Country Link
CN (1) CN114116681B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077401A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 用于数据库的数据迁移装置和数据迁移方法
CN105335448A (zh) * 2014-08-15 2016-02-17 中国银联股份有限公司 基于分布式环境的数据存储及处理系统
US20190197174A1 (en) * 2017-12-22 2019-06-27 Warevalley Co., Ltd. Method and system for replicating data to heterogeneous database and detecting synchronization error of heterogeneous database through sql packet analysis
CN110413595A (zh) * 2019-06-28 2019-11-05 万翼科技有限公司 一种应用于分布式数据库的数据迁移方法和相关装置
CN111723079A (zh) * 2020-06-28 2020-09-29 深圳壹账通智能科技有限公司 数据迁移方法、装置、计算机设备及存储介质
CN112434087A (zh) * 2020-12-08 2021-03-02 中国人寿保险股份有限公司 一种跨系统数据比对方法、装置、电子设备及存储介质
CN113297166A (zh) * 2020-07-27 2021-08-24 阿里巴巴集团控股有限公司 数据处理系统、方法以及装置
CN113342783A (zh) * 2021-06-30 2021-09-03 招商局金融科技有限公司 数据迁移方法、装置、计算机设备及存储介质
CN113792024A (zh) * 2021-03-02 2021-12-14 北京沃东天骏信息技术有限公司 用于迁移数据的方法、装置、设备以及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077401A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 用于数据库的数据迁移装置和数据迁移方法
CN105335448A (zh) * 2014-08-15 2016-02-17 中国银联股份有限公司 基于分布式环境的数据存储及处理系统
US20190197174A1 (en) * 2017-12-22 2019-06-27 Warevalley Co., Ltd. Method and system for replicating data to heterogeneous database and detecting synchronization error of heterogeneous database through sql packet analysis
CN110413595A (zh) * 2019-06-28 2019-11-05 万翼科技有限公司 一种应用于分布式数据库的数据迁移方法和相关装置
CN111723079A (zh) * 2020-06-28 2020-09-29 深圳壹账通智能科技有限公司 数据迁移方法、装置、计算机设备及存储介质
CN113297166A (zh) * 2020-07-27 2021-08-24 阿里巴巴集团控股有限公司 数据处理系统、方法以及装置
CN112434087A (zh) * 2020-12-08 2021-03-02 中国人寿保险股份有限公司 一种跨系统数据比对方法、装置、电子设备及存储介质
CN113792024A (zh) * 2021-03-02 2021-12-14 北京沃东天骏信息技术有限公司 用于迁移数据的方法、装置、设备以及存储介质
CN113342783A (zh) * 2021-06-30 2021-09-03 招商局金融科技有限公司 数据迁移方法、装置、计算机设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
D. DRAHEIM ET AL.: ""The schema evolution and data migration framework of the environmental mass database IMIS"", 《INTERNATIONAL WORKING CONFERENCE ON SCIENTIFIC AND STATISTICAL DATABASE MANAGEMENT》 *
教雪娅: ""多数据库环境下数据迁移技术的研究与应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Also Published As

Publication number Publication date
CN114116681B (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
CN108664496B (zh) 数据迁移方法及装置
CN111475483B (zh) 数据库迁移方法、装置及计算设备
CN102402583B (zh) 数据库应用的真实负载调节
CN105205154B (zh) 数据迁移方法以及装置
CN111212111B (zh) 对象存储服务管理方法及电子设备
CN111209090B (zh) 一种云平台中虚拟机的创建方法、组件及服务器
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
CN113297159B (zh) 数据存储方法以及装置
CN112559525B (zh) 数据检查系统、方法、装置和服务器
EP3349416B1 (en) Relationship chain processing method and system, and storage medium
CN114116681B (zh) 数据迁移方法及装置
CN114415977B (zh) 访问存储池的方法以及分布式存储系统
CN115525717A (zh) 一种数据同步处理方法及装置
CN115587141A (zh) 一种数据库同步方法和装置
CN115242787A (zh) 消息处理系统及方法
CN115277853A (zh) 基于边缘云的数据处理方法及装置
CN113760822A (zh) 基于hdfs的分布式智慧校园文件管理系统优化方法及装置
CN111324368B (zh) 一种数据共享方法及服务器
CN116467156A (zh) 联调测试方法、装置、存储介质及电子设备
CN114625474A (zh) 容器迁移方法、装置、电子设备及存储介质
CN111241437B (zh) 数据处理方法、装置、服务端以及存储介质
CN109101187B (zh) 一种进行数据重构的方法和装置
CN115550458A (zh) 一种日志处理方法和相关装置
CN116483552A (zh) 一种副本数量的确定方法、装置、设备及存储介质
CN115878264A (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
CB02 Change of applicant information

Address after: Room 554, 5 / F, building 3, 969 Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant