CN113297182B - 数据迁移方法、设备、存储介质及程序产品 - Google Patents

数据迁移方法、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN113297182B
CN113297182B CN202110668073.8A CN202110668073A CN113297182B CN 113297182 B CN113297182 B CN 113297182B CN 202110668073 A CN202110668073 A CN 202110668073A CN 113297182 B CN113297182 B CN 113297182B
Authority
CN
China
Prior art keywords
data
file
target database
database table
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.)
Active
Application number
CN202110668073.8A
Other languages
English (en)
Other versions
CN113297182A (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.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
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 Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202110668073.8A priority Critical patent/CN113297182B/zh
Publication of CN113297182A publication Critical patent/CN113297182A/zh
Application granted granted Critical
Publication of CN113297182B publication Critical patent/CN113297182B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

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

数据迁移方法、设备、存储介质及程序产品
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据迁移方法、设备、存储介质及程序产品。
背景技术
在商业银行信息系统建设中,早期使用的Syabse数据库,无法满足日益增长的高并发、异地灾备等需求,需要迁移至性能更佳的Oracle数据库。而异构数据库、海量数据、字符集差异,均影响数据迁移效率与准确性。
现有技术中,数据迁移通常通过命令行或数据库操作图形界面,采用固定的迁移策略,逐个数据库表进行导出、导入;对于导出、导入过程中的异常数据,往往进行舍弃或手工导入。此外,在数据导入、导出过程中,需要检查与核对,通常采用抽样检查,以某种特定的抽样方式,在原数据库表中抽查出部分数据,根据抽查数据的主键或字段,在新数据库中查询,对比查询结果。
现有的数据迁移方式速度慢、效率低,无法充分利用服务器的I/O、CPU和网络资源,尤其是在海量数据迁移时,数据迁移时间可能长达十多个小时。且数据迁移过程需要较多的人工参与,例如一些参数选择往往是由执行人根据经验主观选择,导致迁移效率下降,并且容易导致命令错误;此外在检查和核对时采用抽样检查存在漏检、漏报的可能,且对于异常数据处理,如无法直接舍弃,则需要人工分析、手工再次执行命令,费时费力且易引起二次错误。
发明内容
本申请提供一种数据迁移方法、设备、存储介质及程序产品,用以自动化实现海量数据迁移、检查和核对,提高效率和准确率。
第一方面,本申请提供一种数据迁移方法,包括:
将原数据库中待导出的原数据库表的数据导出,得到第一文件;
根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表;
将所述目标数据库的目标数据库表的数据导出,得到第二文件;
将所述第二文件与所述第一文件进行内容对比,若所述第二文件与所述第一文件内容一致,则确定数据迁移成功。
可选的,所述根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,包括:
若所述原数据库表的容量不超过预设容量阈值,则确定直接加载参数,并基于所述直接加载参数将所述第一文件中的数据导入到所述目标数据库中;或者
若所述原数据库表的容量超过预设容量阈值,则确定并行加载参数以及并行数,并基于并行数对所述第一文件进行拆分,并基于所述并行加载参数将拆分文件中的数据并行导入到所述目标数据库中。
可选的,所述确定并行加载参数以及并行数,包括:
根据所述原数据库表的容量以及系统性能信息,确定并行加载参数以及并行数,所述系统性能信息包括以下至少一项:CPU性能、I/O性能、网络性能。
可选的,所述方法还包括:
若所述第二文件与所述第一文件内容不一致,则确定不一致的异常数据;
从所述第一文件中获取与所述异常数据对应的正确数据,生成第三文件,并将所述第三文件中的数据导入到所述目标数据库中,以对所述目标数据库中的所述异常数据进行新增或修改;或者,
对所述目标数据库中所述异常数据进行删除。
可选的,所述将原数据库中待导出的原数据库表的数据导出,得到第一文件后,还包括:
对比待导出的原数据库表的数据数量与所述第一文件中的数据数量;
若不一致,则重新将所述原数据库中待导出的原数据库表的数据导出,得到新的第一文件。
可选的,所述基于并行数对所述第一文件进行拆分后,还包括:
对比所述第一文件中的数据数量与各拆分文件中总数据数量;
若不一致,则重新基于并行数对所述第一文件进行拆分。
可选的,所述根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表后,还包括:
对比待导出的原数据库表的数据数量、所述第一文件中的数据数量、以及所述目标数据库表的数据数量;
若确定待导出的原数据库表的数据数量与所述第一文件中的数据数量一致,而所述第一文件中的数据数量与所述目标数据库表的数据数量不一致,则确定不一致的异常数据以及其数量;
若数量超过预设数量阈值,则进行异常状况告警,在异常状况解除后,删除所述目标数据库表,并重新根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成新的目标数据库表;或者
若数量未超过预设数量阈值,则从所述第一文件中获取与所述异常数据对应的正确数据,生成第四文件,并将所述第四文件中的数据导入到所述目标数据库中,以对所述目标数据库中的所述异常数据进行新增或修改。
第二方面,本申请提供一种数据迁移设备,包括:
第一导出模块,用于将原数据库中待导出的原数据库表的数据导出,得到第一文件;
导入模块,用于根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表;
第二导出模块,用于将所述目标数据库的目标数据库表的数据导出,得到第二文件;
数据比对模块,用于将所述第二文件与所述第一文件进行内容对比,若所述第二文件与所述第一文件内容一致,则确定数据迁移成功。
第三方面,本申请提供一种电子设备,包括:至少一个处理器;以及存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法。
本申请提供的数据迁移方法、设备、存储介质及程序产品,通过通过将原数据库中待导出的原数据库表的数据导出,得到第一文件;根据数据库表的容量信息和/或系统性能信息确定迁移策略,并根据迁移策略将第一文件中的数据导入到目标数据库中,形成目标数据库表;将目标数据库的目标数据库表的数据导出,得到第二文件;将第二文件与第一文件进行内容对比,若第二文件与第一文件内容一致,则确定数据迁移成功。通过上述过程能够一键式完成海量数据迁移、检查与核对。不仅能够根据数据库表容量和/或系统性能选择最优导出、导入策略,实现数据高效、准确地导出、导入,减少人工参与,此外还基于文件对比实现数据全量比对,保证了海量数据迁移的准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的数据迁移方法的应用场景示意图;
图2为本申请一实施例提供的数据迁移方法的流程图;
图3为本申请另一实施例提供的数据迁移方法的流程图;
图4为本申请一实施例提供的数据迁移方法数据迁移过程的示意图;
图5为本申请另一实施例提供的数据迁移方法的流程图;
图6为本申请另一实施例提供的数据迁移方法的流程图;
图7为本申请另一实施例提供的数据迁移方法的流程图;
图8为本申请一实施例提供的数据迁移设备的示意图;
图9为本申请一实施例提供的执行数据迁移方法的电子设备的示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
BCP:一种在数据库实例(如Syabse、Microsoft SQL Server)和数据文件间进行大容量数据复制的工具,可以将大量数据导入数据库表,也可以将数据库表导出到数据文件。
SQLLDR:Oracle数据库提供的数据加载工具,可以将大量数据文件导入Oracle数据库表中。
Shell:一种命令解释器,可运行在Linux操作系统上,为用户提供与操作系统直接的交互操作;同时作为一种程序设计语言,交互式解释并执行用户输入的命令或自动地解释并执行预先定义好的一连串命令。在商业银行信息系统建设中,早期使用的Syabse数据库,无法满足日益增长的高并发、异地灾备等需求,需要迁移至性能更佳的Oracle数据库。而异构数据库、海量数据、字符集差异,均影响数据迁移效率与准确性。
其中,数据迁移是将数据从原数据库导出到数据文件后,再将数据从数据文件导入到目标数据库中,并执行数据检查与核对。在数据导入、导出过程中,需要检查与核对以下内容:第一、处理好原数据库字符集、文件编码、新数据库字符集的对应关系,确保中文字符可正确迁移,不会出现乱码;第二、需要校验原数据库中数据内容与数据文件中数据内容是否一致、数据文件中数据内容与新数据库中数据内容是否一致,既要保证数据条目一致,也要保证具体的数据记录字段值一致。
现有技术中,数据迁移通常通过命令行或数据库操作图形界面,采用固定的迁移策略,逐个数据库表进行导出、导入;对于导出、导入过程中的异常数据,往往进行舍弃或手工导入。此外,在数据导入、导出过程中,需要检查与核对,通常采用抽样检查,以某种特定的抽样方式,在原数据库表中抽查出部分数据,根据抽查数据的主键或字段,在新数据库中查询,对比查询结果。
现有技术中的数据迁移方式,采用固定的迁移策略,单条命令依次执行,逐个数据库表串行迁移,这种数据迁移方式速度慢、效率低,无法充分利用服务器的I/O、CPU和网络资源,尤其是在海量数据迁移时,数据迁移时间可能长达十多个小时。
为了提高迁移效率,一种常用的优化措施为:根据数据库表的大小,选择不同的命令参数,例如对于小表(例如容量≤10GB数据量),使用SQLLDR工具导入时,采用直接加载参数(direct参数);对于大表(例如容量>10GB数据量),使用SQLLDR工具导入时,采用并行加载参数(parallel参数)。但是,这些参数选择往往是由执行人根据经验主观选择,这可能导致迁移效率不升反降。而且不同的参数选择,更容易导致命令错误。
而检查与核对采用抽样检查,存在漏检、漏报的可能。一是数据库中可能存在脏数据、乱码数据,无法被确定检测到;二是对于允许中文的字段,抽查的记录可能只有英文,存在中文数据导入到新数据库中是乱码而未被检查到的情况。此外,对于异常数据处理,如无法直接舍弃,则需要人工分析、手工再次执行命令,费时费力且易引起二次错误。
针对上述技术问题,本申请实施例将原数据库中待导出的原数据库表的数据导出,得到第一文件;根据数据库表的容量信息和/或系统性能信息确定迁移策略,并根据迁移策略将第一文件中的数据导入到目标数据库中,形成目标数据库表;将目标数据库的目标数据库表的数据导出,得到第二文件;将第二文件与第一文件进行内容对比,若第二文件与第一文件内容一致,则确定数据迁移成功。通过上述过程能够一键式完成海量数据迁移、检查与核对。不仅能够根据数据库表容量和/或系统性能选择最优导出、导入策略,实现数据高效、准确地导出、导入,减少人工参与,此外还基于文件对比实现数据全量比对,进一步提高了海量数据迁移的准确性。
本申请具体的应用场景如图1所示,当需要将原数据库101中待导出的原数据库表迁移到目标数据库102时,可先将原数据库101中待导出的原数据库表的数据导出,得到第一文件;根据数据库表的容量信息和/或系统性能信息确定迁移策略,并根据迁移策略将第一文件中的数据导入到目标数据库102中,形成目标数据库表;将目标数据库的目标数据库表的数据导出,得到第二文件;将第二文件与第一文件进行内容对比,若第二文件与第一文件内容一致,则确定数据迁移成功。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本发明实施例提供的数据迁移方法流程图。本实施例提供了一种数据迁移方法,其执行主体为服务器或者其他电子设备,该数据迁移方法具体步骤如下:
S201、将原数据库中待导出的原数据库表的数据导出,得到第一文件。
在本实施例中,原数据库可以为任意数据库,需要迁移到的目标数据库也可以为任意数据库,可选的,原数据库和目标数据库可以是异构的。作为示例,在商业银行信息系统建设中,早期使用的Syabse数据库,根据需求可迁移至性能更佳的Oracle数据库。其中,数据库表可以数据或者日志等,此处不做限制。
在本实施例中,首先需要将原数据库中的待导出的原数据库表的数据导出到数据文件中,得到第一文件,其中可采用如BCP等工具将数据库表导出到数据文件中,可选的,当待导出的原数据库表有多个时,可将多个数据库表并行导出,提高导出效率,对于每一原数据库表可分别并行执行本实施例的数据迁移方法,提高数据迁移效率。此外还可根据用户在可视化界面中输入的导出指令进行数据库表的导出。
可选的,本实施例中导出的第一文件可存储于磁盘中。
S202、根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表。
在本实施例中,对于不同容量大小的数据库表可采用不同的迁移策略,同样,针对不同的系统性能也可采用不同的迁移策略,例如对于容量比较小(容量不超过预设容量阈值,例如10GB)的数据库表可采用将第一文件中的数据导入到目标数据库,而对于容量比较大的数据库表(容量超过预设容量阈值,例如10GB)的数据库表可采用将第一文件拆分后采用并行的方式将拆分文件的数据并行导入到目标数据库,为了提高对CPU、I/O以及网络资源的利用率、提高数据迁移速度,可根据CPU、I/O、网络性能确定并行数;当然,为了提高对CPU、I/O、网络资源的利用率,对于容量比较小的数据库表也可采用将第一文件拆分后采用并行的方式将拆分文件的数据并行导入到目标数据库,此处并不做限制。
可选的,本实施例中可通过SQLLDR工具将第一文件中的数据导入目标数据库表中。
可选的,可根据需要将多个数据库表并行导入;可选的,还可提供不同导入参数配置策略,如直接导入、并行导入、最大缓存值导入、忽略索引导入等。
S203、将所述目标数据库的目标数据库表的数据导出,得到第二文件。
S204、将所述第二文件与所述第一文件进行内容对比,若所述第二文件与所述第一文件内容一致,则确定数据迁移成功。
在本实施例中,考虑到原数据库字符集、文件编码、新数据库字符集存在一定的对应关系,迁移可能出现乱码的情况,尤其是对于异构数据库,为了检查和核对迁移过程的准确性,尤其是检查和核对目标数据库的目标数据库表中数据内容与数据文件中数据内容是否一致,包括数据条目一致,以及具体的数据记录字段值一致,本实施例中将目标数据库的目标数据库表的数据导出,得到第二文件,将从原数据表导出的第一文件与从目标数据库表导出的第二文件进行文件级别的内容对比,具体可通过Linux的文件比对工具实现文件内容比对,若第二文件与第一文件内容一致,则确认数据迁移未发生异常,也即数据迁移成功。通过Linux的文件比对工具实现文件内容比对的过程处理效率较高,比对时间较短,可确保数据迁移后数据保持完整、准确、一致。
可选的,还可根据需要将多个数据库表导出,提高效率;采用spool方式,结合ctl文件,可以个性化定制导出条件或全量导出。
可选的,如图3所示,所述方法还包括:
S301、若所述第二文件与所述第一文件内容不一致,则确定不一致的异常数据;
S302、从所述第一文件中获取与所述异常数据对应的正确数据,生成第三文件,并将所述第三文件中的数据导入到所述目标数据库中,以对所述目标数据库中的所述异常数据进行新增或修改;或者,对所述目标数据库中所述异常数据进行删除。
在本实施例中,若确定第二文件与第一文件内容不一致,可确定不一致的异常数据,具体可通过Linux的文件比对工具的日志确定不一致的异常数据,还可确定异常数据数量。进一步的,对于异常数据可通过分析进行相应的处理,包括新增、修改或删除,具体的,对于目标数据库中丢失数据的情况,可进行新增;对于目标数据库中存在乱码的数据,可进行修改;对于由于换行符等因素导致一条数据被拆分为多条数据的情况,可将多余的数据进行删除,当然也可结合修改的情况补齐被拆分的数据;当然,处理策略的选择并不限于上述情况,其他情况下如何选择处理策略此处不再一一赘述。
需要说明的是,对于新增和修改的情况,需要重新导入异常数据对应的正确数据,可从第一文件中获取到异常数据对应的正确数据,生成第三文件,然后将第三文件中的数据通过SQLLDR工具导入目标数据库表中,从而实现对异常数据的新增或修改,保证了数据迁移的准确性,无需人工参与。
本实施例提供的数据迁移方法,通过将原数据库中待导出的原数据库表的数据导出,得到第一文件;根据数据库表的容量信息和/或系统性能信息确定迁移策略,并根据迁移策略将第一文件中的数据导入到目标数据库中,形成目标数据库表;将目标数据库的目标数据库表的数据导出,得到第二文件;将第二文件与第一文件进行内容对比,若第二文件与第一文件内容一致,则确定数据迁移成功。通过上述过程能够一键式完成海量数据迁移、检查与核对。不仅能够根据数据库表容量和/或系统性能选择最优导出、导入策略,实现数据高效、准确地导出、导入,减少人工参与,此外还基于文件对比实现数据全量比对,保证了海量数据迁移的准确性。
在上述任一实施例的基础上,本实施例提供的数据迁移方法的具体示意图如图4所示。其中,对于上述实施例中的S202所述根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,具体可包括:
若所述原数据库表的容量不超过预设容量阈值,则确定直接加载参数,并基于所述直接加载参数将所述第一文件中的数据导入到所述目标数据库中;或者
若所述原数据库表的容量超过预设容量阈值,则确定并行加载参数以及并行数,并基于并行数对所述第一文件进行拆分,并基于所述并行加载参数将拆分文件中的数据并行导入到所述目标数据库中。
在本实施例中,第一种情况是原数据库表的容量不超过预设容量阈值,例如不超过10GB,说明原数据库表为小表,而小表的第一文件不需要拆分,其第一文件可先存储到磁盘上,而在导入目标数据库的阶段,可基于直接加载参数(direct参数)将第一文件中的数据导入到目标数据库中,可选的,可将磁盘中的第一文件直接通过内存导入到目标数据库中。
第二种情况原数据库表的容量超过预设容量阈值,例如超过10GB,则说明原数据库表为大表,导出的第一文件无法直接通过内存导入到目标数据库中,因此可对第一文件进行拆分,将拆分文件中的数据再通过内存并行导入到目标数据库中,得到目标数据库表。其中具体的拆分以及并行加载参数(parallel参数),可根据原数据库表的容量、以及系统性能信息,确定并行加载参数以及并行数,系统性能信息包括但不限于CPU性能、I/O性能、网络性能,若CPU性能较高、或者I/O性能较高、或者网络性能较高,则可增大并行数,否则可减小并行数。
在上述任一实施例的基础上,如图5所示,S201所述将原数据库中待导出的原数据库表的数据导出,得到第一文件后,还包括:
S401、对比待导出的原数据库表的数据数量与所述第一文件中的数据数量;
S402、若不一致,则重新将所述原数据库中待导出的原数据库表的数据导出,得到新的第一文件。
在本实施例中,为了保证原数据库表与其导出后的第一文件中数据内容一致,可对比原数据库表的数据数量与第一文件中的数据数量,若不一致,则说明原数据库表的数据导出得到第一文件的过程出现错误,例如原数据库表中有1000条记录,而第一文件中有999条记录,说明导出过程可能存在数据丢失,此时可重新将原数据库表的数据导出,得到新的第一文件,进一步的,可继续比较原数据库表的数据数量与新的第一文件中的数据数量,直至原数据库表的数据数量与第一文件中的数据数量一致;若原数据库表的数据数量与第一文件中的数据数量一致,此时说明原数据库表的数据导出得到第一文件的过程很大可能未出现错误,可继续进行后续S202-S204的过程,通过S204可保证所有过程都未出现错误,数据迁移成功。
在上述任一实施例的基础上,如图6所示,对于原数据库表的容量超过预设容量阈值的情况,所述基于并行数对所述第一文件进行拆分后,还包括:
S501、对比所述第一文件中的数据数量与各拆分文件中总数据数量;
S502、若不一致,则重新基于并行数对所述第一文件进行拆分。
在本实施例中,对于原数据库表的容量超过预设容量阈值的情况,对第一文件进行拆分,为了保证拆分前后数据内容一致,拆分过程未遗漏、误增、拆分数据,可在拆分后对比第一文件中的数据数量与各拆分文件中总数据数量,若不一致,则说明对第一文件拆分过程出现错误,可重新对第一文件进行拆分,直至保证拆分后对比第一文件中的数据数量与各拆分文件中总数据数量一致;若拆分后对比第一文件中的数据数量与各拆分文件中总数据数量一致,说明对第一文件拆分过程很大可能未出现错误,可继续进行后续S202-S204的过程,通过S204可保证所有过程都未出现错误,数据迁移成功。
在上述任一实施例的基础上,如图7所示,S202所述根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表后,还包括:
S601、对比待导出的原数据库表的数据数量、所述第一文件中的数据数量、以及所述目标数据库表的数据数量;
S602、若确定待导出的原数据库表的数据数量与所述第一文件中的数据数量一致,而所述第一文件中的数据数量与所述目标数据库表的数据数量不一致,则确定不一致的异常数据以及其数量;
S603、若数量超过预设数量阈值,则进行异常状况告警,在异常状况解除后,删除所述目标数据库表,并重新根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成新的目标数据库表;或者
S604、若数量未超过预设数量阈值,则从所述第一文件中获取与所述异常数据对应的正确数据,生成第四文件,并将所述第四文件中的数据导入到所述目标数据库中,以对所述目标数据库中的所述异常数据进行新增或修改。
在本实施例中,在将第一文件中的数据导入到目标数据库中后,也可进行检查和核对,可对比原数据库表的数据数量、第一文件中的数据数量、以及目标数据库表的数据数量,若确定待导出的原数据库表的数据数量与第一文件中的数据数量一致,而第一文件中的数据数量与目标数据库表的数据数量不一致,则说明在将第一文件中的数据导入到目标数据库中的过程出现错误,此时可基于对比结果和导入日志确定不一致的异常数据以及其数量,若异常数据的数据量超过预设数量阈值,可确定导入过程出现异常状况导致大量数据导入错误,此时可进行异常状况告警,以通知用户排查和维护,在异常状况解除后,可删除目标数据库中的目标数据库表,并重新将数据导入到目标数据库中;而若异常数据的未数据量超过预设数量阈值,则不需要删除目标数据库表、再重新导入数据,而只需要获取到异常数据对应的正确数据,生成第四文件,将第四文件中的数据通过SQLLDR工具导入目标数据库表中,从而实现对异常数据的新增或修改,保证了数据迁移的准确性,无需人工参与。
进一步的,若在确定确定待导出的原数据库表的数据数量与第一文件中的数据数量一致,第一文件中的数据数量与目标数据库表的数据数量一致,则可继续执行后续S203-S204的过程,通过S204可保证所有过程都未出现错误、且数据内容也一致,数据迁移成功。
可选的,若在之前已经对比过原数据库表的数据数量与第一文件中的数据数量、且对比一致的情况下,S601中也可仅对比第一文件中的数据数量以及目标数据库表的数据数量即可。
上述各实施例提供的数据迁移方法,通过上述过程能够一键式完成海量数据迁移、检查与核对。不仅能够根据数据库表容量和/或系统性能选择最优导出、导入策略,实现数据高效、准确地导出、导入,减少人工参与,此外还每个过程可进行检查和核对、二次导入,并且最后基于文件对比实现数据全量比对,保证了海量数据迁移的准确性。该数据迁移方法可以Shell脚本语言编写,此外,还可提供一主控制程序,负责总体流程、逻辑判断与分支处理,通过可视化界面提供简单命令供用户调用,包括预置多种形式、不同参数的数据迁移命令,减少手工操作的工作量,避免了手工输入数据迁移命令带来的问题,可以根据需要分别调用不同的处理程序;允许用户输入数据库参数,允许用户切换主控程序视图,可选择简单视图或详细视图,便于对数据迁移的控制。
图8为本发明实施例数据迁移设备的结构图。本实施例提供的数据迁移设备可以执行数据迁移方法实施例提供的处理流程,如图8所示,所述数据迁移设备800包括第一导出模块801、导入模块802、第二导出模块803、数据比对模块804。
第一导出模块801,用于将原数据库中待导出的原数据库表的数据导出,得到第一文件;
导入模块802,用于根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表;
第二导出模块803,用于将所述目标数据库的目标数据库表的数据导出,得到第二文件;
数据比对模块804,用于将所述第二文件与所述第一文件进行内容对比,若所述第二文件与所述第一文件内容一致,则确定数据迁移成功。
在上述任一实施例的基础上,所述导入模块802在根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中时,用于:
若所述原数据库表的容量不超过预设容量阈值,则确定直接加载参数,并基于所述直接加载参数将所述第一文件中的数据导入到所述目标数据库中;或者
若所述原数据库表的容量超过预设容量阈值,则确定并行加载参数以及并行数,并基于并行数对所述第一文件进行拆分,并基于所述并行加载参数将拆分文件中的数据并行导入到所述目标数据库中。
在上述任一实施例的基础上,所述导入模块802在确定并行加载参数以及并行数时,用于:
根据所述原数据库表的容量以及系统性能信息,确定并行加载参数以及并行数,所述系统性能信息包括以下至少一项:CPU性能、I/O性能、网络性能。
在上述任一实施例的基础上,所述数据比对模块804还用于:
若所述第二文件与所述第一文件内容不一致,则确定不一致的异常数据;
从所述第一文件中获取与所述异常数据对应的正确数据,生成第三文件,并将所述第三文件中的数据导入到所述目标数据库中,以对所述目标数据库中的所述异常数据进行新增或修改;或者,
对所述目标数据库中所述异常数据进行删除。
在上述任一实施例的基础上,所述设备还包括数据检查模块,用于:
在将原数据库中待导出的原数据库表的数据导出,得到第一文件后,对比待导出的原数据库表的数据数量与所述第一文件中的数据数量;
若不一致,则重新将所述原数据库中待导出的原数据库表的数据导出,得到新的第一文件。
在上述任一实施例的基础上,所述数据检查模块还用于:
在基于并行数对所述第一文件进行拆分后,对比所述第一文件中的数据数量与各拆分文件中总数据数量;
若不一致,则重新基于并行数对所述第一文件进行拆分。
在上述任一实施例的基础上,所述数据检查模块还用于:
在根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表后,对比待导出的原数据库表的数据数量、所述第一文件中的数据数量、以及所述目标数据库表的数据数量;
若确定待导出的原数据库表的数据数量与所述第一文件中的数据数量一致,而所述第一文件中的数据数量与所述目标数据库表的数据数量不一致,则确定不一致的异常数据以及其数量;
若数量超过预设数量阈值,则进行异常状况告警,在异常状况解除后,删除所述目标数据库表,并重新根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成新的目标数据库表;或者
若数量未超过预设数量阈值,则从所述第一文件中获取与所述异常数据对应的正确数据,生成第四文件,并将所述第四文件中的数据导入到所述目标数据库中,以对所述目标数据库中的所述异常数据进行新增或修改。
本发明实施例提供的数据迁移设备可以具体用于执行上述图2-3、5-7所提供的方法实施例,具体功能此处不再赘述。
本发明实施例提供的数据迁移设备,通过将原数据库中待导出的原数据库表的数据导出,得到第一文件;根据数据库表的容量信息和/或系统性能信息确定迁移策略,并根据迁移策略将第一文件中的数据导入到目标数据库中,形成目标数据库表;将目标数据库的目标数据库表的数据导出,得到第二文件;将第二文件与第一文件进行内容对比,若第二文件与第一文件内容一致,则确定数据迁移成功。通过上述过程能够一键式完成海量数据迁移、检查与核对。不仅能够根据数据库表容量和/或系统性能选择最优导出、导入策略,实现数据高效、准确地导出、导入,减少人工参与,此外还基于文件对比实现数据全量比对,保证了海量数据迁移的准确性。
图9为本发明实施例提供的电子设备的结构示意图。本发明实施例提供的电子设备可以执行数据迁移方法实施例提供的处理流程,如图9所示,电子设备90包括存储器91、处理器92、计算机程序;其中,计算机程序存储在存储器91中,并被配置为由处理器92执行以上实施例所述的数据迁移方法。此外,电子设备90还可具有通讯接口93,用于接收传输指令和数据。
图9所示实施例的电子设备可用于执行上述数据迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的数据迁移方法。
本实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的数据迁移方法。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (7)

1.一种数据迁移方法,其特征在于,包括:
将原数据库中待导出的原数据库表的数据导出,得到第一文件;
根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表,其中,所述原数据库为第一数据库,所述目标数据库为第二数据库,所述第一数据库和所述第二数据库为异构数据库;
将所述目标数据库的目标数据库表的数据导出,得到第二文件;
将所述第二文件与所述第一文件进行内容对比,若所述第二文件与所述第一文件内容一致,则确定数据迁移成功;
若所述第二文件与所述第一文件内容不一致,则确定不一致的异常数据;
从所述第一文件中获取与所述异常数据对应的正确数据,生成第三文件,并将所述第三文件中的数据导入到所述目标数据库中,以对所述目标数据库中的所述异常数据进行新增或修改;或者,对所述目标数据库中所述异常数据进行删除;
所述根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,包括:
若所述原数据库表的容量不超过预设容量阈值,则确定直接加载参数,并基于所述直接加载参数将所述第一文件中的数据导入到所述目标数据库中;或者
若所述原数据库表的容量超过预设容量阈值,则根据所述原数据库表的容量以及系统性能信息,确定并行加载参数以及并行数,所述系统性能信息包括以下至少一项:CPU性能、I/O性能、网络性能,并基于并行数对所述第一文件进行拆分,并基于所述并行加载参数将拆分文件中的数据并行导入到所述目标数据库中。
2.根据权利要求1所述的方法,其特征在于,所述将原数据库中待导出的原数据库表的数据导出,得到第一文件后,还包括:
对比待导出的原数据库表的数据数量与所述第一文件中的数据数量;
若不一致,则重新将所述原数据库中待导出的原数据库表的数据导出,得到新的第一文件。
3.根据权利要求1所述的方法,其特征在于,所述基于并行数对所述第一文件进行拆分后,还包括:
对比所述第一文件中的数据数量与各拆分文件中总数据数量;
若不一致,则重新基于并行数对所述第一文件进行拆分。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表后,还包括:
对比待导出的原数据库表的数据数量、所述第一文件中的数据数量、以及所述目标数据库表的数据数量;
若确定待导出的原数据库表的数据数量与所述第一文件中的数据数量一致,而所述第一文件中的数据数量与所述目标数据库表的数据数量不一致,则确定不一致的异常数据以及其数量;
若数量超过预设数量阈值,则进行异常状况告警,在异常状况解除后,删除所述目标数据库表,并重新根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成新的目标数据库表;或者
若数量未超过预设数量阈值,则从所述第一文件中获取与所述异常数据对应的正确数据,生成第四文件,并将所述第四文件中的数据导入到所述目标数据库中,以对所述目标数据库中的所述异常数据进行新增或修改。
5.一种数据迁移设备,其特征在于,包括:
第一导出模块,用于将原数据库中待导出的原数据库表的数据导出,得到第一文件;
导入模块,用于根据所述原数据库表的容量信息和/或系统性能信息确定迁移策略,并根据所述迁移策略将所述第一文件中的数据导入到目标数据库中,形成目标数据库表,其中,所述原数据库为第一数据库,所述目标数据库为第二数据库,所述第一数据库和所述第二数据库为异构数据库;
第二导出模块,用于将所述目标数据库的目标数据库表的数据导出,得到第二文件;
数据比对模块,用于将所述第二文件与所述第一文件进行内容对比,若所述第二文件与所述第一文件内容一致,则确定数据迁移成功;若所述第二文件与所述第一文件内容不一致,则确定不一致的异常数据;从所述第一文件中获取与所述异常数据对应的正确数据,生成第三文件,并将所述第三文件中的数据导入到所述目标数据库中,以对所述目标数据库中的所述异常数据进行新增或修改;或者,对所述目标数据库中所述异常数据进行删除;
所述导入模块,具体用于:
若所述原数据库表的容量不超过预设容量阈值,则确定直接加载参数,并基于所述直接加载参数将所述第一文件中的数据导入到所述目标数据库中;或者
若所述原数据库表的容量超过预设容量阈值,则根据所述原数据库表的容量以及系统性能信息,确定并行加载参数以及并行数,所述系统性能信息包括以下至少一项:CPU性能、I/O性能、网络性能,并基于并行数对所述第一文件进行拆分,并基于所述并行加载参数将拆分文件中的数据并行导入到所述目标数据库中。
6.一种电子设备,其特征在于,包括:至少一个处理器;以及存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-4任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-4任一项所述的方法。
CN202110668073.8A 2021-06-16 2021-06-16 数据迁移方法、设备、存储介质及程序产品 Active CN113297182B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110668073.8A CN113297182B (zh) 2021-06-16 2021-06-16 数据迁移方法、设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110668073.8A CN113297182B (zh) 2021-06-16 2021-06-16 数据迁移方法、设备、存储介质及程序产品

Publications (2)

Publication Number Publication Date
CN113297182A CN113297182A (zh) 2021-08-24
CN113297182B true CN113297182B (zh) 2024-01-30

Family

ID=77328479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110668073.8A Active CN113297182B (zh) 2021-06-16 2021-06-16 数据迁移方法、设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN113297182B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742319A (zh) * 2021-09-14 2021-12-03 中电福富信息科技有限公司 一种基于expect的不同数据库管理系统的数据迁移方法
CN113901031A (zh) * 2021-10-21 2022-01-07 掌阅科技股份有限公司 数据库迁移方法、电子设备及存储介质
CN114077600B (zh) * 2021-11-26 2022-09-02 山东福生佳信科技股份有限公司 一种基于arm内核的数据异构迁移可视化分析方法
CN114077602B (zh) * 2022-01-13 2022-05-17 中兴通讯股份有限公司 数据迁移方法和装置、电子设备、存储介质
CN115426290A (zh) * 2022-09-23 2022-12-02 中国农业银行股份有限公司 数据迁移及校验方法、装置、计算机设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266606A (zh) * 2007-03-15 2008-09-17 阿里巴巴公司 一种基于Oracle数据库的在线数据迁移方法
CN102331993A (zh) * 2011-06-23 2012-01-25 北京新媒传信科技有限公司 分布式数据库的数据迁移方法和分布式数据库迁移系统
EP2610764A1 (en) * 2011-12-30 2013-07-03 BMC Software, Inc. Systems and methods for migrating database data
CN104899333A (zh) * 2015-06-24 2015-09-09 浪潮(北京)电子信息产业有限公司 一种Oracle数据库跨平台迁移方法和系统
WO2018051096A1 (en) * 2016-09-15 2018-03-22 Gb Gas Holdings Limited System for importing data into a data repository
CN108241632A (zh) * 2016-12-23 2018-07-03 航天星图科技(北京)有限公司 一种面向数据库数据迁移的数据验证方法
CN110659255A (zh) * 2018-06-28 2020-01-07 武汉斗鱼网络科技有限公司 一种数据迁移方法、装置、系统以及存储介质
CN110674108A (zh) * 2019-08-30 2020-01-10 中国人民财产保险股份有限公司 数据处理方法及装置
CN112632035A (zh) * 2020-12-24 2021-04-09 广州辰创科技发展有限公司 面向自主可控数据库迁移方法及存储介质
CN112632038A (zh) * 2020-12-31 2021-04-09 中国平安人寿保险股份有限公司 数据库迁移方法、装置、终端及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810223B2 (en) * 2018-06-14 2020-10-20 Accenture Global Solutions Limited Data platform for automated data extraction, transformation, and/or loading

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266606A (zh) * 2007-03-15 2008-09-17 阿里巴巴公司 一种基于Oracle数据库的在线数据迁移方法
CN102331993A (zh) * 2011-06-23 2012-01-25 北京新媒传信科技有限公司 分布式数据库的数据迁移方法和分布式数据库迁移系统
EP2610764A1 (en) * 2011-12-30 2013-07-03 BMC Software, Inc. Systems and methods for migrating database data
CN104899333A (zh) * 2015-06-24 2015-09-09 浪潮(北京)电子信息产业有限公司 一种Oracle数据库跨平台迁移方法和系统
WO2018051096A1 (en) * 2016-09-15 2018-03-22 Gb Gas Holdings Limited System for importing data into a data repository
CN108241632A (zh) * 2016-12-23 2018-07-03 航天星图科技(北京)有限公司 一种面向数据库数据迁移的数据验证方法
CN110659255A (zh) * 2018-06-28 2020-01-07 武汉斗鱼网络科技有限公司 一种数据迁移方法、装置、系统以及存储介质
CN110674108A (zh) * 2019-08-30 2020-01-10 中国人民财产保险股份有限公司 数据处理方法及装置
CN112632035A (zh) * 2020-12-24 2021-04-09 广州辰创科技发展有限公司 面向自主可控数据库迁移方法及存储介质
CN112632038A (zh) * 2020-12-31 2021-04-09 中国平安人寿保险股份有限公司 数据库迁移方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN113297182A (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN113297182B (zh) 数据迁移方法、设备、存储介质及程序产品
CN110209650B (zh) 数据规整迁移方法、装置、计算机设备和存储介质
CN110569214B (zh) 用于日志文件的索引构建方法、装置及电子设备
US10515078B2 (en) Database management apparatus, database management method, and storage medium
CN111324606B (zh) 数据分片的方法及装置
JP6633642B2 (ja) 分散データベースにおけるデータブロックを処理する方法およびデバイス
CN110245145A (zh) 关系型数据库到Hadoop数据库的结构同步方法和装置
CA3131725C (en) Sql optimization method and device, computer equipment and storage medium
US20190324947A1 (en) Method, device and computer program product for deleting snapshots
CN111737227A (zh) 数据修改方法及系统
CN112416907A (zh) 一种数据库表数据导入导出方法、终端设备及存储介质
CN112306957A (zh) 获取索引节点号的方法、装置、计算设备和存储介质
CN109947712A (zh) 计算框架内自动合并文件的方法、系统、设备及介质
US10089350B2 (en) Proactive query migration to prevent failures
CN112749125A (zh) 文本的处理方法及装置、文本的处理系统
CN107330031A (zh) 一种数据存储的方法、装置及电子设备
CN113420081A (zh) 数据校验方法、装置、电子设备及计算机存储介质
CN117112522A (zh) 并发进程日志管理方法、装置、设备和存储介质
CN110851437A (zh) 一种存储方法、装置及设备
CN115098503A (zh) 空值数据处理方法、装置、计算机设备以及存储介质
CN113190531A (zh) 一种数据库迁移方法、装置、设备和存储介质
US10474651B2 (en) Analysis of system information
CN114153647B (zh) 云存储系统的快速数据校验方法、装置及系统
CN108572994A (zh) 一种数据迁移的处理方法及服务器
CN108958654B (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
GR01 Patent grant
GR01 Patent grant