一种快速的跨数据库系统的数据增量迁移方法技术方案

技术编号:12954683 阅读:88 留言:0更新日期:2016-03-02 14:02
本发明专利技术公开了一种快速的跨数据库系统的数据增量迁移方法,获取源数据库系统中的源数据表并将源数据表中的数据分批量读取到内存,获取目标数据库系统的目标数据表并根据目标数据表的字段信息,构造增量插入的sql语句,并在目标数据库系统中执行该语句,直至数据迁移完毕,所述源数据库系统和目标数据库系统选自Oracle、MySQL、SQLite或SQL Server四种数据库系统。通过本发明专利技术的方法能够实现跨数据库的、大数据的快速增量迁移。

【技术实现步骤摘要】

本专利技术涉及数据库
,尤其涉及一种快速的跨数据库系统的数据增量迀移方法。
技术介绍
数据库是按照数据结构来组织、储存和管理数据的仓库,随着信息技术和市场的发展,数据管理不再仅仅是储存和管理数据,而是转变成用户所需要的各种数据管理的方式。随着时代的发展,企业的数据量正在以前所未有的速度增长,对数据的依赖强度越来越高,正是由于数据对企业愈发重要,数据库管理技术也不断发展,出现了不同的数据库管理系统和操作系统平台,但是企业由于在成本考虑、老旧设备更新升级、对长时间超负荷的设备进行维护操作或机房变更等,数据库工程师经常需要在两个不同的数据库之间或在两种不同的操作系统平台之间进行数据迀移。即将数据从一台机器迀移到另一台机器,或者将数据从一个数据库迀移到另一数据库,并且这些数据在转移后能正常运行。在现有技术中,不同数据库之间的数据迀移方法主要是:利用Navicat Permium的“数据传输”功能,实现两个不同数据库系统之间的数据迀移,但是,上述迀移方式的迀移过程花费时间较长,经常超出预期的情况。
技术实现思路
有鉴于此,本专利技术的目的在于克服现有技术的不足,提供一种快速且安全的跨数据库系统的数据增量迀移方法。为了解决上述技术问题,本专利技术采用如下方案实现: 一种快速的跨数据库系统的数据增量迀移方法,获取源数据库系统中的源数据表并将源数据表中的数据分批量读取到内存,获取目标数据库系统的目标数据表并根据目标数据表的字段信息,构造增量插入的sql语句,并在目标数据库系统中执行该语句,直至数据迀移完毕,所述源数据库系统和目标数据库系统选自Oracle、MySQL、SQLite或SQL Server四种数据库系统。在获取源数据表和目标数据表前,先连接至对应的源数据库系统和目标数据库系统。根据源数据库系统类型和目标数据库系统类型,构造出对应的常规数据库连接字符串,通过连接字符串连接至源数据库系统和目标数据库系统。连接至源数据库系统后,搜索能够访问的源数据表,并根据用户选择的源数据表的表名,获取源数据表中的所有数据,并将其按大小分批量读取到内存中。连接至目标数据库系统后,搜索能够访问的目标数据表,并根据选择的目标数据表,获取该目标数据表的所有字段信息,构造增量插入sql语句,具体为:基于用户选择的需要进行同步的目标数据表,根据其表名获取目标数据表中的所有字段,同时根据选择的源数据表和目标数据表的字段映射关系,动态生成迀移数据的sql语句,并将这些sql语句封装在一个事务中,将sql语句封装在一个事务中可以在迀移过程中出现迀移失败的话,便能执行回滚操作。若目标数据库系统中不存在目标数据表,则根据源数据库系统中的源数据表信息,在目标数据库系统中建立一个与源数据库系统中源数据表结构、字段和字段类型相兼容的目标数据表。与现有技术相比,本专利技术具有如下有益效果: 1、本专利技术的方法对数据迀移可以实现跨数据库、跨版本、零停机的迀移,通过使用数据对比工具保证了迀移过程中数据的完整性,有效地提高了数据迀移所花费的时间; 2、相比目前的一般迀移方法,实现了跨数据库在数秒内完成十万级别的数据迀移,避免大数据迀移过程中迀移数据时间过长问题;实现跨数据库系统、跨版本的大数据迀移,避免了跨数据库系统迀移过程中数据转换问题;该方法同样适用于小数据量数据库的在线迀移。【附图说明】图1为实施例1流程图。【具体实施方式】为了让本领域的技术人员更好地理解本专利技术的技术方案,下面对本专利技术作进一步阐述。实施例1 如图1所示,一种快速的跨数据库系统的数据增量迀移方法,包括如下步骤 51:根据各个数据库官方网站提供的开发库,利用C#语言开发出程序系统来对数据库系统进行访问和获取数据。根据用户选择的源数据库系统类型,构造出对应的常规数据库连接字符串,并且连接至该源数据库系统,连接后,搜索能够访问的源数据表,并显示出来; 52:基于用户选择的源数据表,根据源数据表名,获取源数据表中的所有数据,并将其按大小分批量读取到内存中,并以DataGridView的形式呈现出来,以供用户检查; 53:根据用户选择的目标数据库系统类型,构造出对应的常规数据库连接字符串,并且连接至该目标数据库系统,连接后,搜索能够访问的目标数据表,并显示出来; 54:基于用户选择的目标数据表,根据目标数据表名,获取该目标数据表中的所有字段,并生成目的字段名-下拉选择列表控件,根据用户选择的源数据表和目标数据表的字段映射关系,动态生成迀移数据的增量插入sql语句,并在目标数据库系统中执行,从而完成数据迀移工作。【主权项】1.一种快速的跨数据库系统的数据增量迀移方法,其特征在于,获取源数据库系统中的源数据表并将源数据表中的数据分批量读取到内存,获取目标数据库系统的目标数据表并根据目标数据表的字段信息,构造增量插入的sql语句,并在目标数据库系统中执行该语句,直至数据迀移完毕,所述源数据库系统和目标数据库系统选自Oracle、MySQL、SQLite或SQL Server四种数据库系统。2.根据权利要求1所述的快速的跨数据库系统的数据增量迀移方法,其特征在于,根据目标数据库系统的目标数据表字段信息,构造增量插入的sql语句具体为:基于用户选择的需要进行同步的目标数据表,通过其表名获取目标数据表中的所有字段,同时根据选择的源数据表和目标数据表的字段映射关系,动态生成迀移数据的sql语句。3.根据权利要求1所述的快速的跨数据库系统的数据增量迀移方法,其特征在于,若目标数据库系统中不存在目标数据表,则根据源数据库系统中的源数据表信息,在目标数据库系统中建立一个与源数据库系统中源数据表结构、字段和字段类型相兼容的目标数据表。4.根据权利要求1所述的快速的跨数据库系统的数据增量迀移方法,其特征在于,所述sql语句封装在一个事务中。5.根据权利要求1所述的快速的跨数据库系统的数据增量迀移方法,其特征在于,在获取源数据表和目标数据表前,先连接至对应的源数据库系统和目标数据库系统。6.根据权利要求5所述的快速的跨数据库系统的数据增量迀移方法,其特征在于,根据源数据库系统类型和目标数据库系统类型,构造出对应的常规数据库连接字符串,通过连接字符串连接至源数据库系统和目标数据库系统。【专利摘要】本专利技术公开了,获取源数据库系统中的源数据表并将源数据表中的数据分批量读取到内存,获取目标数据库系统的目标数据表并根据目标数据表的字段信息,构造增量插入的sql语句,并在目标数据库系统中执行该语句,直至数据迁移完毕,所述源数据库系统和目标数据库系统选自Oracle、MySQL、SQLite或SQL?Server四种数据库系统。通过本专利技术的方法能够实现跨数据库的、大数据的快速增量迁移。【IPC分类】G06F17/30【公开号】CN105373621【申请号】CN201510886833【专利技术人】张耀安, 钟佰发, 黄锦东, 陈声慧, 甘勇, 汪刚, 刘双广 【申请人】高新兴科技集团股份有限公司【公开日】2016年3月2日【申请日】2015年12月7日本文档来自技高网...

【技术保护点】
一种快速的跨数据库系统的数据增量迁移方法,其特征在于,获取源数据库系统中的源数据表并将源数据表中的数据分批量读取到内存,获取目标数据库系统的目标数据表并根据目标数据表的字段信息,构造增量插入的sql语句,并在目标数据库系统中执行该语句,直至数据迁移完毕,所述源数据库系统和目标数据库系统选自Oracle、MySQL、SQLite或SQL Server四种数据库系统。

【技术特征摘要】

【专利技术属性】
技术研发人员:张耀安钟佰发黄锦东陈声慧甘勇汪刚刘双广
申请(专利权)人:高新兴科技集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1