CN105989006A - 数据迁移方法和装置 - Google Patents

数据迁移方法和装置 Download PDF

Info

Publication number
CN105989006A
CN105989006A CN201510041654.3A CN201510041654A CN105989006A CN 105989006 A CN105989006 A CN 105989006A CN 201510041654 A CN201510041654 A CN 201510041654A CN 105989006 A CN105989006 A CN 105989006A
Authority
CN
China
Prior art keywords
data
time
database
tables
target database
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
Application number
CN201510041654.3A
Other languages
English (en)
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.)
Semiconductor Manufacturing International Shanghai Corp
Semiconductor Manufacturing International Corp
Original Assignee
Semiconductor Manufacturing International Shanghai Corp
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 Semiconductor Manufacturing International Shanghai Corp filed Critical Semiconductor Manufacturing International Shanghai Corp
Priority to CN201510041654.3A priority Critical patent/CN105989006A/zh
Publication of CN105989006A publication Critical patent/CN105989006A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据迁移方法和装置。其中,该方法包括:将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库;将从源数据库中抽取的第二数据在第二时间同步到目标数据库;判断第二时间与预设时间的时间差是否大于第一预设阈值;若第二时间与预设时间的时间差不大于第一预设阈值,则暂停应用系统,将源数据库中与第一数据和第二数据不同的第三数据导入目标数据库;若第二时间与预设时间的时间差大于第一预设阈值,则将从数据库中抽取的第二数据在第二时间同步到目标数据库。通过本发明,解决了现有技术中迁移大容量数据库时应用系统停机的时间长的问题,实现了将源数据库中的数据迁移至目标数据库时缩短应用系统停机时间的效果。

Description

数据迁移方法和装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种数据迁移方法和装置。
背景技术
正在使用中的服务器中的数据库存储有大量的数据,在需要进行服务器硬件更新时,需要将服务器中的数据库陆续迁移到新的硬件平台,这样才能得到硬件和操作系统平台长期而稳定的维护支持。
现有的对于数据库跨硬件平台的迁移仅有一种解决方法:导入导出(exp/imp),此解决方法需要将正在使用中的服务器停机,才能进行数据库的迁移,若数据库容量较大(如,300G),通过导入导出的方式需要较长时间(如,对于容量为300G的数据库需要40小时左右)才能完成整个数据库的迁移。
对于需要服务器不间断运行的公司(如,半导体生产公司),服务器停机时间过长会减少公司的产量,延后对客户的产品的交付时间,导致公司的业务和信誉都会受到较大的影响。然而根据现有的技术手段,在短时间内进行数据库迁移几乎是不可能完成的任务。
针对现有技术中迁移大容量数据库时应用系统停机的时间长的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种数据迁移方法和装置,以解决现有技术中迁移大容量数据库时应用系统停机的时间长的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种数据迁移方法。
根据本发明的数据迁移方法包括:将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库,其中,第一数据包括记录的半导体器件的属性的数据;将从源数据库中抽取的第二数据在第二时间同步到目标数据库,其中,第二数据为与第一数据不同的记录半导体器件的属性的数据;判断第二时间与预设时间的时间差是否大于第一预设阈值;若第二时间与预设时间的时间差不大于第一预设阈值,则暂停应用系统,将应用系统的源数据库中与第一数据和第二数据不同的第三数据导入目标数据库;若第二时间与预设时间的时间差大于第一预设阈值,则返回执行将从数据库中抽取的第二数据在第二时间同步到目标数据库,其中,应用系统为产生半导体器件的属性的数据的系统。
进一步地,将从数据库中抽取的第二数据在第二时间同步到目标数据库包括:在第二时间与预设时间的时间差大于第二预设阈值时,每隔第一预设时间从源数据库中抽取第二数据;在第二时间与预设时间的时间差不大于第二预设阈值且大于第一预设阈值时,每隔第二预设时间从源数据库中抽取第二数据;从源数据库中抽取第二数据包括:获取上次从源数据库中抽取数据的第三时间;从源数据库中抽取记录时间晚于第三时间的数据,其中,第二预设阈值大于第一预设阈值。
进一步地,在将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库之前,数据迁移方法包括:在应用系统的备份数据库的工作模式为只读模式的情况下,从应用系统的备份数据库中读取第一数据得到第一备份文件,将第一备份文件传输至目标数据库的服务器,其中,源数据库包括备份数据库;将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库包括:将服务器上的第一备份文件中的第一数据导入目标数据库;在将从源数据库中抽取的第二数据在第二时间同步到目标数据库之前,数据迁移方法包括:从处于只读模式的备份数据库中读取第二数据,生成第二数据的第二备份文件,将第二备份文件传输至目标数据库的服务器;将从源数据库中抽取的第二数据在第二时间同步到目标数据库包括:将服务器上的第二备份文件中的第二数据导入目标数据库;将应用系统的源数据库中与第一数据和第二数据不同的第三数据导入目标数据库包括:从应用系统的生产数据库读取第三数据,得到数据文件;将数据文件导入目标数据库,其中,源数据库包括生产数据库。
进一步地,将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库包括:在关闭第一数据的各个第一数据表的第一约束条件之后,将各个第一数据表导入目标数据库,建立各个第一数据表的第一约束条件;将从源数据库中抽取的第二数据在第二时间同步到目标数据库包括:在关闭第二数据的各个第二数据表的第二约束条件之后,将各个第二数据表导入目标数据库,建立各个第二数据表的第二约束条件;将应用系统的源数据库中与第一数据和第二数据不同的第三数据导入目标数据库包括:在关闭第三数据的各个第三数据表的第三约束条件之后,将各个第三数据表导入目标数据库,建立各个第三数据表的第三约束条件。
进一步地,数据迁移方法还包括:在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库的过程中,关闭目标数据库的归档模式,并将目标数据库的实时日志组的数据容量设置为预设容量,以及将实时日志组的数量设置为预设数量;在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库之前,数据迁移方法还包括:去掉各个第一数据表、各个第二数据表以及各个第三数据表的索引;在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库之后,数据迁移方法还包括:在预设空间内建立导入目标数据库的数据的索引。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种数据迁移装置。
根据本发明的数据迁移装置包括:第一导入模块,用于将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库,其中,第一数据包括记录的半导体器件的属性的数据;第一同步模块,用于将从源数据库中抽取的第二数据在第二时间同步到目标数据库,其中,第二数据为与第一数据不同的记录半导体器件的属性的数据;判断模块,用于判断第二时间与预设时间的时间差是否大于第一预设阈值;第二导入模块,用于在第二时间与预设时间的时间差不大于第一预设阈值的情况下,暂停应用系统,将应用系统的源数据库中与第一数据和第二数据不同的第三数据导入目标数据库;第二同步模块,用于在第二时间与预设时间的时间差大于第一预设阈值的情况下,返回执行将从数据库中抽取的第二数据在第二时间同步到目标数据库,其中,应用系统为产生半导体器件的属性的数据的系统。
进一步地,第一同步模块包括:抽取模块,用于在第二时间与预设时间的时间差大于第二预设阈值时,每隔第一预设时间从源数据库中抽取第二数据;抽取模块,还用于在第二时间与预设时间的时间差不大于第二预设阈值且大于第一预设阈值时,每隔第二预设时间从源数据库中抽取第二数据;抽取模块包括:获取模块,用于获取上次从源数据库中抽取数据的第三时间;第三抽取模块,用于从源数据库中抽取记录时间晚于第三时间的数据,其中,第二预设阈值大于第一预设阈值。
进一步地,数据迁移装置包括:第一传输模块,用于在将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库之前,在应用系统的备份数据库的工作模式为只读模式的情况下,从应用系统的备份数据库中读取第一数据得到第一备份文件,将第一备份文件传输至目标数据库的服务器,其中,源数据库包括备份数据库;第一导入模块包括:第一导入子模块,用于将服务器上的第一备份文件中的第一数据导入目标数据库;数据迁移装置还包括:第二传输模块,用于在将从源数据库中抽取的第二数据在第二时间同步到目标数据库之前,从处于只读模式的备份数据库中读取第二数据,生成第二数据的第二备份文件,将第二备份文件传输至目标数据库的服务器;第一同步模块包括:第三导入模块,用于将服务器上的第二备份文件中的第二数据导入目标数据库;第二导入模块包括:读取模块,用于从应用系统的生产数据库读取第三数据,得到数据文件;第二导入子模块,用于将数据文件导入目标数据库,其中,源数据库包括生产数据库。
进一步地,第一导入模块包括:第一建立模块,用于在关闭第一数据的各个第一数据表的第一约束条件之后,将各个第一数据表导入目标数据库,建立各个第一数据表的第一约束条件;第一同步模块包括:第二建立模块,用于在关闭第二数据的各个第二数据表的第二约束条件之后,将各个第二数据表导入目标数据库,建立各个第二数据表的第二约束条件;第二导入模块包括:第三建立模块,用于在关闭第三数据的各个第三数据表的第三约束条件之后,将各个第三数据表导入目标数据库,建立各个第三数据表的第三约束条件。
进一步地,数据迁移装置还包括:设置模块,用于在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库的过程中,关闭目标数据库的归档模式,并将目标数据库的实时日志组的数据容量设置为预设容量,以及将实时日志组的数量设置为预设数量;数据迁移装置还包括:删除模块,用于在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库之前,删除各个第一数据表、各个第二数据表以及各个第三数据表的索引;数据迁移装置还包括:第四建立模块,用于在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库之后,在预设空间内建立导入目标数据库的数据的索引。
采用本发明实施例,在正常使用应用系统的情况下,在第一时间将获取到的源数据库中的第一数据(如历史数据)导入目标数据库之后,在第二时间将抽取到的源数据库中的第二数据(如在历史数据之后产生的增量数据)同步到目标数据库,并判断第二时间与预设时间的时间差是否大于第一预设阈值,若第二时间与预设时间的时间差大于第一预设阈值,则返回执行第二数据的同步操作;若第二时间与预设时间的时间差不大于第一预设阈值,则暂停应用系统并将源数据库中与第一数据和第二数据不同的第三数据(如,在最后一次的第二数据同步之后产生的增量数据)导入目标数据库。通过本发明上述实施例,在正常使用应用系统时,将从源数据库中的半导体器件的属性的数据分多次导入目标数据库,并在执行最后一次的数据导入操作时暂停应用系统,由于最后一次的数据导入操作需要导入的数据量较小,短时间暂停应用系统即可完成数据导入操作,无需停止使用应用系统以将源数据库中的数据完全导入目标数据库,缩短了应用系统停机的时间,解决了现有技术中迁移大容量数据库时应用系统停机的时间长的问题,实现了将源数据库中的数据迁移至目标数据库时缩短应用系统停机时间的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据迁移方法的流程图;
图2是根据本发明实施例的一种可选的数据迁移方法的流程图;
图3是根据本发明实施例的另一种可选的数据迁移方法的原理图;
图4是根据本发明实施例的一种可选的数据导入方法的流程图;以及
图5是根据本发明实施例的数据迁移装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种数据迁移方法。
图1是根据本发明实施例的数据迁移方法的流程图。如图1所示,该数据迁移方法包括如下步骤:
步骤S102,将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库,其中,第一数据包括记录的半导体器件的属性的数据。
步骤S104,将从源数据库中抽取的第二数据在第二时间同步到目标数据库,其中,第二数据为与第一数据不同的记录半导体器件的属性的数据。
步骤S106,判断第二时间与预设时间的时间差是否大于第一预设阈值。
其中,在第二时间与预设时间的时间差不大于第一预设阈值的情况下,执行步骤S108;在第二时间与预设时间的时间差大于第一预设阈值的情况下,返回执行步骤S104。
步骤S108,暂停应用系统,将应用系统的源数据库中与第一数据和第二数据不同的第三数据导入目标数据库,其中,应用系统为产生半导体器件的属性的数据的系统。
采用本发明实施例,在正常使用应用系统的情况下,在第一时间将获取到的源数据库中的第一数据(如历史数据)导入目标数据库之后,在第二时间将抽取到的源数据库中的第二数据(如在历史数据之后产生的增量数据)同步到目标数据库,并判断第二时间与预设时间的时间差是否大于第一预设阈值,若第二时间与预设时间的时间差大于第一预设阈值,则返回执行第二数据的同步操作;若第二时间与预设时间的时间差不大于第一预设阈值,则暂停应用系统并将源数据库中与第一数据和第二数据不同的第三数据(如,在最后一次的第二数据同步之后产生的增量数据)导入目标数据库。通过本发明上述实施例,在正常使用应用系统时,将从源数据库中的半导体器件的属性的数据分多次导入目标数据库,并在执行最后一次的数据导入操作时暂停应用系统,由于最后一次的数据导入操作需要导入的数据量较小,短时间暂停应用系统即可完成数据导入操作,无需停止使用应用系统以将源数据库中的数据完全导入目标数据库,缩短了应用系统停机的时间,解决了现有技术中迁移大容量数据库时应用系统停机的时间长的问题,实现了将源数据库中的数据迁移至目标数据库时缩短应用系统停机时间的效果。
具体地,在正常使用应用系统的情况下,在第一时间将获取到的源数据库中数据量较大的第一数据(如历史数据)导入目标数据库,其中,第一数据的导入是在目标数据库上完成的,不需要停止使用应用系统;在完成第一数据的导入操作之后,将从源数据库中抽取到的第二数据(如在历史数据之后产生的增量数据)在第二时间同步到目标数据库,其中,第二数据的导入也是在目标数据库上完成的,不需要停止使用应用系统,经过多次第二数据的导入操作,目标数据库中存储的数据与源数据库的差会越来越小,并且在每次执行第二数据的导入操作时,判断第二时间与预设时间的时间差是否大于第一预设阈值,若第二时间与预设时间的时间差大于第一预设阈值,则继续执行第二数据的同步操作;若第二时间与预设时间的时间差不大于第一预设阈值,则暂停应用系统(保证应用系统不再产生新数据,源数据库中的数据不再发生数据变化),将源数据库中最新的数据(即上述实施例中的第三数据)导入到目标数据库中,完成源数据库与目标数据库的同步操作。
上述实施例中的第一预设阈值可以为1.5小时或者2小时;预设时间为预先设定的完成源数据库到目标数据库的数据迁移的时间;应用系统产生的半导体器件的属性的数据存储在源数据库中。
根据本发明上述实施例,将从数据库中抽取的第二数据在第二时间同步到目标数据库可以包括:在第二时间与预设时间的时间差大于第二预设阈值时,每隔第一预设时间从源数据库中抽取第二数据;在第二时间与预设时间的时间差不大于第二预设阈值且大于第一预设阈值时,每隔第二预设时间从源数据库中抽取第二数据;从源数据库中抽取第二数据可以包括:获取上次从源数据库中抽取数据的第三时间;从源数据库中抽取记录时间晚于第三时间的数据,其中,第二预设阈值大于第一预设阈值。
具体地,在执行一次第二数据的导入操作之前,判断第二时间与预设时间的时间差是否大于第二预设阈值,若第二时间与预设时间的时间差大于第二预设阈值,则每隔第一预设时间从源数据库中抽取第二数据,并继续执行第二数据的导入操作;若第二时间与预设时间的时间差不大于第二预设阈值且大于第一预设阈值,则每隔第二预设时间从源数据库中抽取第二数据,并继续执行第二数据的导入操作。
在上述的实施例中,获取上次从源数据库中抽取数据的第三时间包括上次从源数据库中抽取第一数据的时间和上次从源数据库中抽取第二数据的时间;上述实施例中的源数据库中的数据的记录时间与产生该数据的产品的时间属性相对应。
进一步地,在从源数据库中抽取第二数据时,首先获取上次从源数据库中抽取数据的第三时间,然后从源数据库中抽取记录时间晚于第三时间的数据,即在抽取第二数据时,抽取上次从源数据库中抽取数据之后产生的新数据。
例如,若待迁移的源数据库对应的应用系统为Odyssey(即晶元良率检测系统),经分析源数据库中总共要导出六十张数据表(大小为300GB),其中三分之二的数据表为配置信息表(除非修改,一般表中的记录数和内容变动很小),三分之一的数据表为业务流水表(即随着时间增长记录在不断增加,该表中保存有半年到一年不等的数据)。配置信息表的特点是数据量很小,可以通过一次数据导入操作导入目标数据库,其所需停机时间大概10分钟,而业务流水表的数据量相当大(都在4GB~80GB之间),需要40小时才能完成数据导入。
在该实施例中,每个业务流水表都有一个栏位“layer_can_index”(该栏位代表某批货品某片晶圆某一涂层的某个时间点,本发明上述实施例中的记录时间和第三时间均可以从该栏位获取),此栏位是数字型,且随时间的流逝不断增加。
根据本发明上述实施例,在第一次执行数据导入操作时将源数据库中的第一数据(如历史数据)导入目标数据库,该导入操作是在目标数据库上完成的,耗时40个小时,但无需应用系统停机即可完成,在此导入操作完成时,记录源数据库中最大的layer_can_index值(即max_index);在完成第一数据的导入之后,需要进行多次增量数据(即上述实施例中第二数据)的数据同步,即从源数据库中抽取从上次数据导入以后增加的记录,然后同步到目标数据库中。
具体地,抽取第二数据的条件为:栏位layer_can_index值大于上次数据导入操作记录的最大值max_index的数据;在执行第二数据的导入操作时,若第二时间与预设时间(如,2014年12月12日08:00)的时间差大于第二预设阈值(如,48小时),每隔第一预设时间(如,4小时)进行一次第二数据的同步;在第二时间与预设时间的时间差不大于第二预设阈值且大于第一预设阈值(如,1.5小时)时,每隔第二预设时间(如,1小时)进行一次第二数据的同步,以减少最后停机同步第三数据所需的时间。
进一步地,在第二时间与预设时间的时间差不大于第一预设阈值的情况下,暂停应用系统,以防止源数据库中的数据发生变化,然后从源数据库中抽取最新的第三数据(即抽取栏位layer_can_index值大于上次第二数据导入操作记录的最大值max_index的数据)导入目标数据库。在该实施例中,应用系统的停机时间相当短,仅用25分钟就可完成所有数据的数据同步(采用现有技术需停机40小时才能完成所有数据的数据同步),大大缩短了迁移大容量数据库时应用系统停机的时间。
下面结合表1详细介绍本发明上述实施例。
表1
抽取次数 抽取的数据 抽取开始时间 抽取完成时间
1 A t1 t2
2 B1 t3 t4
3 B2 t5 t6
…… …… …… ……
n-1 Bn-2 t2n-3 t2n-2
n C t2n-1 t2n
如表1所示,为完成源数据库至目标数据库的数据迁移,共执行了n次数据抽取的操作,第一次从源数据库中抽取的数据为第一数据(如表1所示的A),其抽取开始时间为t1,抽取结束时间为t2;第二次从源数据库中抽取的数据为第二数据(如表1所示的B1),其抽取开始时间为t3,抽取结束时间为t4;第三次从源数据库中抽取的数据也为第二数据(如表1所示的B2),其抽取开始时间为t5,抽取结束时间为t6;……;第n-1次从源数据库中抽取的数据为第二数据(如表1所示的Bn-2),其抽取开始时间为t2n-3,抽取结束时间为t2n-2;第n次从源数据库中抽取的数据为第三数据(如表1所示的C),其抽取开始时间为t2n-1,抽取结束时间为t2n
在该实施例中,t3>t2,t5>t4,……,t2n-1>t2n-2,即在从源数据库中抽取数据时,抽取在上次从源数据库中抽取数据之后产生的数据;表1所示的抽取开始时间即为本发明上述实施例中的上次从源数据库中抽取数据的第三时间,如t1、t3、t5、……、t2n-3、以及t2n-1。该实施例中的n为自然数。
图2是根据本发明实施例的一种可选的数据迁移方法的流程图。该实施例的数据迁移方法可以是上述实施例的数据迁移方法的一种优选实施方式。如图2所示的数据迁移方法可以包括:
步骤S202,获取源数据库的历史数据,将该历史数据导入目标数据库。
步骤S204,获取源数据库的增量数据,将该增量数据同步到目标数据库,其中,增量数据为在历史数据之后产生的新的数据。
步骤S206,判断上次导入增量数据的时间与预设时间的时间差是否大于第一预设阈值。
其中,在上次导入增量数据的时间与预设时间的时间差大于第一预设阈值的情况下,返回执行步骤S204;在上次导入增量数据的时间与预设时间的时间差不大于第一预设阈值的情况下,执行步骤S208。
步骤S208,暂停应用系统,将源数据库中最新的增量数据导入目标数据库,其中,源数据库中最新的增量数据为上次导入增量数据之后产生的数据。
具体地,在获取到源数据库的历史数据之后,首先将历史数据导入目标数据库,由于历史数据的数据量较大,该导入过程耗时较久,但是该导入过程是在目标数据库上完成的,因此不需要停用应用系统;在导入历史数据之后,分多次将源数据库的增量数据导入目标数据库,并在每次导入增量数据时,判断上次导入增量数据的时间与预设时间的时间差是否大于第一预设阈值;若上次导入增量数据的时间与预设时间的时间差大于第一预设阈值,则返回执行获取源数据库的增量数据,将该增量数据同步到目标数据库;若上次导入增量数据的时间与预设时间的时间差不大于第一预设阈值,则暂停应用系统,并将最新的增量数据导入目标数据库,由于之前经过多次的增量数据同步,暂停应用系统后将源数据库中最新的增量数据导入目标数据库所需的时间大大缩短,即通过本发明上述实施例,大大缩短了应用系统停机的时间。
根据本发明的上述实施例,在将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库之前,数据迁移方法可以包括:在应用系统的备份数据库的工作模式为只读模式的情况下,从应用系统的备份数据库中读取第一数据得到第一备份文件,将第一备份文件传输至目标数据库的服务器,其中,源数据库包括备份数据库;将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库可以包括:将服务器上的第一备份文件中的第一数据导入目标数据库;在将从源数据库中抽取的第二数据在第二时间同步到目标数据库之前,数据迁移方法可以包括:从处于只读模式的备份数据库中读取第二数据,生成第二数据的第二备份文件,将第二备份文件传输至目标数据库的服务器;将从源数据库中抽取的第二数据在第二时间同步到目标数据库可以包括:将服务器上的第二备份文件中的第二数据导入目标数据库;将应用系统的源数据库中与第一数据和第二数据不同的第三数据导入目标数据库可以包括:从应用系统的生产数据库读取第三数据,得到数据文件;将数据文件导入目标数据库,其中,源数据库包括生产数据库。
具体地,由于源数据库中的备份数据库会与源数据库的生产数据库实时同步,因此在读取第一数据得到第一备份文件时,需要将备份数据库的工作模式设为只读模式,以保证在读取第一数据时备份数据库中的数据不会发生变化,并将得到的第一备份文件传输至目标数据库的服务器上,然后在目标数据库的服务器上将第一备份文件中的第一数据导入目标数据库;在第一数据读取完毕之后,重新将备份数据库的工作模式设为读写模式,以保证备份数据库中的数据与生产数据库中的数据同步,以免发生数据丢失。通过本发明上述实施例,在只读模式下读取第一数据并得到第一备份文件,将第一备份文件传输至目标数据库的服务器上,并在该服务器上完成将第一数据导入目标数据库,可以保证在读取第一数据时备份数据库中的数据不会发生变化,并且导入第一数据的操作不会影响生产数据库的工作,无需暂停应用系统。
在本发明上述实施例中,将从源数据库中抽取的第二数据在第二时间同步到目标数据库的实现过程与将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库的实现过程一致,在此不再赘述。
进一步地,在将应用系统的源数据库中的第三数据导入目标数据库时,暂停应用系统,以使应用系统不再产生新的数据,并从应用系统的生产数据库中读取第三数据,得到数据文件,然后将得到的数据文件导入目标数据库。
通过本发明上述实施例,由于在导入第三数据之前,已经完成了第一数据和第二数据的导入操作,需要导入目标数据库的第三数据较小,因此将应用系统暂停较短的时间即可完成源数据库与目标数据库的同步,避免了现有技术中通过一次导入导出操作迁移源数据库造成的应用系统停机时间过长的问题,缩短了迁移大容量数据库时应用系统的停机时间。
图3是根据本发明实施例的另一种可选的数据迁移方法的原理图。下面将结合图3详细介绍本发明上述实施例。
如图3所示,源数据库包括备份数据库和生产数据库,其中,生产数据库是存储应用系统产生的数据的数据库;备份数据库(即灾备数据库)是安装有与生产数据库相同硬件平台且独立于生产数据库存在的数据库,备份数据库能够实时同步生产数据库中的数据。
在该实施例中,如果直接从应用系统的生产数据库中读取第一数据、第二数据和第三数据并相应地导出第一备份文件、第二备份文件和第三数据的数据文件会占用很大的系统资源,包括CPU、内存、磁盘I/O接口和网络资源等,对正常的生产造成很大的影响。
上述的第一备份文件、第二备份文件均可以是如图3所示的第一数据文件,第三数据的数据文件可以是如图3所示的第二数据文件,第一数据文件和第二数据文件均可以是DUMP文件(即备份文件);I/O接口为Input/Output接口,即输入/输出接口。
根据本发明上述实施例,可以将备份数据库的工作模式设置为只读模式,然后从备份数据库中读取数据并导出DUMP文件,这样就不会导致生产数据库的性能下降。
具体地,在读取第一数据得到第一备份文件时,备份数据库将第一数据自动导出得到第一备份文件(如图3所示的第一数据文件),在导出第一备份文件之后,将第一备份文件传输到目标数据库的服务器上,然后读取此文件中的第一数据,并将第一数据自动导入到目标数据库中。
在上述实施例中,将第二数据同步到目标数据库的实现过程与将第一数据导入到目标数据库的实现过程一致,在此不再赘述。
进一步地,可以通过程序自动实现将第二数据同步到目标数据库和将第一数据导入到目标数据库的“导出+传文件+导入”三部曲的全自动化工作,具体实现步骤如下:
步骤S1,导出:从备份数据库中导出历史数据和增量数据,生成DUMP文件;
步骤S2,传文件:把DUMP文件从备份服务器传输到目标数据库的服务器上;
步骤S3,导入:读取DUMP文件,将DUMP文件中的数据导入目标数据库。
在该实施例中,为了得到最实时准确的数据,最后一次执行数据导出操作在暂停应用系统之后,从生产数据库里导出数据(即上述实施例中的第三数据)得到第二数据文件,并将第二数据文件导入目标数据库,由于距离上次导出第二数据只间隔了第二预设时间(如,1小时),导入导出的第三数据的数据量极少,对生产环境影响很小,应用系统的停机时间也很短。
通过本发明上述的实施例,在将源数据库迁移至目标数据库时,利用应用系统的备份数据库导出第一数据(如历史数据)和第二数据(如在历史数据之后产生的增量数据),利用得到的第一备份文件和第二备份文件在目标数据库的服务器上完成第一数据和第二数据的导入操作;然后暂停应用系统,从生产数据库中读取最新的数据并将最新的数据导入目标数据库,由于最新的数据的数据量极少,导入导出所需的时间较短,即大大缩短应用系统的停机时间。
在本发明上述实施例中,将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库可以包括:在关闭第一数据的各个第一数据表的第一约束条件之后,将各个第一数据表导入目标数据库,建立各个第一数据表的第一约束条件;将从源数据库中抽取的第二数据在第二时间同步到目标数据库可以包括:在关闭第二数据的各个第二数据表的第二约束条件之后,将各个第二数据表导入目标数据库,建立各个第二数据表的第二约束条件;将应用系统的源数据库中与第一数据和第二数据不同的第三数据导入目标数据库可以包括:在关闭第三数据的各个第三数据表的第三约束条件之后,将各个第三数据表导入目标数据库,建立各个第三数据表的第三约束条件。
具体地,由于数据的数据表(即上述实施例中的第一数据的各个第一数据表、第二数据的各个第二数据表以及第三数据的各个第三数据表)的约束条件(即上述实施例中的第一约束条件、第二约束条件和第三约束条件)十分复杂,在执行数据导入操作时,目标数据库会检查各个数据表的约束条件,此过程错综复杂,且耗时长。为缩短导入数据的时间,可以暂时关闭各个数据表的约束条件,在将数据表导入目标数据库之后,重新建立各个数据表的约束条件。通过本发明上述实施例,既能节省将数据导入目标数据库的时间,又能避免数据导入时的错误。
在一个可选的实施例中,若待迁移的源数据库对应的应用系统为Odyssey(即晶元良率检测系统),源数据库中所有需要导出的六十张数据表中,有三十三张表是有外键的表(该表称为子表),外键是指数据表中此列的值需要参照主表的值,如果要导入目标数据库的子表所对应的主表不存在,则无法导入子表。由于数据表的导入有先后顺序,目标数据库会检查子表与主表的数据的参照完整性约束,若主表不存在且先创建子表,则目标数据库会报错。
为了避免数据导入时的错误和节省导入数据的时间,可以在导入数据前之前关闭参照完整性约束,并在完成数据导入后重新建立参照完整性约束,那么在数据导入过程中,目标数据库就不会检查数据是否满足参照完整性的要求。
下面结合图4详细介绍本发明上述实施例,如图4所示,该数据导入方法可以包括如下步骤:
步骤S402,关闭数据表的外键约束,其中,数据表可以为上述实施例中的第一数据表、第二数据表和第三数据表,外键约束可以为本发明上述实施例中的第一约束条件、第二约束条件和第三约束条件。
步骤S404,将数据表中的数据导入目标数据库。
步骤S406,判断是否已导入所有数据表。
其中,在未导入所有数据表的情况下,返回执行步骤S402;在已导入所有数据表的情况下,执行步骤S408。
步骤S408,重新建立各个数据表的外键约束。
具体地,在将数据表中的数据导入目标数据库之前,关闭各个数据表的外键约束,然后将各个数据表中的数据导入到目标数据库,在导入了所有的数据表之后,重新建立各个数据表的外键约束。
通过本发明上述实施例,在将数据导入目标数据库之前,先关闭各个数据的数据表的约束条件,然后将各个数据表的数据导入目标数据库,可以避免由于各个数据表的约束条件复杂导致的数据导入错误,实现了将数据顺利地导入目标数据库的效果,缩短了数据导入所需的时间。
根据本发明上述实施例,数据迁移方法还可以包括:在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库的过程中,关闭目标数据库的归档模式,并将目标数据库的实时日志组的数据容量设置为预设容量,以及将实时日志组的数量设置为预设数量;在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库之前,数据迁移方法还可以包括:去掉各个第一数据表、各个第二数据表以及各个第三数据表的索引;在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库之后,数据迁移方法还可以包括:在预设空间内建立导入目标数据库的数据的索引。
在本发明的另一个可选的实施例中,在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库的过程中,可采取以下四个技术手段来加快导入数据表:
1.关闭目标数据库的归档模式。关闭目标数据库的归档模式可以减少归档日志文件的产生,缩短数据库导入的时间,如,对于大小为300G的数据库,关闭目标数据库的归档模式可以减少15%的应用系统停机时间。
2.去掉数据表的索引,直到导入了全部数据之后再建索引。这一方法可以大大缩短数据导入所需的时间,如,对于大小为300G的数据库,可以减少70%的应用系统停机时间。
3.加大目标数据库的实时日志组的文件大小(即上述实施例中的实时日志组的数据容量),如可以将实时日志组的数据容量从100MB改为500MB(即上述的预设容量);和实时日志组的数量,如可以将实时日志组由从3个组增加到8个组,以减少切换日志组造成的时间等待延迟。
4.加大目标数据库的临时表空间,如将临时表空间从2GB增加到10GB,以避免由于临时表空间不足造成索引无法创建的错误。
在该实施例中,还可以通过加大数据导入进程所用的资源来缩短导入数据所需的时间和应用系统的停机时间,具体地,加大数据导入进程所用的资源可以包括加大BUFFER(即内存缓存块的大小,可以将其设为1GB),增加导入数据表的数据时一次读取的数据量和SORT_AREA_SIZE(即建索引需要的内存,可以设为500MB)。
通过本发明上述实施例,可以充分利用各个硬件资源来缩短数据导入目标数据库的时间,以缩短最后一次进行数据同步时的应用系统的停机时间。
本发明实施例还提供了一种数据迁移装置。该装置可以通过本发明上述实施例中的数据迁移方法实现其功能。需要说明的是,本发明实施例的数据迁移装置可以用于执行本发明实施例所提供的数据迁移方法,本发明实施例的数据迁移方法也可以通过本发明实施例所提供的数据迁移装置来执行。
图5是根据本发明实施例的数据迁移装置的示意图。如图5所示,该数据迁移装置可以包括:第一导入模块10,用于将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库,其中,第一数据包括记录的半导体器件的属性的数据;第一同步模块30,用于将从源数据库中抽取的第二数据在第二时间同步到目标数据库,其中,第二数据为与第一数据不同的记录半导体器件的属性的数据;判断模块50,用于判断第二时间与预设时间的时间差是否大于第一预设阈值;第二导入模块70,用于在第二时间与预设时间的时间差不大于第一预设阈值的情况下,暂停应用系统,将应用系统的源数据库中与第一数据和第二数据不同的第三数据导入目标数据库;第二同步模块90,用于在第二时间与预设时间的时间差大于第一预设阈值的情况下,返回执行将从数据库中抽取的第二数据在第二时间同步到目标数据库,其中,应用系统为产生半导体器件的属性的数据的系统。
采用本发明实施例,在正常使用应用系统的情况下,在第一时间将获取到的源数据库中的第一数据(如历史数据)导入目标数据库之后,在第二时间将抽取到的源数据库中的第二数据(如在历史数据之后产生的增量数据)同步到目标数据库,并判断第二时间与预设时间的时间差是否大于第一预设阈值,若第二时间与预设时间的时间差大于第一预设阈值,则返回执行第二数据的同步操作;若第二时间与预设时间的时间差不大于第一预设阈值,则暂停应用系统并将源数据库中与第一数据和第二数据不同的第三数据(如,在最后一次的第二数据同步之后产生的增量数据)导入目标数据库。通过本发明上述实施例,在正常使用应用系统时,将从源数据库中的半导体器件的属性的数据分多次导入目标数据库,并在执行最后一次的数据导入操作时暂停应用系统,由于最后一次的数据导入操作需要导入的数据量较小,短时间暂停应用系统即可完成数据导入操作,无需停止使用应用系统以将源数据库中的数据完全导入目标数据库,缩短了应用系统停机的时间,解决了现有技术中迁移大容量数据库时应用系统停机的时间长的问题,实现了将源数据库中的数据迁移至目标数据库时缩短应用系统停机时间的效果。
具体地,在正常使用应用系统的情况下,在第一时间将获取到的源数据库中数据量较大的第一数据(如历史数据)导入目标数据库,其中,第一数据的导入是在目标数据库上完成的,不需要停止使用应用系统;在完成第一数据的导入操作之后,将从源数据库中抽取到的第二数据(如在历史数据之后产生的增量数据)在第二时间同步到目标数据库,其中,第二数据的导入也是在目标数据库上完成的,不需要停止使用应用系统,经过多次第二数据的导入操作,目标数据库中存储的数据与源数据库的差会越来越小,并且在每次执行第二数据的导入操作时,判断第二时间与预设时间的时间差是否大于第一预设阈值,若第二时间与预设时间的时间差大于第一预设阈值,则继续执行第二数据的同步操作;若第二时间与预设时间的时间差不大于第一预设阈值,则暂停应用系统(保证应用系统不再产生新数据,源数据库中的数据不再发生数据变化),将源数据库中最新的数据(即上述实施例中的第三数据)导入到目标数据库中,完成源数据库与目标数据库的同步操作。
上述实施例中的第一预设阈值可以为1.5小时或者2小时;预设时间为预先设定的完成源数据库到目标数据库的数据迁移的时间;应用系统产生的半导体器件的属性的数据存储在源数据库中。
根据本发明上述实施例,第一同步模块可以包括:抽取模块,用于在第二时间与预设时间的时间差大于第二预设阈值时,每隔第一预设时间从源数据库中抽取第二数据;抽取模块,还用于在第二时间与预设时间的时间差不大于第二预设阈值且大于第一预设阈值时,每隔第二预设时间从源数据库中抽取第二数据;抽取模块可以包括:获取模块,用于获取上次从源数据库中抽取数据的第三时间;第三抽取模块,用于从源数据库中抽取记录时间晚于第三时间的数据,其中,第二预设阈值大于第一预设阈值。
具体地,在执行一次第二数据的导入操作之前,判断第二时间与预设时间的时间差是否大于第二预设阈值,若第二时间与预设时间的时间差大于第二预设阈值,则每隔第一预设时间从源数据库中抽取第二数据,并继续执行第二数据的导入操作;若第二时间与预设时间的时间差不大于第二预设阈值且大于第一预设阈值,则每隔第二预设时间从源数据库中抽取第二数据,并继续执行第二数据的导入操作。
在上述的实施例中,获取上次从源数据库中抽取数据的第三时间包括上次从源数据库中抽取第一数据的时间和上次从源数据库中抽取第二数据的时间;上述实施例中的源数据库中的数据的记录时间与产生该数据的产品的时间属性相对应。
进一步地,在从源数据库中抽取第二数据时,首先获取上次从源数据库中抽取数据的第三时间,然后从源数据库中抽取记录时间晚于第三时间的数据,即在抽取第二数据时,抽取上次从源数据库中抽取数据之后产生的新数据。
根据本发明的上述实施例,数据迁移装置可以包括:第一传输模块,用于在将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库之前,在应用系统的备份数据库的工作模式为只读模式的情况下,从应用系统的备份数据库中读取第一数据得到第一备份文件,将第一备份文件传输至目标数据库的服务器,其中,源数据库包括备份数据库;第一导入模块可以包括:第一导入子模块,用于将服务器上的第一备份文件中的第一数据导入目标数据库;数据迁移装置还可以包括:第二传输模块,用于在将从源数据库中抽取的第二数据在第二时间同步到目标数据库之前,从处于只读模式的备份数据库中读取第二数据,生成第二数据的第二备份文件,将第二备份文件传输至目标数据库的服务器;第一同步模块可以包括:第三导入模块,用于将服务器上的第二备份文件中的第二数据导入目标数据库;第二导入模块可以包括:读取模块,用于从应用系统的生产数据库读取第三数据,得到数据文件;第二导入子模块,用于将数据文件导入目标数据库,其中,源数据库包括生产数据库。
具体地,由于源数据库中的备份数据库会与源数据库的生产数据库实时同步,因此在读取第一数据得到第一备份文件时,需要将备份数据库的工作模式设为只读模式,以保证在读取第一数据时备份数据库中的数据不会发生变化,并将得到的第一备份文件传输至目标数据库的服务器上,然后在目标数据库的服务器上将第一备份文件中的第一数据导入目标数据库;在第一数据读取完毕之后,重新将备份数据库的工作模式设为读写模式,以保证备份数据库中的数据与生产数据库中的数据同步,以免发生数据丢失。通过本发明上述实施例,在只读模式下读取第一数据并得到第一备份文件,将第一备份文件传输至目标数据库的服务器上,并在该服务器上完成将第一数据导入目标数据库,可以保证在读取第一数据时备份数据库中的数据不会发生变化,并且导入第一数据的操作不会影响生产数据库的工作,无需暂停应用系统。
在本发明上述实施例中,将从源数据库中抽取的第二数据在第二时间同步到目标数据库的实现过程与将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库的实现过程一致,在此不再赘述。
进一步地,在将应用系统的源数据库中的第三数据导入目标数据库时,暂停应用系统,以使应用系统不再产生新的数据,并从应用系统的生产数据库中读取第三数据,得到数据文件,然后将得到的数据文件导入目标数据库。
通过本发明上述实施例,由于在导入第三数据之前,已经完成了第一数据和第二数据的导入操作,需要导入目标数据库的第三数据较小,因此将应用系统暂停较短的时间即可完成源数据库与目标数据库的同步,避免了现有技术中通过一次导入导出操作迁移源数据库造成的应用系统停机时间过长的问题,缩短了迁移大容量数据库时应用系统的停机时间。
在本发明上述实施例中,第一导入模块可以包括:第一建立模块,用于在关闭第一数据的各个第一数据表的第一约束条件之后,将各个第一数据表导入目标数据库,建立各个第一数据表的第一约束条件;第一同步模块可以包括:第二建立模块,用于在关闭第二数据的各个第二数据表的第二约束条件之后,将各个第二数据表导入目标数据库,建立各个第二数据表的第二约束条件;第二导入模块可以包括:第三建立模块,用于在关闭第三数据的各个第三数据表的第三约束条件之后,将各个第三数据表导入目标数据库,建立各个第三数据表的第三约束条件。
具体地,由于数据的数据表(即上述实施例中的第一数据的各个第一数据表、第二数据的各个第二数据表以及第三数据的各个第三数据表)的约束条件(即上述实施例中的第一约束条件、第二约束条件和第三约束条件)十分复杂,在执行数据导入操作时,目标数据库会检查各个数据表的约束条件,此过程错综复杂,且耗时长。为缩短导入数据的时间,可以暂时关闭各个数据表的约束条件,在将数据表导入目标数据库之后,重新建立各个数据表的约束条件。通过本发明上述实施例,既能节省将数据导入目标数据库的时间,又能避免数据导入时的错误。
在一个可选的实施例中,若待迁移的源数据库对应的应用系统为Odyssey(即晶元良率检测系统),源数据库中所有需要导出的六十张数据表中,有三十三张表是有外键的表(该表称为子表),外键是指数据表中此列的值需要参照主表的值,如果要导入目标数据库的子表所对应的主表不存在,则无法导入子表。由于数据表的导入有先后顺序,目标数据库会检查子表与主表的数据的参照完整性约束,若主表不存在且先创建子表,则目标数据库会报错。
为了避免数据导入时的错误和节省导入数据的时间,可以在导入数据前之前关闭参照完整性约束,并在完成数据导入后重新建立参照完整性约束,那么在数据导入过程中,目标数据库就不会检查数据是否满足参照完整性的要求。
通过本发明上述实施例,在将数据导入目标数据库之前,先关闭各个数据的数据表的约束条件,然后将各个数据表的数据导入目标数据库,可以避免由于各个数据表的约束条件复杂导致的数据导入错误,实现了将数据顺利地导入目标数据库的效果,缩短了数据导入所需的时间。
根据本发明上述实施例,数据迁移装置还可以包括:设置模块,用于在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库的过程中,关闭目标数据库的归档模式,并将目标数据库的实时日志组的数据容量设置为预设容量,以及将实时日志组的数量设置为预设数量;数据迁移装置还可以包括:删除模块,用于在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库之前,删除各个第一数据表、各个第二数据表以及各个第三数据表的索引;数据迁移装置还可以包括:第四建立模块,用于在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库之后,在预设空间内建立导入目标数据库的数据的索引。
在本发明的另一个可选的实施例中,在将各个第一数据表、各个第二数据表以及各个第三数据表导入目标数据库的过程中,可采取以下四个技术手段来加快导入数据表:
1.关闭目标数据库的归档模式。关闭目标数据库的归档模式可以减少归档日志文件的产生,缩短数据库导入的时间,如,对于大小为300G的数据库,关闭目标数据库的归档模式可以减少15%的应用系统停机时间。
2.去掉数据表的索引,直到导入了全部数据之后再建索引。去掉数据表的索引可以大大缩短数据导入所需的时间,如,对于大小为300G的数据库,可以减少70%的应用系统停机时间。
3.加大目标数据库的实时日志组的文件大小(即上述实施例中的实时日志组的数据容量),如可以将实时日志组的数据容量从100MB改为500MB(即上述的预设容量);和实时日志组的数量,如可以将实时日志组由从3个组增加到8个组,以减少切换日志组造成的时间等待延迟。
4.加大目标数据库的临时表空间,如将临时表空间从2GB增加到10GB,以避免由于临时表空间不足造成索引无法创建的错误。
通过本发明上述实施例,可以充分利用各个硬件资源来缩短数据导入目标数据库的时间,以缩短最后一次进行数据同步时的应用系统的停机时间。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
从以上的描述中,可以看出,本发明实现了如下技术效果:
采用本发明实施例,在正常使用应用系统的情况下,在第一时间将获取到的源数据库中的第一数据(如历史数据)导入目标数据库之后,在第二时间将抽取到的源数据库中的第二数据(如在历史数据之后产生的增量数据)同步到目标数据库,并判断第二时间与预设时间的时间差是否大于第一预设阈值,若第二时间与预设时间的时间差大于第一预设阈值,则返回执行第二数据的同步操作;若第二时间与预设时间的时间差不大于第一预设阈值,则暂停应用系统并将源数据库中与第一数据和第二数据不同的第三数据(如,在最后一次的第二数据同步之后产生的增量数据)导入目标数据库。通过本发明上述实施例,在正常使用应用系统时,将从源数据库中的半导体器件的属性的数据分多次导入目标数据库,并在执行最后一次的数据导入操作时暂停应用系统,由于最后一次的数据导入操作需要导入的数据量较小,短时间暂停应用系统即可完成数据导入操作,无需停止使用应用系统以将源数据库中的数据完全导入目标数据库,缩短了应用系统停机的时间,解决了现有技术中迁移大容量数据库时应用系统停机的时间长的问题,实现了将源数据库中的数据迁移至目标数据库时缩短应用系统停机时间的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据迁移方法,其特征在于,包括:
将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库,其中,所述第一数据包括记录的所述半导体器件的属性的数据;
将从所述源数据库中抽取的第二数据在第二时间同步到所述目标数据库,其中,所述第二数据为与所述第一数据不同的记录所述半导体器件的属性的数据;
判断所述第二时间与预设时间的时间差是否大于第一预设阈值;
若所述第二时间与所述预设时间的时间差不大于所述第一预设阈值,则暂停应用系统,将所述应用系统的所述源数据库中与所述第一数据和所述第二数据不同的第三数据导入所述目标数据库;
若所述第二时间与所述预设时间的时间差大于所述第一预设阈值,则返回执行所述将从所述数据库中抽取的第二数据在第二时间同步到所述目标数据库,
其中,所述应用系统为产生所述半导体器件的属性的数据的系统。
2.根据权利要求1所述的数据迁移方法,其特征在于,将从所述数据库中抽取的第二数据在第二时间同步到所述目标数据库包括:
在所述第二时间与所述预设时间的时间差大于第二预设阈值时,每隔第一预设时间从所述源数据库中抽取所述第二数据;
在所述第二时间与所述预设时间的时间差不大于所述第二预设阈值且大于所述第一预设阈值时,每隔第二预设时间从所述源数据库中抽取所述第二数据;
从所述源数据库中抽取所述第二数据包括:
获取上次从所述源数据库中抽取数据的第三时间;
从所述源数据库中抽取记录时间晚于所述第三时间的数据,
其中,所述第二预设阈值大于所述第一预设阈值。
3.根据权利要求1所述的数据迁移方法,其特征在于,
在将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库之前,所述数据迁移方法包括:在所述应用系统的备份数据库的工作模式为只读模式的情况下,从所述应用系统的备份数据库中读取所述第一数据得到第一备份文件,将所述第一备份文件传输至所述目标数据库的服务器,其中,所述源数据库包括所述备份数据库;
将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库包括:将所述服务器上的所述第一备份文件中的所述第一数据导入所述目标数据库;
在将从所述源数据库中抽取的第二数据在第二时间同步到所述目标数据库之前,所述数据迁移方法包括:从处于只读模式的所述备份数据库中读取所述第二数据,生成所述第二数据的第二备份文件,将所述第二备份文件传输至所述目标数据库的服务器;
将从所述源数据库中抽取的第二数据在第二时间同步到所述目标数据库包括:将所述服务器上的所述第二备份文件中的所述第二数据导入所述目标数据库;
将所述应用系统的所述源数据库中与所述第一数据和所述第二数据不同的第三数据导入所述目标数据库包括:
从所述应用系统的生产数据库读取所述第三数据,得到数据文件;
将所述数据文件导入所述目标数据库,其中,所述源数据库包括所述生产数据库。
4.根据权利要求1所述的数据迁移方法,其特征在于,
将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库包括:在关闭所述第一数据的各个第一数据表的第一约束条件之后,将所述各个第一数据表导入所述目标数据库,建立所述各个第一数据表的所述第一约束条件;
将从所述源数据库中抽取的第二数据在第二时间同步到所述目标数据库包括:在关闭所述第二数据的各个第二数据表的第二约束条件之后,将所述各个第二数据表导入所述目标数据库,建立所述各个第二数据表的所述第二约束条件;
将所述应用系统的所述源数据库中与所述第一数据和所述第二数据不同的第三数据导入所述目标数据库包括:在关闭所述第三数据的各个第三数据表的第三约束条件之后,将所述各个第三数据表导入所述目标数据库,建立所述各个第三数据表的所述第三约束条件。
5.根据权利要求4所述的数据迁移方法,其特征在于,
所述数据迁移方法还包括:在将所述各个第一数据表、所述各个第二数据表以及所述各个第三数据表导入所述目标数据库的过程中,关闭所述目标数据库的归档模式,并将所述目标数据库的实时日志组的数据容量设置为预设容量,以及将所述实时日志组的数量设置为预设数量;
在将所述各个第一数据表、所述各个第二数据表以及所述各个第三数据表导入所述目标数据库之前,所述数据迁移方法还包括:去掉所述各个第一数据表、所述各个第二数据表以及所述各个第三数据表的索引;
在将所述各个第一数据表、所述各个第二数据表以及所述各个第三数据表导入所述目标数据库之后,所述数据迁移方法还包括:在预设空间内建立导入所述目标数据库的数据的索引。
6.一种数据迁移装置,其特征在于,包括:
第一导入模块,用于将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库,其中,所述第一数据包括记录的所述半导体器件的属性的数据;
第一同步模块,用于将从所述源数据库中抽取的第二数据在第二时间同步到所述目标数据库,其中,所述第二数据为与所述第一数据不同的记录所述半导体器件的属性的数据;
判断模块,用于判断所述第二时间与预设时间的时间差是否大于第一预设阈值;
第二导入模块,用于在所述第二时间与所述预设时间的时间差不大于所述第一预设阈值的情况下,暂停应用系统,将所述应用系统的所述源数据库中与所述第一数据和所述第二数据不同的第三数据导入所述目标数据库;
第二同步模块,用于在所述第二时间与所述预设时间的时间差大于所述第一预设阈值的情况下,返回执行所述将从所述数据库中抽取的第二数据在第二时间同步到所述目标数据库,
其中,所述应用系统为产生所述半导体器件的属性的数据的系统。
7.根据权利要求6所述的数据迁移装置,其特征在于,所述第一同步模块包括:
抽取模块,用于在所述第二时间与所述预设时间的时间差大于第二预设阈值时,每隔第一预设时间从所述源数据库中抽取所述第二数据;
所述抽取模块,还用于在所述第二时间与所述预设时间的时间差不大于所述第二预设阈值且大于所述第一预设阈值时,每隔第二预设时间从所述源数据库中抽取所述第二数据;
所述抽取模块包括:
获取模块,用于获取上次从所述源数据库中抽取数据的第三时间;
第三抽取模块,用于从所述源数据库中抽取记录时间晚于所述第三时间的数据,
其中,所述第二预设阈值大于所述第一预设阈值。
8.根据权利要求6所述的数据迁移装置,其特征在于,
所述数据迁移装置包括:第一传输模块,用于在将从源数据库获取到的半导体器件的第一数据在第一时间导入目标数据库之前,在所述应用系统的备份数据库的工作模式为只读模式的情况下,从所述应用系统的备份数据库中读取所述第一数据得到第一备份文件,将所述第一备份文件传输至所述目标数据库的服务器,其中,所述源数据库包括所述备份数据库;
所述第一导入模块包括:第一导入子模块,用于将所述服务器上的所述第一备份文件中的所述第一数据导入所述目标数据库;
所述数据迁移装置还包括:第二传输模块,用于在将从所述源数据库中抽取的第二数据在第二时间同步到所述目标数据库之前,从处于只读模式的所述备份数据库中读取所述第二数据,生成所述第二数据的第二备份文件,将所述第二备份文件传输至所述目标数据库的服务器;
所述第一同步模块包括:第三导入模块,用于将所述服务器上的所述第二备份文件中的所述第二数据导入所述目标数据库;
所述第二导入模块包括:
读取模块,用于从所述应用系统的生产数据库读取所述第三数据,得到数据文件;
第二导入子模块,用于将所述数据文件导入所述目标数据库,其中,所述源数据库包括所述生产数据库。
9.根据权利要求6所述的数据迁移装置,其特征在于,
所述第一导入模块包括:第一建立模块,用于在关闭所述第一数据的各个第一数据表的第一约束条件之后,将所述各个第一数据表导入所述目标数据库,建立所述各个第一数据表的所述第一约束条件;
所述第一同步模块包括:第二建立模块,用于在关闭所述第二数据的各个第二数据表的第二约束条件之后,将所述各个第二数据表导入所述目标数据库,建立所述各个第二数据表的所述第二约束条件;
所述第二导入模块包括:第三建立模块,用于在关闭所述第三数据的各个第三数据表的第三约束条件之后,将所述各个第三数据表导入所述目标数据库,建立所述各个第三数据表的所述第三约束条件。
10.根据权利要求9所述的数据迁移装置,其特征在于,
所述数据迁移装置还包括:设置模块,用于在将所述各个第一数据表、所述各个第二数据表以及所述各个第三数据表导入所述目标数据库的过程中,关闭所述目标数据库的归档模式,并将所述目标数据库的实时日志组的数据容量设置为预设容量,以及将所述实时日志组的数量设置为预设数量;
所述数据迁移装置还包括:删除模块,用于在将所述各个第一数据表、所述各个第二数据表以及所述各个第三数据表导入所述目标数据库之前,删除所述各个第一数据表、所述各个第二数据表以及所述各个第三数据表的索引;
所述数据迁移装置还包括:第四建立模块,用于在将所述各个第一数据表、所述各个第二数据表以及所述各个第三数据表导入所述目标数据库之后,在预设空间内建立导入所述目标数据库的数据的索引。
CN201510041654.3A 2015-01-27 2015-01-27 数据迁移方法和装置 Pending CN105989006A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510041654.3A CN105989006A (zh) 2015-01-27 2015-01-27 数据迁移方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510041654.3A CN105989006A (zh) 2015-01-27 2015-01-27 数据迁移方法和装置

Publications (1)

Publication Number Publication Date
CN105989006A true CN105989006A (zh) 2016-10-05

Family

ID=57035571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510041654.3A Pending CN105989006A (zh) 2015-01-27 2015-01-27 数据迁移方法和装置

Country Status (1)

Country Link
CN (1) CN105989006A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528803A (zh) * 2016-11-14 2017-03-22 武汉斗鱼网络科技有限公司 一种MongoDB数据库对象复制延迟监控方法和装置
CN108280148A (zh) * 2018-01-02 2018-07-13 中国民生银行股份有限公司 一种数据迁移方法和数据迁移服务器
CN108595488A (zh) * 2018-03-15 2018-09-28 北京雷石天地电子技术有限公司 数据迁移方法和装置
CN108647270A (zh) * 2018-04-28 2018-10-12 尚谷科技(天津)有限公司 一种基于容错时间日志的数据迁移的方法
CN109684304A (zh) * 2018-12-13 2019-04-26 中国联合网络通信集团有限公司 数据迁移方法及装置
CN110019538A (zh) * 2019-02-03 2019-07-16 阿里巴巴集团控股有限公司 一种数据表切换方法及装置
CN110347743A (zh) * 2018-03-19 2019-10-18 上海旷极信息科技有限公司 一种数据库通信方法
CN113051247A (zh) * 2021-03-18 2021-06-29 福建星瑞格软件有限公司 一种基于日志同步的数据库迁移方法及系统
CN115599868A (zh) * 2022-12-14 2023-01-13 广州睿帆科技有限公司(Cn) 数据实时同步处理方法、系统、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081552A (zh) * 2009-12-01 2011-06-01 华为技术有限公司 一种物理机到虚拟机的在线迁移方法、装置和系统
CN102982085A (zh) * 2012-10-31 2013-03-20 北京奇虎科技有限公司 数据迁移系统和方法
CN103530290A (zh) * 2012-07-03 2014-01-22 深圳市腾讯计算机系统有限公司 数据库间的数据迁移方法和系统
CN103617098A (zh) * 2013-12-03 2014-03-05 上海爱数软件有限公司 基于数据变化的智能备份方法及智能备份系统
CN104166600A (zh) * 2014-08-01 2014-11-26 腾讯科技(深圳)有限公司 数据备份与恢复方法及装置
CN104182441A (zh) * 2014-02-27 2014-12-03 无锡天脉聚源传媒科技有限公司 一种数据表同步方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081552A (zh) * 2009-12-01 2011-06-01 华为技术有限公司 一种物理机到虚拟机的在线迁移方法、装置和系统
CN103530290A (zh) * 2012-07-03 2014-01-22 深圳市腾讯计算机系统有限公司 数据库间的数据迁移方法和系统
CN102982085A (zh) * 2012-10-31 2013-03-20 北京奇虎科技有限公司 数据迁移系统和方法
CN103617098A (zh) * 2013-12-03 2014-03-05 上海爱数软件有限公司 基于数据变化的智能备份方法及智能备份系统
CN104182441A (zh) * 2014-02-27 2014-12-03 无锡天脉聚源传媒科技有限公司 一种数据表同步方法及装置
CN104166600A (zh) * 2014-08-01 2014-11-26 腾讯科技(深圳)有限公司 数据备份与恢复方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528803A (zh) * 2016-11-14 2017-03-22 武汉斗鱼网络科技有限公司 一种MongoDB数据库对象复制延迟监控方法和装置
CN106528803B (zh) * 2016-11-14 2019-04-23 武汉斗鱼网络科技有限公司 一种MongoDB数据库对象复制延迟监控方法和装置
CN108280148A (zh) * 2018-01-02 2018-07-13 中国民生银行股份有限公司 一种数据迁移方法和数据迁移服务器
CN108595488A (zh) * 2018-03-15 2018-09-28 北京雷石天地电子技术有限公司 数据迁移方法和装置
CN110347743A (zh) * 2018-03-19 2019-10-18 上海旷极信息科技有限公司 一种数据库通信方法
CN108647270A (zh) * 2018-04-28 2018-10-12 尚谷科技(天津)有限公司 一种基于容错时间日志的数据迁移的方法
CN109684304A (zh) * 2018-12-13 2019-04-26 中国联合网络通信集团有限公司 数据迁移方法及装置
CN110019538A (zh) * 2019-02-03 2019-07-16 阿里巴巴集团控股有限公司 一种数据表切换方法及装置
CN110019538B (zh) * 2019-02-03 2023-09-05 创新先进技术有限公司 一种数据表切换方法及装置
CN113051247A (zh) * 2021-03-18 2021-06-29 福建星瑞格软件有限公司 一种基于日志同步的数据库迁移方法及系统
CN115599868A (zh) * 2022-12-14 2023-01-13 广州睿帆科技有限公司(Cn) 数据实时同步处理方法、系统、设备及介质
CN115599868B (zh) * 2022-12-14 2023-03-14 广州睿帆科技有限公司 数据实时同步处理方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN105989006A (zh) 数据迁移方法和装置
CN104317843B (zh) 一种数据同步etl系统
CN106777225B (zh) 一种数据的迁移方法和系统
CN102982085B (zh) 数据迁移系统和方法
CN102360357B (zh) Scada系统网状关系数据库节点的数据同步组件
CN103605809B (zh) 一种数据同步的方法
CN102446303B (zh) 工艺路线组件的分配方法及装置
CN103581231B (zh) Ugc主备数据同步方法及其系统
CN104598610A (zh) 一种分步式数据库数据分发上传同步方法
CN104573100A (zh) 一种带自增量标识的分步式数据库同步方法
CN106156165A (zh) 异构数据源之间的数据同步方法和装置
CN102663076B (zh) 文件数据处理方法
CN103246549B (zh) 一种数据转存的方法及系统
CN104615606A (zh) 一种Hadoop分布式文件系统及其管理方法
CN106528070A (zh) 一种数据表生成方法及设备
CN106503158A (zh) 数据同步方法及装置
CN107391596B (zh) 一种配电网海量数据融合方法及装置
CN107679152B (zh) 基于多层信息联合索引的数据处理方法
CN108121804A (zh) 跨地域分布式存储数据的方法、装置、终端及存储介质
CN104915262A (zh) 一种基于excel数据结构的校验系统及其方法
WO2016101751A1 (zh) 一种分布式存储系统中的主从平衡方法和装置
CN105279285A (zh) 一种关系型数据库与非关系型数据库的同步系统及方法
CN107016075A (zh) 集群数据同步方法及装置
CN105653652A (zh) 一种数据同步方法及系统
CN110543478B (zh) 公共层宽表建设方法、装置及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161005