一种基于不同数据库的数据复制方法和系统技术方案

技术编号:14568954 阅读:155 留言:0更新日期:2017-02-06 02:43
本申请公开一种基于不同数据库的数据复制方法和系统,所述方法和系统预先在应用服务器内存中创建的一预设大小的共享内存区域,并将该内存区域作为源数据库、目标数据库之间实现数据复制时用于转移数据的管道(或称成为管道文件),在此基础上,利用所述管道,通过数据流动的方式进行源数据库至目标数据库之间的数据转移,进而实现源、目标数据库间的数据复制。可见,本申请无需将待复制数据在应用服务器上落成本地文件,实现了中间数据不落地,解决了应用服务器的磁盘负载过大的问题。且由于本申请使用几乎不占用空间的管道文件,并通过数据流动的方式来转移需进行复制的数据,从而可实现高并发大批量的数据复制。

【技术实现步骤摘要】

本专利技术属于数据库系统应用领域,尤其涉及一种基于不同数据库的数据复制方法和系统
技术介绍
在当前的数据库系统应用环境中,多个数据库并存使用的现象越来越普遍。比如,某企业的不同部门分别使用异构或非异构的多个不同数据库进行信息应用等,具体地比如,该企业的部门A使用EMC公司的GreenPlum数据库,部门B使用甲骨文公司的ORACLE数据库,部门C则使用Teradata数据库等。基于此,出于数据备份、数据同步等方面的考虑,不同数据库之间的数据复制日渐成为人们较为关心的问题。目前,学术界和业界解决不同数据库间的数据复制问题,采用的较为典型的方法为拷贝法,拷贝法具体是指首先从源数据库中导出特定格式的目标数据至本地应用服务器,再将目标数据从应用服务器导入到目标数据库中(如果源数据库、目标数据库异构,则其间某一环节需根据目标数据库的存储要求进行必要的数据转换)。在企业信息应用领域中,不同数据库之间数据复制的数据量往往较大,一次数据复制的数据量时常达到几十GB、几百GB,甚至会达到TB级别。基于此,上述拷贝法由于需将待复制数据在应用服务器上落成本地文件,而极易造成对应用服务器本地磁盘的巨大占用,因此,当大量的复制任务需同时进行时,本地磁盘的负载将是个瓶颈问题,无法实现多个复制任务的并发运行。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种基于不同数据库的数据复制方法和系统,旨在解决现有技术因需将数据在应用服务器上落成本地文件,而导致对应用服务器本地磁盘的占用量较大,进而影响应用服务器的并发运行量这一问题。为此,本专利技术公开如下技术方案:一种基于不同数据库的数据复制方法,包括:从目标数据中获取当前待处理的第一预设大小的目标子数据;其中,所述目标数据为:由源数据库基于预设筛选条件所提供的待复制数据;将所述目标子数据写入管道;所述管道为预先在应用服务器内存中创建的第二预设大小的共享内存区域,所述第二预设大小的数值不小于所述第一预设大小的数值;从所述管道中读取所述目标子数据,并将读取的所述目标子数据写入目标数据库中;在所述目标数据未被全部写入所述目标数据库时,转至执行所述步骤:从目标数据中获取当前待处理的第一预设大小的目标子数据。上述方法,优选的,当所述源数据库、所述目标数据库非异构时,所述目标数据为:从所述源数据库中筛选出的符合所述筛选条件的原始数据集合;当所述源数据库、所述目标数据库异构时,所述目标数据为:依据所述目标数据库的存储要求,对所述原始数据集合进行数据转换后所得的数据。上述方法,优选的,所述源数据库、所述目标数据库为Oracle、Teradata、GreenPlum三种数据库中的任意一种。上述方法,优选的,还包括:统计从所述源数据库中所获取的数据的第一记录条数,统计向所述目标数据库所写入的数据的第二记录条数,并在所述第二记录条数与所述第一记录条数不相等时报错。上述方法,优选的,通过预先编写的数据卸载程序向所述管道写入数据,通过预先编写的数据加载程序从所述管道中读取数据,并将读取的数据加载至所述目标数据库中,则所述方法还包括:在所述数据卸载程序或所述数据加载程序执行失败时,采用相应的响应机制进行应对处理。上述方法,优选的,所述数据卸载程序执行失败时的响应机制包括:在所述管道不可写不可读时,删除所述管道;在所述管道不可写可读时,调用系统写命令向所述管道写入预设数据,并在使用所述数据加载程序读取所述预设数据后,删除所述管道。上述方法,优选的,所述数据加载程序执行失败时的响应机制包括:在所述管道不可写不可读时,删除所述管道;在所述管道可写不可读时,调用系统读命令读取所述管道中的数据,并删除所述管道。一种基于不同数据库的数据复制系统,包括:获取模块,用于从目标数据中获取当前待处理的第一预设大小的目标子数据;其中,所述目标数据为:由源数据库基于预设筛选条件所提供的待复制数据;写数据模块,用于将所述目标子数据写入管道;所述管道为预先在应用服务器内存中创建的第二预设大小的共享内存区域,所述第二预设大小的数值不小于所述第一预设大小的数值;读数据模块,用于从所述管道中读取所述目标子数据,并将读取的所述目标子数据写入目标数据库中;在所述目标数据未被全部写入所述目标数据库时,转至执行所述步骤:从目标数据中获取当前待处理的第一预设大小的目标子数据。上述系统,优选的,还包括:统计与报错模块,用于统计从所述源数据库中所获取的数据的第一记录条数,统计向所述目标数据库所写入的数据的第二记录条数,并在所述第二记录条数与所述第一记录条数不相等时报错。上述系统,优选的,还包括:所述写数据模块具体通过预先编写的数据卸载程序向所述管道写入数据,所述读数据模块具体通过预先编写的数据加载程序从所述管道中读取数据,并将读取的数据加载至所述目标数据库中;则所述系统还包括:响应处理模块,用于在所述数据卸载程序或所述数据加载程序执行失败时,采用相应的响应机制进行应对处理。由以上方案可知,本申请公开的基于不同数据库的数据复制方法和系统,预先在应用服务器内存中创建的一预设大小的共享内存区域,并将该内存区域作为源数据库、目标数据库之间实现数据复制时用于转移数据的管道(或称为管道文件),在此基础上,利用所述管道,通过数据流动的方式进行源数据库至目标数据库之间的数据转移,进而实现源、目标数据库间的数据复制。可见,本申请无需将待复制数据在应用服务器上落成本地文件,实现了中间数据不落地,解决了应用服务器的磁盘负载过大的问题。且由于本申请使用几乎不占用空间的管道文件,并通过数据流动的方式来转移需进行复制的数据,从而可实现高并发大批量的数据复制。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1是本专利技术实施例一提供的基于不同数据库的数据复制方法流程图;图2是本专利技术实施例二提供的基于不同数据库的数据复制方法流程图;图3是本专利技术实施例三提供的基于不同数据库的数据复制方法流程图;图4-图6是本专利技术实施例四提供的基于不同数据库的数据复制系统的结构示意图。具体实施方式本文档来自技高网...

【技术保护点】
一种基于不同数据库的数据复制方法,其特征在于,包括:从目标数据中获取当前待处理的第一预设大小的目标子数据;其中,所述目标数据为:由源数据库基于预设筛选条件所提供的待复制数据;将所述目标子数据写入管道;所述管道为预先在应用服务器内存中创建的第二预设大小的共享内存区域,所述第二预设大小的数值不小于所述第一预设大小的数值;从所述管道中读取所述目标子数据,并将读取的所述目标子数据写入目标数据库中;在所述目标数据未被全部写入所述目标数据库时,转至执行所述步骤:从目标数据中获取当前待处理的第一预设大小的目标子数据。

【技术特征摘要】
1.一种基于不同数据库的数据复制方法,其特征在于,包括:
从目标数据中获取当前待处理的第一预设大小的目标子数据;其中,所
述目标数据为:由源数据库基于预设筛选条件所提供的待复制数据;
将所述目标子数据写入管道;所述管道为预先在应用服务器内存中创建
的第二预设大小的共享内存区域,所述第二预设大小的数值不小于所述第一
预设大小的数值;
从所述管道中读取所述目标子数据,并将读取的所述目标子数据写入目
标数据库中;在所述目标数据未被全部写入所述目标数据库时,转至执行所
述步骤:从目标数据中获取当前待处理的第一预设大小的目标子数据。
2.根据权利要求1所述的方法,其特征在于,当所述源数据库、所述目
标数据库非异构时,所述目标数据为:从所述源数据库中筛选出的符合所述
筛选条件的原始数据集合;
当所述源数据库、所述目标数据库异构时,所述目标数据为:依据所述
目标数据库的存储要求,对所述原始数据集合进行数据转换后所得的数据。
3.根据权利要求1所述的方法,其特征在于,所述源数据库、所述目标
数据库为Oracle、Teradata、GreenPlum三种数据库中的任意一种。
4.根据权利要求1所述的方法,其特征在于,还包括:
统计从所述源数据库中所获取的数据的第一记录条数,统计向所述目标
数据库所写入的数据的第二记录条数,并在所述第二记录条数与所述第一记
录条数不相等时报错。
5.根据权利要求1所述的方法,其特征在于,通过预先编写的数据卸载
程序向所述管道写入数据,通过预先编写的数据加载程序从所述管道中读取
数据,并将读取的数据加载至所述目标数据库中,则所述方法还包括:
在所述数据卸载程序或所述数据加载程序执行失败时,采用相应的响应
机制进行应对处理。
6.根据权利要求5所述的方法,其特征在于,所述数据卸载程序执行失
败时的响应机制包括:

【专利技术属性】
技术研发人员:张永育陈守当翁世清邓波王成名汪慧柳江南赵晓莉曾楠
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:北京;11

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

1