一种用于不同类型数据库间在线数据迁移的方法与流程

文档序号:13072818阅读:184来源:国知局
本发明涉及计算机软件数据库
技术领域
:,具体地说是一种用于不同类型数据库间在线数据迁移的方法。
背景技术
::目前数据库间进行数据迁移大概有如下一些方法:方法一:生成dmp二进制文件的方式。该方式一般用于同类型数据库间进行数据迁移,在源数据库将数据导出成dmp二进制文件,然后再在目标数据库进行导入。该方法优点是导出导入操作比较简单,缺点是只能在同类型数据库间进行数据迁移。方法二:通过将源数据库表导出成平滑文件(文本文件),然后使用该平滑文件将表数据导入到目标数据库。该方法优点是可以在不同类型数据库间进行数据迁移,缺点是操作比较繁琐,需要针对不同表生成平滑文件,然后再分别导入,迁移时间过长,迁移过程中会有很多错误数据需要手动处理。方法三:使用工具进行迁移。有些第三方工具和etl工具可以用于在不同数据库间进行数据迁移,这些工具一般使用odbc或jdbc方式连接数据库,将数据不加处理的抽取到工具中,然后再向目标数据库进行插入。这种方法优点是通过简单的配置也可以在不同数据库间进行数据迁移。缺点是通过odbc或jdbc方式抽取的数据要先经过工具所在主机然后再转发到目标数据库,受网络带宽限制效率较低,抽取过程会占用较多工具所在主机内存,造成迁移过程很长。以上迁移方式具有导出导入效率低、操作非常繁琐、数据出错率高、业务停机时间长、迁移消耗时间长等缺点,给异构数据库间的数据迁移带来很大困难。技术实现要素:本发明的技术任务是提供一种用于不同类型数据库间在线数据迁移的方法。本发明的技术任务是按以下方式实现的,该用于不同类型数据库间在线数据迁移的方法,包括,创建客户端软件,客户端软件安装于数据库主机,实现与数据库的直接交互,以及对数据库中数据的抽取、转换、插入更新,并且完成不同客户端间数据传输及交互;创建服务端软件,服务端软件安装于管理端主机,配置迁移信息、对不同客户端表hash数据进行比对、实时监控迁移进度及资源占用情况;通过客户端软件和服务端软件实现异常数据库间全量和增量数据的快速同步,以及同步完毕后两个异常数据库的数据一致性的校验。所述的数据库主机包括源数据库主机与目标数据库主机;所述的源数据库主机中源数据库与目标数据库主机中目标数据库的表数据类型不同,客户端软件抽取数据后自动进行数据类型转换;所述的客户端软件自动检测到源数据库和目标数据库的类型及版本,对于两种数据库存在的不同类型的数据,所述的客户端软件自动将抽取的数据转换成适用于目标数据库的数据,然后在目标数据库进行插入。所述的客户端软件抽取的数据被客户端软件压缩后直接传输到目标客户端,目标客户端收到发送的数据首先会存储到本地文件中,然后再由目标客户端软件读取本地文件并将数据插入数据库。所述的服务端软件安装后,通过服务端软件提供的管理界面连接到源数据库主机和目标数据库主机的客户端软件。所述的服务端软件连接到源数据库主机的客户端软件后,选择需要迁移的表,如果选中某个用户则默认迁移该用户下全部表。所述的全量数据的快速同步,包括,把源数据库中选择的表数据迁移到目标数据库中,全量数据迁移过程通过监控界面查看正在迁移的表、已经完成迁移的表、网络带宽使用情况、迁移中的错误信息、主机i/o和cpu使用情况。所述的全量数据迁移过程通过监控界面查看正在迁移的表、已经完成迁移的表、网络带宽使用情况、迁移中的错误信息、主机i/o和cpu使用情况,包括,根据主机和网络带使用情况在线调整同步的并发量,以充分利用cpu、i/o、网络的资源。所述的增量数据的快速同步,包括,比对源数据库与目标数据库表中数据的hash值,根据hash值比对情况对目标数据库表数据进行不同操作:1)当源数据库与目标数据库表某行记录的hash值相同时,表明该记录在全量同步后没有做过变更,对该记录不进行处理;2)当源数据库与目标数据库表某行记录的hash值不同时,表明该记录在全量同步后做过变更,需要从源数据库读取该记录并更新到目标数据库;3)当源数据库中某行记录的hash值在目标数据库不存在时,表明该记录是全量同步后新增的,需要从源数据库读取该记录并插入到目标数据库;4)当目标数据库中某行记录的hash值在源数据库不存在时,表明该记录是全量同步后删除的,需要从目标数据库将该记录删除。所述的同步完毕后两个异常数据库的数据一致性的校验,包括,比对源数据库与目标数据库表中数据的hash值,如果表中数据的hash值相同,则表明源数据库与目标数据库的表数据一致。所述的客户端软件和服务端软件对aix、hpux、linux、windows、k-ux平台发布相应的平台介质。本发明的一种用于不同类型数据库间在线数据迁移的方法和现有技术相比,具有设以下特点:1)完成不同类型数据库间数据迁移可用于不同类型数据库间的数据迁移工作,其中不同类型数据库间数据迁移一直是数据迁移的困难点,本软件对不同数据库间数据类型的数据进行自动转换,使源数据库中的数据顺利插入到目标数据库。2)提高迁移效率由于不通过odbc或jdbc方式访问数据库,提高了数据读取效率。传输的数据经过压缩,减少了对网络带宽的占用。数据抽取后直接发送给目标客户端软件进行插入,不占用过多源数据库主机和目标数据库主机内存资源。对表可以使用where条件进行数据筛选,进一步减少了传输的数据量。源客户端软件与目标客户端软件间的交互模式,保证了数据传输的准确性,不会造成数据丢失。3)简化迁移步骤迁移过程基本只需进行源和目标客户端软件安装、服务端软件安装及配置,即可开始迁移工作,需要配置的内容通过服务端管理软件图形化进行配置。4)降低对数据迁移工程师的技术要求数据迁移和数据比对工作交由本软件自动进行,对数据迁移工程师技术水平要求不高。附图说明图1为全量数据迁移示意图;图2为增量数据迁移示意图;图3为数据比对示意图。具体实施方式实施例1:用于不同类型数据库间在线数据迁移的方法,包括,创建客户端软件,客户端软件安装于数据库主机,实现与数据库的直接交互,以及对数据库中数据的抽取、转换、插入更新,并且完成不同客户端间数据传输及交互;所述的数据库主机包括源数据库主机与目标数据库主机;所述的源数据库主机中源数据库与目标数据库主机中目标数据库的表数据类型不同,客户端软件抽取数据后自动进行数据类型转换;所述的客户端软件自动检测到源数据库和目标数据库的类型及版本,对于两种数据库存在的不同类型的数据,所述的客户端软件自动将抽取的数据转换成适用于目标数据库的数据,然后在目标数据库进行插入。所述的客户端软件抽取的数据被客户端软件压缩后直接传输到目标客户端,目标客户端收到发送的数据首先会存储到本地文件中,然后再由目标客户端软件读取本地文件并将数据插入数据库。创建服务端软件,服务端软件安装于管理端主机,配置迁移信息、对不同客户端表hash数据进行比对、实时监控迁移进度及资源占用情况;所述的服务端软件安装后,通过服务端软件提供的管理界面连接到源数据库主机和目标数据库主机的客户端软件。所述的服务端软件连接到源数据库主机的客户端软件后,选择需要迁移的表,如果选中某个用户则默认迁移该用户下全部表。通过客户端软件和服务端软件实现异常数据库间全量和增量数据的快速同步,以及同步完毕后两个异常数据库的数据一致性的校验。所述的全量数据的快速同步,包括,把源数据库中选择的表数据迁移到目标数据库中,全量数据迁移过程通过监控界面查看正在迁移的表、已经完成迁移的表、网络带宽使用情况、迁移中的错误信息、主机i/o和cpu使用情况。所述的全量数据迁移过程通过监控界面查看正在迁移的表、已经完成迁移的表、网络带宽使用情况、迁移中的错误信息、主机i/o和cpu使用情况,包括,根据主机和网络带使用情况在线调整同步的并发量,以充分利用cpu、i/o、网络的资源。所述的增量数据的快速同步,包括,比对源数据库与目标数据库表中数据的hash值,根据hash值比对情况对目标数据库表数据进行不同操作:1)当源数据库与目标数据库表某行记录的hash值相同时,表明该记录在全量同步后没有做过变更,对该记录不进行处理;2)当源数据库与目标数据库表某行记录的hash值不同时,表明该记录在全量同步后做过变更,需要从源数据库读取该记录并更新到目标数据库;3)当源数据库中某行记录的hash值在目标数据库不存在时,表明该记录是全量同步后新增的,需要从源数据库读取该记录并插入到目标数据库;4)当目标数据库中某行记录的hash值在源数据库不存在时,表明该记录是全量同步后删除的,需要从目标数据库将该记录删除。所述的同步完毕后两个异常数据库的数据一致性的校验,包括,比对源数据库与目标数据库表中数据的hash值,如果表中数据的hash值相同,则表明源数据库与目标数据库的表数据一致。实施例2:为使本发明的目的、技术方案和优点更加清楚,对本发明组件及功能做进一步地详细描述:1)软件介质本软件针对aix、hpux、linux、windows、k-ux等平台发布相应平台介质,根据不同平台安装客户端软件与服务端软件。客户端软件安装在与数据库相同用户下,并且该用户数据库相关环境变量正确配置能够连接到数据库。数据同步是直接在两台客户端之间进行,数据无需经过管理端。2)服务端配置在管理界面中配置连接到源数据库主机和目标数据库主机的客户端软件。正确连接到客户端软件后,在管理界面可以正常显示主机上运行的数据库,以及该数据库下的用户及表。根据需要选择需要迁移的用户或表、增加where条件对表数据进行筛选、迁移并发量等配置,配置完毕后保存,所有配置将会自动下发给源数据库主机和目标数据库主机的客户端软件,客户端软件将会根据该配置进行下一步数据校验和同步。3)数据全量同步点击同步开始按钮后,源数据库主机的客户端软件读取配置信息,根据配置信息中需要同步的表和条件开始抽取数据。对一张表抽取的数据量达到10m时,对抽取的数据进行压缩。每张表每次抽取以10m大小为单位,如果所抽取表数据一行的数据就超过10m,那么最小的抽取数量即为1行,压缩完毕后传送给目标客户端软件,并等待目标端软件的确认信息,当目标客户端软件确认收到数据包后继续该表剩余数据的抽取并将内存中存放的已经抽取的数据删除以避免占用过多内存,如果特定时间内未得到目标客户端软件的回复则将数据包重新发送,重新发送的次数为3次,如果3次发送均失败,则该表的迁移标记为失败,开始其它表的迁移。目标数据库主机的客户端软件收到源数据库主机的客户端软件发送的数据包后,会给源数据库主机的客户端软件发送确认消息。目标数据库主机的客户端软件将收到的数据包首先存储到本地文件中(该文件大小可以配置,并且按序列号顺序命名保证不会重复),软件读取该本地文件后进行解压缩,将其中数据插入到相应表中,同时记录日志。4)数量增量同步增量同步开始后,源数据库主机的客户端软件和目标数据库主机的客户端软件同时读取相应表数据,然后对每一行数据进行hash计算,将得到的hash值及行关键字同时发送到管理端,由管理端软件对源数据库与目标数据库发送过来的hash值及行关键字进行比对,比对结果共有四种情况:1)同一行有相同hash值;2)同一行有不同hash值;3)源表某行在目标表没有hash值;4)目标表某行在源表没有hash值。根据这四种情况分别对目标数据库的数据进行增删改操作。5)迁移监控通过服务端软件提供的监控功能,可以实时查看正在迁移的表、网络带宽使用情况、迁移中的错误信息、主机i/o和cpu使用情况等。可根据主机和网络带使用情况在线调整同步的并发量,以充分利用cpu、i/o、网络等资源。6)数据一致性检查对源数据库与目标数据库中表数据进行一致性检,以判断源数据库与目标数据库中表数据是否一致。方法是比对源数据库与目标数据库表中数据的hash值,如果表中数据的hash值相同,则表明源库与目标库表数据一致。名词解释:hash:散列表(hashtable,也叫哈希表),是根据关键码值(keyvalue)而直接进行访问的数据结构。通过上面具体实施方式,所述
技术领域
:的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述
技术领域
:的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1