异构数据库数据迁移研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

异构数据库数据迁移研究

摘要:数据迁移是指将一种数据环境中的数据根据需要进行某种转换,导入另外一种相异或者相同的数据环境中。异构数据库迁移是指将数据库管理系统中不同的,或者数据结构、数据组成与定义相异的数据之间尽量进行等价、无损的数据转移。通过文献案例和理论研究对异构数据库的迁移技术进行了分析,提出了一种以Java为编程语言和数据库结构JDBC为基础的异构数据库管理系统的迁移方法,并通过实验证实了此方法的有效性。

关键词:企业信息化;数据迁移;异构数据环境;Oracal;SqlServer

0、引言

随着企业的发展,企业原有的各种信息系统常常需要升级,以性能更好、规模更大的系统替代原有的系统。例如企业常常考虑使用0racle或DB2等大型数据库软件来代替MS SqlServer,在信息系统升级中,一个不可避免的问题就是数据迁移。而在不同数据库之间进行数据迁移是其中的一个难点,因为不同厂商的数据库中定义的数据类型不尽相同,企业可以选择一些数据库系统自带的工具软件进行数据迁移,例如Oracle公司的Migration work-Bench、MS SQLServer的DTS(Data Transformation Serv-ice,数据转换服务)。但是这些工具的针对性不强,不够灵活,所以许多企业在升级数据库时,常常自己编写软件来完成数据迁移。

本文设计的系统专门用于MS SQL Server和0racle数据库之间的

数据迁移,本系统采用了Java为编程语言,采用0raclelog和SQL server2005作为数据库环境,并利用Java语言的跨平台性和JDBC的无差异数据使用来为数据迁移提供技术支撑。

1、系统设计和实现

1.1 总体设计

为实现数据迁移功能,将系统划分为下面几个步骤:①读取源数据;②生成数据转换的规则;③使用Java语言实现操作。

1.2 系统结构设计

系统结构用来描述系统内部各组成要素之间的相互联系、相互作用的方式或秩序,即各要素在时间或空间上排列和组合的具体形式。系统功能结构设计如图1所示。下面依照这个结构图来描述各个软件功能模块。

(1)连接模块。使用此系统之前,必须先连接数据库。本功能模块用于连接SQL Server数据库和Oracle数据库,通过输入数据库连接所需的用户名、密码、数据库名称等。

(2)Oracle数据区模块。该模块用于显示所连接的Oracle数据库及表的信息。用户通过连接模块进行数据库连接,如果连接成功,将在窗口中显示当前连接的服务器下各个Oracle数据库的结构,采用树形结构显示。显示信息包括服务器、用户名和当前用户可以访问的表。用户可以查看表名称、表中的字段属性及约束条件等详细信息。

(3)SQL Server数据区模块。该模块用于显示所连接的SQL Server数据库及表的信息。用户通过连接模块进行数据库连接,连接

成功后将在窗口中显示各个数据库的结构,以树形结构显示,结构分3层,最上面是现在已连接的SQL Server数据库的服务器名,第2层为现在可以访问的数据库名。

(4)操作模块。本模块的主要功能是对选中的表进行操作,分为两个界面,左边显示SQL Server数据库信息,右边显示Oracle数据库信息。

迁移表的操作是新建表与删除表操作,用户在界面左边选择SQL Server数据库中的一个表,这时本系统会在连接的Oracle数据库中查找是否存在同样的表,如果没有,将会在Oracle数据库中新建立一个表,表的字段、数据类型、约束条件、主键等信息全部通过读取相应的SQLServer数据库获得,按照本系统预先建立的数据类型转换对应表,生成SQL语句并在Oracle数据库中运行该语句以建立相应的表。这个过程完成了以下操作:读取SQLServer数据库→生成SQL 语句→在Oracle数据中建立表,这就相当于完成了从SQL Server到Oracle的表的迁移。

(5)操作结果模块。本模块用于显示数据迁移完成后的结果。这些信息包括用户选中表中的各个字段信息、表中的具体数据,还有根据数据类型转换规则执行后的一些字段信息和生成的SQL语句,以及在目的数据库表中的新数据和系统本身记录下来的操作日志。

(6)辅助功能。在迁移过程中显示迁移的时间进度表,提示估计完成时间和剩余时间,如果迁移过程中出现错误,将中止迁移操作并且提示错误类型和出错位置等信息。

2、系统详细设计

详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法逻辑上要正确且算法描述要简明易懂。这里仅描述这个阶段的关键步骤。

2.1 操作区模块

迁移模块主要完成的工作有:

(1)连接Oracle和SQL Server数据库。

(2)从SQL Server到Oracle数据库的迁移。该操作实现过程如下:①从SQL Server数据库中获取到将要迁移的表;②获得表的详细信息:表名、数据类型、约束条件、主键等;③从Oracle数据库中寻找相应的数据库,如果没有则重新建立新数据库;④完成从SQL Server到Oracle的迁移;⑤提示迁移成功消息框,完成迁移日志记录。

(3)从Oracle到SQL Server数据库的迁移。实现的方法和从SQL Server到Oracle数据库的迁移方法相似,不再赘述。

2.2 大数据字段的迁移

在数据迁移过程中有一些大数据字段的迁移比较复杂,所以单独在本节进行分析。例如,在SQL Server表中有一种二进制数据类型是image,Oracle数据库中没有image数据类型,但是Oracle有存储为二进制数据的类型,比如BLOB类型,这样就可以将SQL Server 中的im-age类型转换为Oracle中的BLOB。下面对步骤进行描述:首先使用SQL语句以获得一个结果集,然后调用这个结果集的getBinaryStream方法,从而获得二进制数据,接下来将此二进制数据

相关文档
最新文档