CN114281798A - 异构数据库的数据迁移方法、设备及计算机可读介质 - Google Patents
异构数据库的数据迁移方法、设备及计算机可读介质 Download PDFInfo
- Publication number
- CN114281798A CN114281798A CN202111508247.0A CN202111508247A CN114281798A CN 114281798 A CN114281798 A CN 114281798A CN 202111508247 A CN202111508247 A CN 202111508247A CN 114281798 A CN114281798 A CN 114281798A
- Authority
- CN
- China
- Prior art keywords
- migration
- data
- database
- migrated
- process table
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种异构数据库的数据迁移方法、设备及计算机可读介质,该方案首先可以根据迁出数据库的迁出数据表结构,在迁入数据库上定义对应的迁入数据表结构,并确定迁移对象以及所述迁移对象在数据迁移过程中对应的数据处理方法,然后初始化本次迁移任务的迁移过程表,将迁移对象从所述迁出数据库迁移至迁入数据库,并更新所述迁移过程表中的迁移进度信息。由于在整个迁移过程中,仅需要通过少量的配置来创建数据表结构、确定迁移对象以及对应的数据处理方法之后,即可自动化地实现异构数据库之间的数据迁移,相较于人工迁移的方式更加高效。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种异构数据库的数据迁移方法、设备及计算机可读介质。
背景技术
在企业信息系统运行过程中,有的时候对于底层的存储方式根据业务调整有变化,就涉及到数据在不同存储介质之间的迁移。现有的数据迁移方案一般都是在同构数据库之间进行的,例如在关系型数据库和关系型数据库之间数据进行迁移,以mysql数据库为例,通过mysql数据库本身的数据复制原理进行迁移,以binlog这种中继数据日志文件,在新数据库中使用mysql的备份还原机制,建立新数据库与旧数据库之间的复制关系,再通过binlog文件进行增量的数据恢复,直到数据保持一致,由此完成数据从旧数据库至新数据库之间的迁移。
但是在实际场景中,还存在异构数据库之间的数据迁移需求。例如,企业内部由于版本升级的原因,需要从原来的influxdb数据库中把数据迁移到mysql数据库中,由于influxdb数据库是一种时序型数据库,两者之间数据存储结构的不同,没有高效的数据迁移方案,大多数时候时不允许数据迁移。在数据量较少的情况下,一般可以通过人工的方式去实现influxdb数据库至mysql数据库之间的数据迁移,但是当数据量较大时,人工的方式将难以实现。
申请内容
本申请的一个目的是提供一种异构数据库的数据迁移方法、设备及计算机可读介质,用以解决现有技术没有高效的异构数据库之间的数据迁移方案的问题。
为实现上述目的,本申请提供了一种异构数据库的数据迁移方法,所述方法包括:
根据迁出数据库的迁出数据表结构,在迁入数据库上定义对应的迁入数据表结构,并确定迁移对象以及所述迁移对象在数据迁移过程中对应的数据处理方法;
初始化本次迁移任务的迁移过程表,所述迁移过程表用于记录迁移对象的迁移进度信息;
将迁移对象从所述迁出数据库迁移至迁入数据库,并更新所述迁移过程表中的迁移进度信息,其中,在数据迁移过程中迁移对象根据所述数据处理方法进行相应的数据处理。
进一步地,在进行数据迁移之前,根据迁移对象对迁入数据库进行容量检查。
进一步地,初始化本次迁移任务的迁移过程表,包括:
判断是否已存在迁移过程表;
若不存在迁移过程表,创建迁移过程中;若已存在迁移过程表,获取所述迁移过程表。
进一步地,所述迁出数据库为时序型数据库,所述迁入数据库为非时序型数据库,所述迁移进度信息至少包括以下内容:
距离当前时间最近的数据记录的时间;
距离当前时间最远的数据记录的时间;
最近一条已经成功迁移的数据记录的时间;
最近一条已经成功迁移的数据记录的内容;
迁移完成状态。
进一步地,所述迁移过程表存储于迁入数据库中。
进一步地,将迁移对象从所述迁出数据库迁移至迁入数据库,包括:
根据迁移过程表中的迁移进度信息,过滤已完成数据迁移的迁移对象;
根据已完成数据迁移的迁移对象,确定迁移位点;
根据迁移位点,将未完成数据迁移的迁移对象从所述迁出数据库迁移至迁入数据库。
进一步地,所述方法还包括:
在符合触发条件时,根据所述迁移过程表中的迁移进度信息,对迁入数据库进行数据回滚处理,清除所述迁入数据库中已完成数据迁移的迁移对象。
进一步地,将迁移对象从所述迁出数据库迁移至迁入数据库,并更新所述迁移过程表中的迁移进度信息之后,还包括:
对迁移结果进行数据一致性检查;
若通过检查,确认完成数据迁移;若未通过检查,对迁入数据库进行数据回滚处理,清除所述迁入数据库中已完成数据迁移的迁移对象。
基于本申请的另一方面,还提供了一种异构数据库的数据迁移设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行所述的异构数据库的数据迁移方法。
本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现所述的异构数据库的数据迁移方法。
与现有技术相比,本申请提供了一种异构数据库的数据迁移方案,该方案首先可以根据迁出数据库的迁出数据表结构,在迁入数据库上定义对应的迁入数据表结构,并确定迁移对象以及所述迁移对象在数据迁移过程中对应的数据处理方法,然后初始化本次迁移任务的迁移过程表,将迁移对象从所述迁出数据库迁移至迁入数据库,并更新所述迁移过程表中的迁移进度信息。由于在整个迁移过程中,仅需要通过少量的配置来创建数据表结构、确定迁移对象以及对应的数据处理方法之后,即可自动化地实现异构数据库之间的数据迁移,相较于人工迁移的方式更加高效。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的一种异构数据库的数据迁移方法的处理流程图;
图2为采用本申请实施例的方案实现从influxdb数据库向mysql数据库迁移数据的处理流程图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请的一些实施例提供了一种异构数据库的数据迁移方法,该方法首先可以根据迁出数据库的迁出数据表结构,在迁入数据库上定义对应的迁入数据表结构,并确定迁移对象以及所述迁移对象在数据迁移过程中对应的数据处理方法,然后初始化本次迁移任务的迁移过程表,将迁移对象从所述迁出数据库迁移至迁入数据库,并更新所述迁移过程表中的迁移进度信息。由于在整个迁移过程中,仅需要通过少量的配置来创建数据表结构、确定迁移对象以及对应的数据处理方法之后,即可自动化地实现异构数据库之间的数据迁移,相较于人工迁移的方式更加高效。
在实际场景中,该方法的执行主体可以是用户设备、网络设备或用户设备与网络设备通过网络相集成所构成的设备,或者也可以是运行于上述设备的应用程序。所述用户设备包括但不限于计算机、手机、平板电脑等各类终端设备;所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。例如,在本申请的一些实施例中,该方案可以实现为可安装于上述设备并运行以执行相应处理过程的数据迁移工具,该数据迁移工具可以提供人机交互界面,以获取用户输入的与数据迁移相关的配置信息、指令等,也可以通过该人机交互界面向用户展示与迁移过程相关的信息,如迁移进度、迁移结果等。
图1示出了本申请实施例提供的一种异构数据库的数据迁移方法的处理流程,至少包括以下的处理步骤:
步骤S101,根据迁出数据库的迁出数据表结构,在迁入数据库上定义对应的迁入数据表结构,并确定迁移对象以及所述迁移对象在数据迁移过程中对应的数据处理方法。
迁出数据库和迁入数据库是数据迁移的两个数据库,其中迁出数据库用于提供需要迁移的数据,而迁入数据库则会写入迁移的数据。由于本本申请的方案是应用于异构数据库之间的数据迁移场景,因此迁出数据库与迁入数据库的数据存储结构的不同,即两者具有不同的数据表结构。因此,在进行数据迁移之前,可以根据数据表结构的不同之处,先对迁入数据库中的数据表结构进行配置,即根据迁出数据库的迁出数据表结构,在迁入数据库上定义对应的迁入数据表结构。
本申请实施例中,以influxdb数据库作为迁出数据库的场景为例,若迁出数据表结构的字段如下所示:
name:audits
time apiName clientBrowser clientIp durationoperatoroperatorAccountUuid requestDump requestUuid resourceTyperesourceUuidresponseDump responseUuid sessionUuid success
其中,数据表名称为audits,其余内容为该数据表的字段名称。当需要将数据从该influxdb数据库迁移至mysql数据库时,需要在迁入数据库(即mysql数据库)定义对应的迁入数据表结构。其中,迁入数据表结构中的字段与迁出数据表结构中的字段可能相同,也可能不同,可以根据实际场景的需求确定。例如在本实施例中,influxdb数据库的迁出数据表结构中的time字段对应mysql数据库的迁入数据表结构中的createTime字段,apiName字段相同,clientBrowser等其他字段基本保持一致。以下是在mysql数据库中数据表AuditsVO时的具体内容:
CREATE TABLE`AuditsVO`(
`id`bigint(20)unsigned NOT NULL AUTO_INCREMENT,
`createTime`bigint(20)NOT NULL,
`apiName`varchar(2048)NOT NULL,
`clientBrowser`varchar(64)NOT NULL,
`clientIp`varchar(64)NOT NULL,
`duration`int(10)unsigned NOT NULL,
`error`text,
`operator`varchar(256)DEFAULT NULL,
`requestDump`text,
`resourceType`varchar(256)NOT NULL,
`resourceUuid`varchar(32)DEFAULT NULL,
`requestUuid`varchar(32)DEFAULT NULL,
`responseDump`text,
`success`tinyint(1)unsigned NOT NULL DEFAULT'0'COMMENT'api callsuccess or failed',
`operatorAccountUuid`varchar(32)DEFAULT NULL,
PRIMARY KEY(`id`),
UNIQUE KEY`id`(`id`),
KEY`idxCreateTime`(`createTime`),
KEY`idxResourceUuid`(`resourceUuid`),
KEY`idxSuccess`(`success`),
KEY`idxOperatorAccountUuid`(`operatorAccountUuid`),
KEY`idxRequestUuid`(`requestUuid`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
该数据表的结构对应于influxdb数据库中数据表audits的结构,与迁出的influxdb数据表中的数据表结构定义相似,具体可以根据实际场景的需求选择要迁移的字段来定义对应的mysql数据库的数据表结构,可以迁移部分或者全部迁移。
此外,除了定义数据表结构之外,还需要对迁移对象进行配置,以确定迁移对象以及所述迁移对象在数据迁移过程中对应的数据处理方法。其中,所述迁移对象是指需要进行迁移的具体数据对象,例如可以是某一数据表中的所有字段或者部分字段的内容。而迁移对象在数据迁移过程中对应的数据处理方法是指在迁移过程中需要对特定迁移对象额外数据处理的具体方式,例如根据需要插入语句,对某一些字段的内容进行特定的运算等。以下示出了本申请实施例中对迁移对象进行配置,以确定迁移对象以及所述迁移对象在数据迁移过程中对应的数据处理方法时的具体方式及其注释内容:
其中,在从influxdb数据库向mysql数据库迁移数据的过程中,可以定义两个process_influxdb_data和process_mysql_data两个方法作为在数据迁移过程中对influxdb数据库中迁移对象的数据处理方法,使得迁移过程中可以这些迁移对象对应的字段做数据处理。
步骤S102,初始化本次迁移任务的迁移过程表。在完成迁移的前期配置之后,即可进行迁移过程表的初始化,所述迁移过程表用于记录迁移对象的迁移进度信息,能够表示本次数据迁移的当前进度,可以用于迁移中断后的继续迁移、终止迁移或迁移失败后的数据回滚等,防止在迁入数据库中出现冗余数据或脏数据。
在初始化本次迁移任务的迁移过程表时,存在两种情况,一种是迁移任务的迁移过程表不存在,表示当前是首次执行该迁移任务,之前不存在已经中断的迁移任务,而另一种则是迁移任务的迁移过程表已存在,表示当前并非是首次执行该迁移任务,之前存在中断的迁移任务,此时可以读取该已存在的迁移进度表,继续进行未完成的迁移任务。由此,在本申请的一些实施例中,初始化本次迁移任务的迁移过程表时,可以先判断是否已存在迁移过程表,若不存在迁移过程表,创建迁移过程中;若已存在迁移过程表,获取所述迁移过程表。
当本申请实施例的方案应用于由时序型数据库向非时序型数据库之间的数据迁移场景时,所述迁出数据库为时序型数据库,所述迁入数据库为非时序型数据库,此时所述迁移进度信息至少包括以下的内容:距离当前时间最近的数据记录的时间、距离当前时间最远的数据记录的时间、最近一条已经成功迁移的数据记录的时间、最近一条已经成功迁移的数据记录的内容和迁移完成状态。其中,距离当前时间最近的数据记录的时间和距离当前时间最远的数据记录的时间用于确定本次数据迁移任务的迁移对象的数据起止范围,最近一条已经成功迁移的数据记录的时间和最近一条已经成功迁移的数据记录的内容用于确定当前实际已完成迁移的位点和具体内容,迁移完成状态用于确定本次数据迁移任务是否完成。
在实际场景中,所述迁移过程表中还可以包括迁出数据表的名称、迁移过程中的错误信息等。如下示出了本申请实施例中的一个迁移过程表的具体内容:
其中,tableName为迁出数据表的名称,maxCreateTime为距离当前时间最近的数据记录的时间,minCreateTime为距离当前时间最远的数据记录的时间,表示本次的迁移对象为数据表中时间在2021-10-25T13:27:58.727Z至2021-10-25T13:32:05.539Z之间的数据记录,lastMigrateDataCreateTime为最近一条已经成功迁移的数据记录的时间,表示最近完成迁移的数据记录为2021-10-25T13:32:05.539Z的数据记录,lastMigrateDataRecord为最近一条已经成功迁移的数据记录的内容,表示最近完成迁移的数据记录的具体内容,migrateStatus为迁移完成状态,done表示已完成,error为迁移过程中的错误信息,NULL表示本次迁移过程中没有错误。
在本申请的一些实施例中,所述迁移过程表存储于迁入数据库中,由此在初始化迁移过程表时,若需要创建迁移过程表,则会在对应的迁入数据库中创建迁移过程表。在此本领域技术人员应当理解,上述迁移过程表创建和存储的具体位置仅为举例,现有或今后出现的基于类似原理的其它形式如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。理论上迁移过程表也可以创建并存储于第三方存储设备中,但是从降低方案复杂度角度上而言,本申请实施例中将迁移过程表存储于迁入数据库中,能够避免引入额外的存储设备来记录和跟踪迁移数据的进度信息,在方案实现时能够更加便捷。
步骤S103,将迁移对象从所述迁出数据库迁移至迁入数据库,并更新所述迁移过程表中的迁移进度信息。由此,当前迁移过程中的迁移进度能够被实时写入到迁移过程表中,用以更新其中的迁移进度信息,即使本次迁移任务因故中断,重新执行时也可以基于已经更新的迁移过程表继续执行,跳过已经完成迁移的数据,避免出现重复迁移而出现冗余数据。
此外,由于已经定义过迁移对象在数据迁移过程中对应的数据处理方法,因此,在数据迁移过程中,相关的迁移对象可以根据所述数据处理方法进行相应的数据处理,例如某些字段的数据在写入至迁入数据表中时先进行一定的运算或者是改变数据类型等,以适应迁入数据库的数据结构。
在实际场景中,在将迁移对象从所述迁出数据库迁移至迁入数据库时,可以基于迁移过程中先对迁移的进度进行检查,由此可以根据迁移过程表中的迁移进度信息,过滤已完成数据迁移的迁移对象,然后根据已完成数据迁移的迁移对象,确定迁移位点,并根据迁移位点,将未完成数据迁移的迁移对象从所述迁出数据库迁移至迁入数据库。
以前述的数据表audits的迁移过程表中的内容为例,每一个表对象在迁移的时候都会新增一条相关的数据记录,记录要迁移的influxdb数据库中数据的起止时间范围(maxCreateTime和minCreateTime,因为influxdb是时序型数据库,起止时间范围即为迁移对象的准确数据范围),以及对应的influxdb表名称。迁移任务开始执行后,会在每批次数据迁移到mysql数据库的数据表之后,更新lastMigrateDataCreateTime以及lastMigrateDataRecord。当迁移任务发生中断,并在之后再次开始执行该迁移任务的时候,首先判断是否已经存在迁移过程表,并且加载迁移过程表中的迁移进度信息,由此会通过迁移进度信息中的起止时间范围以及最近一条已经成功迁移的数据记录的时间,跳过已经完成迁移的数据,并确定后续需要继续迁移的数据,防止出现迁移数据冗余的情况发生。
在本申请的一些实施例中,在将迁移对象从所述迁出数据库迁移至迁入数据库,并更新所述迁移过程表中的迁移进度信息之后,还可以对迁移结果进行数据一致性检查,若通过检查,确认完成数据迁移;若未通过检查,对迁入数据库进行数据回滚处理,清除所述迁入数据库中已完成数据迁移的迁移对象。
其中,数据一致性的检查可以包括对迁入数据库中的数据做时间起止范围维度的数据检查,以从influxdb数据库向mysql数据库迁移数据的场景为例,可以将基于迁移对象在mysql数据库中起止时间范围内的数据记录与该迁移对象在influxdb数据库中起止时间范围内的数据记录进行比较,若两者能够对应,则表示通过检查。此外,数据一致性的检查还可以包括通过迁移对象中最近一条已经成功迁移的数据记录的内容(即迁移进度信息中lastMigrateDataRecord对应的内容)在influxdb数据库和mysql数据库中是否对应,来确定是否能够通过一致性检查。
进行数据迁移的过程中,在符合触发条件时,可以根据所述迁移过程表中的迁移进度信息,对迁入数据库进行数据回滚处理,从而清除所述迁入数据库中已完成数据迁移的迁移对象。其中,所述触发条件可以根据实际场景的需求设定,例如可以是接收到用户输入的终止迁移任务的指令,或者是检测到迁移失败等,此时迁入数据库中的内容需要恢复到进行数据迁移之前的状态,以避免出现脏数据。由此,可以使用数据回滚的功能,通过迁移过程表中记录的迁移进度信息,可以获取到最近一条已经成功迁移的数据记录的时间lastMigrateDataCreateTime,通过这一信息可以把嵌入数据库中已经迁移完成的数据清除掉,即对这些数据做回滚处理,以恢复到未进行迁移之前的初始状态,从而消除脏数据。
此外,在进行数据迁移之前,还可以根据迁移对象对迁入数据库进行容量检查,以避免数据迁移过程中迁入数据库的容量不足导致迁移失败的情况发生,提升迁移方案的可靠性。以前述从influxdb数据库向mysql数据库迁移数据的场景为例,进行容量检查时,可以根据需要迁出数据的influxdb数据库的数据表的数据量,来检查迁入的mysql数据库的剩余容量,若剩余容量不足以存储需要迁出的数据量以及迁移过程中产生的相关数据,则终止本次数据迁移,可以提示用户当前容量不足,若剩余容量足够存储需要迁出的数据量以及迁移过程中产生的相关数据,继续本次数据迁移。
图2示出了采用本申请实施例的方案实现从influxdb数据库向mysql数据库迁移数据的处理流程,至少包括以下的处理步骤:
步骤S201,定义mysql数据库的数据表结构。
步骤S202,对mysql数据库进行容量检查。
步骤S203,配置迁移对象,以确定迁移对象以及所述迁移对象在数据迁移过程中对应的数据处理方法。
步骤S204,初始化迁移过程表。
步骤S205,根据迁移过程表的迁移进度信息检查迁移任务情况。若迁移任务已完成,执行步骤S210,若迁移任务未完成,执行步骤S206。若获取到取消数据迁移任务的指令,执行步骤S212。
步骤S206,过滤已完成迁移的数据。
步骤S207,设置开始迁移的位点。
步骤S208,从设置的位点开始迁移数据。
步骤S209,展示迁移进度,更新迁移进度信息。
步骤S210,检查迁移结果确定数据迁移是否成功。若成功,执行步骤S211,若失败,执行步骤S212。
步骤S211,对完成迁移的数据进行一致性检查。
步骤S212,回滚数据。
基于同一发明构思,本申请实施例中还提供了一种异构数据库的数据迁移设备,该设备对应的方法是前述实施例中的异构数据库的数据迁移方法,并且其解决问题的原理与该方法相似。本申请实施例提供的异构数据库的数据迁移设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备实现前述本申请的多个实施例的方法和/或技术方案。
特别地,本申请实施例中的方法和/或实施例可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在该计算机程序被处理单元执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图或框图示出了按照本申请各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的针对硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个计算机程序指令,所述计算机程序指令可被处理器执行以实现前述本申请的多个实施例的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。步骤所对应的序号的数字顺序,并不表示任何特定执行顺序,各个步骤在符合执行逻辑的前提下可以采用任意的顺序组合执行。
Claims (10)
1.一种异构数据库的数据迁移方法,其特征在于,所述方法包括:
根据迁出数据库的迁出数据表结构,在迁入数据库上定义对应的迁入数据表结构,并确定迁移对象以及所述迁移对象在数据迁移过程中对应的数据处理方法;
初始化本次迁移任务的迁移过程表,所述迁移过程表用于记录迁移对象的迁移进度信息;
将迁移对象从所述迁出数据库迁移至迁入数据库,并更新所述迁移过程表中的迁移进度信息,其中,在数据迁移过程中迁移对象根据所述数据处理方法进行相应的数据处理。
2.根据权利要求1所述的方法,其特征在于,在进行数据迁移之前,根据迁移对象对迁入数据库进行容量检查。
3.根据权利要求1所述的方法,其特征在于,初始化本次迁移任务的迁移过程表,包括:
判断是否已存在迁移过程表;
若不存在迁移过程表,创建迁移过程中;若已存在迁移过程表,获取所述迁移过程表。
4.根据权利要求1所述的方法,其特征在于,所述迁出数据库为时序型数据库,所述迁入数据库为非时序型数据库,所述迁移进度信息至少包括以下内容:
距离当前时间最近的数据记录的时间;
距离当前时间最远的数据记录的时间;
最近一条已经成功迁移的数据记录的时间;
最近一条已经成功迁移的数据记录的内容;
迁移完成状态。
5.根据权利要求1所述的方法,其特征在于,所述迁移过程表存储于迁入数据库中。
6.根据权利要求1所述的方法,其特征在于,将迁移对象从所述迁出数据库迁移至迁入数据库,包括:
根据迁移过程表中的迁移进度信息,过滤已完成数据迁移的迁移对象;
根据已完成数据迁移的迁移对象,确定迁移位点;
根据迁移位点,将未完成数据迁移的迁移对象从所述迁出数据库迁移至迁入数据库。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在符合触发条件时,根据所述迁移过程表中的迁移进度信息,对迁入数据库进行数据回滚处理,清除所述迁入数据库中已完成数据迁移的迁移对象。
8.根据权利要求1所述的方法,其特征在于,将迁移对象从所述迁出数据库迁移至迁入数据库,并更新所述迁移过程表中的迁移进度信息之后,还包括:
对迁移结果进行数据一致性检查;
若通过检查,确认完成数据迁移;若未通过检查,对迁入数据库进行数据回滚处理,清除所述迁入数据库中已完成数据迁移的迁移对象。
9.一种异构数据库的数据迁移设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行权利要求1至8中任一项所述的方法。
10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111508247.0A CN114281798A (zh) | 2021-12-10 | 2021-12-10 | 异构数据库的数据迁移方法、设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111508247.0A CN114281798A (zh) | 2021-12-10 | 2021-12-10 | 异构数据库的数据迁移方法、设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281798A true CN114281798A (zh) | 2022-04-05 |
Family
ID=80871678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111508247.0A Pending CN114281798A (zh) | 2021-12-10 | 2021-12-10 | 异构数据库的数据迁移方法、设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281798A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155759A (zh) * | 2023-10-27 | 2023-12-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
-
2021
- 2021-12-10 CN CN202111508247.0A patent/CN114281798A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155759A (zh) * | 2023-10-27 | 2023-12-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN117155759B (zh) * | 2023-10-27 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8856472B2 (en) | Restore in cascaded copy environment | |
US9298391B2 (en) | Application programming interfaces for data synchronization with online storage systems | |
US9417972B2 (en) | Cascade ordering | |
KR102015673B1 (ko) | 테넌트 이동에 걸친 테넌트 데이터의 복구 | |
CN104216793B (zh) | 应用程序备份、恢复的方法及设备 | |
US20140279919A1 (en) | Hierarchical system manager rollback | |
CN114925084B (zh) | 分布式事务处理方法、系统、设备及可读存储介质 | |
CN108874441B (zh) | 一种板卡配置方法、装置、服务器和存储介质 | |
CN108572888B (zh) | 磁盘快照创建方法和磁盘快照创建装置 | |
CN114281798A (zh) | 异构数据库的数据迁移方法、设备及计算机可读介质 | |
CN114138838A (zh) | 数据处理方法及装置、设备和介质 | |
CN112231288A (zh) | 日志存储方法和装置、介质 | |
US7890793B1 (en) | Techniques for restoring file system resources | |
CN111338751B (zh) | 同ceph集群中数据跨pool迁移方法及装置 | |
US10228879B1 (en) | System and method for backup and restore of offline disks in mainframe computers | |
US8516297B2 (en) | Recovery from medium error on tape on which data and metadata are to be stored by using medium to medium data copy | |
CN115658391A (zh) | 基于QianBase MPP数据库的WAL机制的备份恢复方法 | |
CN115328696A (zh) | 一种数据库中的数据备份方法 | |
CN111984472B (zh) | 一种数据快照方法、装置及相关设备 | |
CN115292092A (zh) | 一种数据回滚方法、装置、设备及其存储介质 | |
CN111858175A (zh) | 一种基于移动存储装置备份云平台数据的方法与设备 | |
US20120150809A1 (en) | Disaster recovery services | |
US11934378B2 (en) | Recording changes to records whilst preserving record immutability | |
CN110389862B (zh) | 一种数据保存方法、装置、设备及存储介质 | |
CN117271221A (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 |