实现异构数据库数据迁移的系统、装置及方法

文档序号:6439869阅读:201来源:国知局
专利名称:实现异构数据库数据迁移的系统、装置及方法
技术领域
本发明涉及计算机技术中不同数据库之间数据迁移的方法,尤其涉及实现异构平台下数据库数据迁移的系统、装置及方法。
背景技术
信息技术(IT,Information Technology)系统经过长时期运行,一方面因其异构化为企业的信息升级和管理带来了更大的复杂性,另一方面也因方便用户使用而起的作用愈大,导致数据量也愈来愈巨大,以及业务类型也愈来愈多样化。这样一来,使得企业的各项运作都较强地依赖于IT系统的正常运行,由此使得很多IT人员都面临着类似如下一些问题(1)如何实现不同平台架构下的客户业务的迁移例如,将非X86架构下的客户业务迁移到一个可以不停扩展和扩张的X86架构下, 能够为后期的业务应用升级和迁移提供更多的灵活性。(2)如何确保不同平台架构下的客户业务的数据平滑快速地迁移,并确保安全性及可靠性例如,确保将非X86架构下数据库中的用户业务数据平滑快速地迁移到X86架构的数据库中,并确保数据迁移过程中非X86架构下的用户业务快速恢复。(3)如何实现不同平台架构下的数据库之间的数据迁移目前应用广泛的异构平台架构下数据迁移的方案,例如RationalRose、 PowerDesigner建模工具与数据库自带的高可用组件方案等,虽然可利用数据库的逆向工程方案及数据库自带的高可用组件在一定程度上可以满足部分客户业务应用数据迁移的需求,但是同时也存在诸多不足,主要表现在如下一些方面1)由于上述方案只是建模工具,不能生成默认数据,不能自动将源端数据库的数据模型转换成目标端数据库的数据模型,故很难在短时间内实现异构数据库的数据快速迁移。2)不能确保目标端数据库处于激活状态,从而造成数据迁移时需较长的停机时间,譬如Oracle的自身组件物理备库机制等。由于上述技术上的不足,使得IT人员难以解决其所面临的上述种种问题,导致出现不利于技术继续发展的瓶颈。

发明内容
本发明所要解决的技术问题是提供一种实现异构数据库数据迁移的系统、装置及方法,能够确保异构下的客户业务数据平滑快速地迁移。为了解决上述技术问题,本发明提供了一种实现异构数据库数据迁移的系统,包括依次连接的源端数据库、数据迁移装置以及目标端数据库,其中源端数据库,用于通过关系数据库的逆向工程将本数据库的数据模型或应用业务转换成通用的数据模型或业务;数据迁移装置,用于根据目标端数据库的特征将源端数据库转换的通用标准的数据模型或业务编译、解译成目标端数据库标准的数据模型或应用业务,并解译成标准的数据库查询语句传输给目标端数据库;目标端数据库,用于执行数据迁移装置传输的标准的数据库查询语句,并通过管道机制型通道完成从源端数据库的数据迁移。进一步地,数据迁移装置包括相互连接的专用数据分析引擎模块以及专用解译模块,目标端数据库内置有标准数据查询引擎模块;其中专用数据分析引擎模块,用于根据源端数据库和目标端数据库的数据模型特征或应用业务特征,通过专用数据分析引擎分析出源端数据库和目标端数据库各自的特点和语法差异,并将源端数据库数据模型或应用业务转换成通用标准的数据库数据模型或业务, 输出给专用解译模块;专用解译模块,用于根据专用数据分析引擎模块分析出的源端数据库和目标端数据库各自的特点和语法差异,在专用结构化查询语言解译器中通过编译进程将通用标准的数据库数据模型或业务转换成通用标准的专用结构化查询语言语句,并通过解译进程将通用标准的专用结构化查询语言语句转换成目标端数据库标准的专用结构化查询语言语句, 通过互联网传输给目标端数据库内置的标准数据查询引擎模块;标准数据查询引擎模块,用于通过标准的结构化查询语言引擎将收到的标准的结构化查询语言语句提供给目标端数据库对应的应用进程执行,并触发应用进程通过管道机制型通道完成从源端数据库迁移数据。进一步地,在专用数据分析引擎模块还连接有通用数据分析引擎模块,其中通用数据分析引擎模块,用于根据源端数据库和所述目标端数据库的数据模型特征或应用业务特征将通用的数据模型或业务指派给专用数据分析引擎模块中相应的专用数据分析引擎;专用数据分析引擎模块通过通用数据分析引擎模块指派的专用数据分析引擎分析出源端数据库和目标端数据库各自的特点和语法差异,将通用的数据模型或业务转换成通用标准的数据库的数据模型或业务。为了解决上述技术问题,本发明提供了一种实现异构数据库数据迁移的装置,包括相互连接的专用数据分析引擎模块以及专用解译模块,其中专用数据分析引擎模块,用于根据源端数据库和目标端数据库的数据模型特征或应用业务特征,通过专用数据分析引擎分析出源端数据库和目标端数据库各自的特点和语法差异,并将源端数据库数据模型或应用业务转换成通用标准的数据库数据模型或业务, 输出给专用解译模块;专用解译模块,用于根据专用数据分析引擎模块分析出的源端数据库和目标端数据库各自的特点和语法差异,在专用结构化查询语言解译器中通过编译进程将通用标准的数据库数据模型或业务转换成通用标准的专用结构化查询语言语句,并通过解译进程将通用标准的专用结构化查询语言语句转换成目标端数据库标准的专用结构化查询语言语句, 通过互联网传输给所述目标端数据库。进一步地,在专用数据分析引擎模块之前还包括通用数据分析引擎模块,其中
通用数据分析引擎模块,用于根据源端数据库和目标端数据库的数据模型特征或应用业务特征将通用的数据模型或业务指派给专用数据分析引擎模块中相应的专用数据分析引擎;专用数据分析引擎模块通过通用数据分析引擎模块指派的专用数据分析引擎分析出源端数据库和目标端数据库各自的特点和语法差异,将通用的数据模型或业务转换成通用标准的数据库的数据模型或业务。为了解决上述技术问题,本发明提供了一种实现异构数据库数据迁移的方法,涉及源端数据库和数据迁移装置及目标端数据库,该方法包括源端数据库通过关系数据库的逆向工程将本数据库的数据模型或应用业务转换成通用标准的数据模型或业务;数据迁移装置根据目标端数据库的特征将源端数据库转换的通用标准的数据模型或业务编译、解译成目标端数据库标准的数据模型或应用业务,并解译成标准的数据库查询语句传输给目标端数据库。进一步地,在数据迁移装置编译通用的数据模型或业务之前,还包括建立编译队列和传输队列,并建立编译进程、解译进程以及传输进程。进一步地,数据迁移装置根据目标端数据库的特征将源端数据库转换的通用的数据模型或业务编译、解译成目标端数据库标准的数据模型或应用业务,并解译成标准的数据库查询语句传输给目标端数据库,具体包括编译进程在所述编译队列有空闲空间时,将源端数据库转换的通用标准的数据库数据模型或业务编译成目标数据库标准的数据模型或应用业务,并依次记载在编译队列中;解译进程在传输队列有空闲空间时,依次将编译队列中的目标端数据库标准的数据模型或应用业务解译成标准的专用结构化查询语言语句,然后记载在传输队列中;传输进程将所述传输队列中的标准的专用结构化查询语言语句传输给目标端数据库。进一步地,该方法还包括目标端数据库执行标准的数据库查询语句,并触发应用进程通过管道机制型通道完成从源端数据库的数据迁移。进一步地,目标端数据库执行标准的数据库查询语句,并触发应用进程通过管道机制型通道完成从所述源端数据库的数据迁移,具体包括目标端数据库监听到所述标准的结构化查询语言语句,通过内置的标准结构化查询语言引擎解译所述标准的结构化查询语言语句,由相应的应用进程执行解译的结构化查询语言语句过程中,通过管道机制型通道完成数据迁移。本发明基于关系数据库的逆向工程,同时加入数据分析转换器和SQL编译器引擎来完成跨平台数据库跨数据库不同数据类型之间的数据快速迁移,通过分析最根本的数据库模型方法解译异构环境下的数据,大大减轻了主机压力和网络负担,整个分析、解译及应用进程对用户均是透明的,从而能够较好地实现跨平台跨数据库数据的快速迁移。


图1为本发明的实现异构数据库数据迁移的系统实施例的结构框图;图2为本发明将源端数据库的数据模型转换成通用的数据模型的示意图;图3为本发明的实现异构数据库数据迁移的方法实施例的流程图。
具体实施例方式以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。以下例举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。关系数据库是在一个给定的应用领域中将所有实体及实体之间联系的关系进行集合所构成的。关系数据库的型称为关系数据库模式,是对关系数据库的描述,涉及若干域的定义,即在这些域上定义若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库。通常,异构数据库的数据迁移均是针对关系数据库。当客户操作系统的环境需要从旧版本升级新版本,或者,从一个较低级版本的旧数据库更新为较高级版本的新数据库时,可以通过本发明的实现异构数据库数据迁移的系统及方法,实现异构平台下新旧版本异构数据库快速的数据迁移。本发明的主要设计思想,是基于关系数据库的逆向工程技术实现异构数据库的数据快速迁移,即由于各种关系数据库均是根据数据模型来创建的,因此首先通过逆向工程将源端数据库的数据模型转换成基本的数据模型(即数据库数据模型),再将这种基本的数据模型通过正向工程转换成目标端数据库所需要的数据类型,由此解决异构数据库的数据快速迁移。通过结构化查询语言(SQL,Structured Query Language)编译器引擎解决不同数据库之间存储过程、触发器等语法上的差异,实现不同数据库类型之间在应用逻辑上的传输,从而确保源端和目标端的数据一致性;同时,利用不同类型的数据库都内置有标准的 SQL编译器引擎,在目标端数据库通过应用进程调用该引擎执行转换过的SQL语句后,触发管道机制通道进行从源端数据库到目标端数据库的数据传输,并在此过程中通过协调解译进程、编译进程和应用进程三者之间的工作,实现异构数据库之间数据的快速迁移。如图1所示,表示了本发明的实现异构数据库数据迁移的系统实施例,包括依次连接的源端数据库、本发明的数据迁移装置实施例以及目标端数据库,其中源端数据库,用于通过关系数据库的逆向工程,将本数据库的数据模型或应用业务转换成通用的数据模型或业务;数据迁移装置,用于根据目标端数据库的特征将源端数据库转换的通用的数据模型或业务编译、解译成目标端数据库标准的数据模型或应用业务,并解译成标准的数据库查询语句传输给目标端数据库;目标端数据库,用于执行数据迁移装置传输的标准的数据库SQL语句,并通过管道机制型通道完成从源端数据库的数据迁移。在上述系统实施例中,源端数据库通过关系数据库的逆向工程将本数据库的数据模型转换成通用的数据模型,譬如将本数据库执行应用业务形成的一些具体数据模型(类似于E-R图)转换成通用数据模型,如图2所示;将触发器、存储、作业等具体应用业务转换成通用业务模型。
在上述系统实施例中,管道机制型通道作为源端数据库和目标端数据库传输数据库的通道,采用了缓冲机制。当目标端数据库完成数据模型结构或应用业务的建立之后,目标端会反馈给应用进程完成的标志,应用进程收到此标志后触发源端数据库开始通过该通道将数据向目标端数据库传输,当传输出现短暂网络中断时,由于该通道采用了管道的缓冲机制而能够实现续传,因此不会影响传输的效率。从而保证了数据的快速连续传输。在上述系统实施例中,数据迁移装置实施例如图1所示,包括相互连接的专用数据分析引擎模块以及专用解译模块,目标端数据库内置标准数据查询引擎模块;其中专用数据分析引擎模块,用于根据源端数据库和目标端数据库的数据模型特征或应用业务特征,通过专用数据分析引擎(1 η中的一个)分析出源端数据库和目标端数据库各自的特点和语法差异,并将源端数据库数据模型或应用业务转换成通用标准的数据库数据模型或业务,并输出给专用解译模块;专用解译模块,用于根据专用数据分析引擎模块分析出的源端数据库和目标端数据库各自的特点和语法差异,在专用SQL解译器(1 η中的一个)中通过编译进程将通用标准的数据库的数据模型或业务转换成通用标准的SQL语句,并通过解译进程将通用标准的SQL语句转换成目标端数据库标准的SQL语句,通过互联网传输给目标端数据库内置的标准数据查询引擎模块;标准数据查询引擎模块,用于通过标准SQL引擎将业务解译模块解译的标准的 SQL语句提供给目标端数据库对应的应用进程正向的执行,并触发应用进程通过管道机制型通道完成从源端数据库迁移数据。在上述装置实施例中,在专用数据分析引擎模块之前还包括通用数据分析引擎模块,其中通用数据分析引擎模块,用于根据源端数据库和目标端数据库的数据模型特征或应用业务特征将通用的数据模型或业务指派给专用数据分析引擎模块中相应的专用数据分析引擎;专用数据分析引擎模块通过通用数据分析引擎模块指派的专用数据分析引擎分析出源端数据库和目标端数据库各自的特点和语法差异,并将通用的数据模型或业务转换成通用标准的数据库数据模型或业务。本发明针对以上系统实施例及其装置实施例,相应地还提供了实现异构数据库数据迁移的方法实施例,其流程如图3所示,包括如下步骤100 源端数据库通过逆向工程将本数据库的数据模型和应用业务转换成通用数据模型和业务;101 建立编译队列和传输队列,并建立编译进程、解译进程以及传输进程;本发明的数据迁移装置为各类源端数据库转换的通用数据模型和业务和建立编译队列和传输队列,同时建立编译进程、解译进程以及传输进程。102 判断编译队列是否有空闲空间,是则执行下列步骤,否则执行步骤109 ;103 编译进程将源端数据库转换的通用标准的数据库数据模型或业务编译成目标数据库标准的数据模型或应用业务,并依次记载在编译队列中;编译进程根据获取的目标端数据库的数据模型特征将通用标准的数据模型编译成目标端数据库标准的数据模型,或根据目标端数据库的应用业务特征将通用的业务编译成目标端数据库标准的应用业务,并依次记载在编译队列中。104 判断传输队列是否有空闲空间,是则执行下列步骤,否则执行步骤110 ;—旦传输队列空间满时,会触发解译进程停止解译,直到传输队列有空余空间时, 再触发解译进程进行解译。105 解译进程依次将编译队列中的目标端数据库标准的数据模型或应用业务解译成标准的SQL语句,然后记载在传输队列中;106 传输进程将传输队列中记载的标准的SQL语句传输给目标端数据库;传输进程通过基于TCP/IP协议传输SQL语句,可以保证异地远距离传输;并且由于SQL语句本身占用带宽较小,故可减轻网络压力。107 目标端数据库通过内置的标准SQL引擎从标准的SQL语句中解译出数据模型和/或应用业务,并提供给相应的应用进程;108 目标端数据库的应用进程通过构建的管道机制型通道迁移源端数据库的数据;结束流程。目标端数据库通过应用程序监听察觉到传输的标准的SQL语句,并通过目标端数据库内置的标准SQL引擎执行解译的标准的SQL语句,触发应用进程通过管道机制型通道从源端数据库快速迁移数据到异构的目标端数据库。109 编译进程停止编译,执行步骤104 ;110 解译进程停止解译,执行步骤106。在上述方法实施例的整个执行过程中,通过在本发明的数据迁移装置实施例中弓丨入编译进程、解译进程、及传输进程,对源端数据库转换的通用的数据模型和业务进行编译,并将编译成的目标数据库的数据模型及应用业务解译出相应的SQL语句,传输到目标端数据库由应用进程执行。这三个进程均不会对源端数据库造成任何影响,通过本发明的数据迁移装置实施例中内置的进程工作触发关系,即使在某个进程由于意外原因宕掉,也不会造成源端数据库数据的断传。本发明的上述方法实施例从常见关系数据库的运行原理入手,引入了关系数据库的逆向工程,将不同类型数据库之间的数据模型差异和SQL语法差异抽象成与数据库类型无关的标准的SQL语句,并利用数据迁移装置将标准的SQL语句解译成目标端数据库执行的SQL语句,传输到目标端数据库内置的标准SQL引擎上执行,从而确保异构数据库之间数据的快速迁移。另外,通过装置实施例中内置的触发机制,来协调编译进程、解译进程、传输进程之间的同步关系,以确保源端数据库的数据不断传。对于本领域的专业人员来说,在了解了本发明内容和原理后,能够在不背离本发明的原理和范围的情况下,根据本发明的方法进行形式和细节上的各种修正和改变,但是这些基于本发明的修正和改变仍在本发明的权利要求保护范围之内。
权利要求
1.一种实现异构数据库数据迁移的系统,其特征在于,包括依次连接的源端数据库、数据迁移装置以及目标端数据库,其中源端数据库,用于通过关系数据库的逆向工程将本数据库的数据模型或应用业务转换成通用的数据模型或业务;数据迁移装置,用于根据目标端数据库的特征将源端数据库转换的通用标准的数据模型或业务编译、解译成目标端数据库标准的数据模型或应用业务,并解译成标准的数据库查询语句传输给目标端数据库;目标端数据库,用于执行数据迁移装置传输的标准的数据库查询语句,并通过管道机制型通道完成从源端数据库的数据迁移。
2.按照权利要求1所述的系统,其特征在于,所述数据迁移装置包括相互连接的专用数据分析引擎模块以及专用解译模块,所述目标端数据库内置有标准数据查询引擎模块; 其中专用数据分析引擎模块,用于根据源端数据库和目标端数据库的数据模型特征或应用业务特征,通过专用数据分析引擎分析出源端数据库和目标端数据库各自的特点和语法差异,并将源端数据库数据模型或应用业务转换成通用标准的数据库数据模型或业务,输出给专用解译模块;专用解译模块,用于根据专用数据分析引擎模块分析出的源端数据库和目标端数据库各自的特点和语法差异,在专用结构化查询语言解译器中通过编译进程将通用标准的数据库数据模型或业务转换成通用标准的专用结构化查询语言语句,并通过解译进程将通用标准的专用结构化查询语言语句转换成目标端数据库标准的专用结构化查询语言语句,通过互联网传输给目标端数据库内置的标准数据查询弓I擎模块;标准数据查询引擎模块,用于通过标准的结构化查询语言引擎将收到的标准的结构化查询语言语句提供给目标端数据库对应的应用进程执行,并触发应用进程通过管道机制型通道完成从所述源端数据库迁移数据。
3.按照权利要求2所述的系统,其特征在于,在所述专用数据分析引擎模块还连接有通用数据分析引擎模块,其中通用数据分析引擎模块,用于根据所述源端数据库和所述目标端数据库的数据模型特征或应用业务特征将通用的数据模型或业务指派给专用数据分析引擎模块中相应的专用数据分析引擎;所述专用数据分析引擎模块通过通用数据分析引擎模块指派的专用数据分析引擎分析出所述源端数据库和目标端数据库各自的特点和语法差异,将所述通用的数据模型或业务转换成所述通用标准的数据库的数据模型或业务。
4.一种实现异构数据库数据迁移的装置,包括相互连接的专用数据分析引擎模块以及专用解译模块,其中专用数据分析引擎模块,用于根据源端数据库和目标端数据库的所述数据模型特征或所述应用业务特征,通过专用数据分析引擎分析出源端数据库和目标端数据库各自的特点和语法差异,并将源端数据库数据模型或应用业务转换成通用标准的数据库数据模型或业务,输出给专用解译模块;专用解译模块,用于根据专用数据分析引擎模块分析出的源端数据库和目标端数据库各自的特点和语法差异,在专用结构化查询语言解译器中通过编译进程将通用标准的数据库数据模型或业务转换成通用标准的专用结构化查询语言语句,并通过解译进程将通用标准的专用结构化查询语言语句转换成目标端数据库标准的专用结构化查询语言语句,通过互联网传输给所述目标端数据库。
5.按照权利要求4所述的装置,其特征在于,在所述专用数据分析引擎模块之前还包括通用数据分析引擎模块,其中通用数据分析引擎模块,用于根据所述源端数据库和所述目标端数据库的数据模型特征或应用业务特征将通用的数据模型或业务指派给专用数据分析引擎模块中相应的专用数据分析引擎;所述专用数据分析引擎模块通过通用数据分析引擎模块指派的专用数据分析引擎分析出所述源端数据库和目标端数据库各自的特点和语法差异,将所述通用的数据模型或业务转换成所述通用标准的数据库的数据模型或业务。
6.一种实现异构数据库数据迁移的方法,涉及源端数据库和数据迁移装置及目标端数据库,该方法包括源端数据库通过关系数据库的逆向工程将本数据库的数据模型或应用业务转换成通用标准的数据模型或业务;数据迁移装置根据目标端数据库的特征将源端数据库转换的通用标准的数据模型或业务编译、解译成目标端数据库标准的数据模型或应用业务,并解译成标准的数据库查询语句传输给目标端数据库。
7.按照权利要求6所述的方法,其特征在于,在所述数据迁移装置编译所述通用的数据模型或业务之前,还包括建立编译队列和传输队列,并建立编译进程、解译进程以及传输进程。
8.按照权利要求7所述的方法,其特征在于,所述数据迁移装置根据目标端数据库的特征将源端数据库转换的通用的数据模型或业务编译、解译成目标端数据库标准的数据模型或应用业务,并解译成标准的数据库查询语句传输给目标端数据库,具体包括所述编译进程在所述编译队列有空闲空间时,将所述源端数据库转换的通用标准的数据库数据模型或业务编译成所述目标数据库标准的数据模型或应用业务,并依次记载在编译队列中;所述解译进程在所述传输队列有空闲空间时,依次将所述编译队列中的所述目标端数据库标准的数据模型或应用业务解译成标准的专用结构化查询语言语句,然后记载在所述传输队列中;所述传输进程将所述传输队列中的所述标准的专用结构化查询语言语句传输给所述目标端数据库。
9.按照权利要求8所述的方法,其特征在于,还包括所述目标端数据库执行标准的数据库查询语句,并触发应用进程通过管道机制型通道完成从所述源端数据库的数据迁移。
10.按照权利要求8所述的方法,其特征在于,所述目标端数据库执行标准的数据库查询语句,并触发应用进程通过管道机制型通道完成从所述源端数据库的数据迁移,具体包括所述目标端数据库监听到所述标准的结构化查询语言语句,通过内置的标准结构化查询语言引擎解译所述标准的结构化查询语言语句,由相应的应用进程执行解译的所述结构化查询语言语句过程中,通过所述管道机制型通道完成所述数据迁移。
全文摘要
本发明披露了实现异构数据库数据迁移的系统、装置及方法,其中系统包括源端数据库通过关系数据库的逆向工程将本数据库的数据模型或应用业务转换成通用的数据模型或业务;数据迁移装置根据目标端数据库的特征将源端数据库转换的通用标准的数据模型或业务编译、解译成目标端数据库标准的数据模型或应用业务,并解译成标准的数据库查询语句传输给目标端数据库;目标端数据库执行数据迁移装置传输的标准的数据库查询语句,并通过管道机制型通道完成从源端数据库的数据迁移。本发明能够较好地实现跨平台跨数据库数据的快速迁移。
文档编号G06F17/30GK102508929SQ20111039364
公开日2012年6月20日 申请日期2011年12月1日 优先权日2011年12月1日
发明者乔鑫, 徐国强 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1