一种非同源数据库同步方法及装置制造方法及图纸

技术编号:34177700 阅读:50 留言:0更新日期:2022-07-17 12:19
本发明专利技术提供了一种非同源数据库同步方法及装置,可以应用于大数据领域,方法包括:根据预存的映射关系表,查找获取的数据表对应的批量任务信息;根据批量任务信息对数据表进行加载,并在加载完成后记录加载任务执行日期后进行数据导出;对导出的数据进行格式转换处理,并在格式转换处理后判断在导出的数据中是否存在特殊字符并对数据进行预处理;使用脚本自动生成方法生成数据导入脚本将预处理后的数据导入至目标数据库中。据导入至目标数据库中。据导入至目标数据库中。

A non homologous database synchronization method and device

【技术实现步骤摘要】
一种非同源数据库同步方法及装置


[0001]本申请属于数据库迁移
,具体地讲,涉及一种非同源数据库同步方法及装置。

技术介绍

[0002]在进行非同源数据库迁移时,如何将旧库中的存量数据无损迁移到新库中是其中最基础的一项工作。非同源数据库在进行数据同步时将面临非常多的操作步骤,包括暂停批量任务、生成导出导入脚本、数据导出、数据导入、数据核对、放开批量任务等,并且每个操作都需要确保正确完成以后才能进入下一步操作,因此如果要求人工按照以上步骤逐步核对、逐步操作,逐步完成不但工作量极大且极易出现纰漏,甚至可能导致整个数据同步工作的失败。总而言之,在数据迁移过程中,通常会面临以下几个问题,由于不同的数据库具有不同的特性,在进行数据导出导入时,需要考虑数据库语句的兼容性问题;存量数据中的特殊字符,可能导致在导入数据时产生字段对应、数据行对应的问题,需要考虑数据完整性的问题;数据库每日都要加载新增的数据,需要考虑数据迁移过程中批量加载同步性的问题;数据库每天都要对外提供大量数据传送、报表查询等服务,需要考虑迁移过程对每日正常服务的影响问题。

技术实现思路

[0003]本申请提供了一种非同源数据库同步方法及装置,以至少解决非同源数据库迁移时数据批量加载不同步、数据库语句兼容性差等问题。
[0004]根据本申请的一个方面,提供了一种非同源数据库同步方法,包括:
[0005]根据预存的映射关系表,查找获取的数据表对应的批量任务信息;
[0006]根据批量任务信息对数据表进行加载,并在加载完成后记录加载任务执行日期后进行数据导出;
[0007]对导出的数据进行格式转换处理,并在格式转换处理后判断在导出的数据中是否存在特殊字符并对数据进行预处理;
[0008]使用脚本自动生成方法生成数据导入脚本将预处理后的数据导入至目标数据库中。
[0009]在一实施例中,非同源数据库同步方法还包括:
[0010]在数据导入目标数据库后,对数据进行比对验证并根据验证结果确定是否进行数据批量加载。
[0011]在一实施例中,对数据进行比对验证并根据验证结果确定是否进行数据批量加载,包括:
[0012]调用数据比对工具对新旧环境的数据进行数据比对验证并记录验证结果;
[0013]如果验证结果一致,则放开原数据库中数据的批量加载;
[0014]更新目标数据库的批量任务状态以确保原数据库和目标数据库可以同事开始加
载相同日期的数据。
[0015]在一实施例中,根据批量任务信息对数据表进行加载,包括:
[0016]根据批量任务信息中的任务状态字段判断任务是否处于完成加载的状态;
[0017]如果否,则继续执行加载并在延时指定时间后再次判定是否处于完成加载的状态。
[0018]在一实施例中,在加载完成后记录加载任务执行日期后进行数据导出,包括:
[0019]如果判断任务处于已完成加载的状态,则将该任务暂停并记录该任务的执行日期;
[0020]将加载完成后的数据进行导出。
[0021]在一实施例中,对导出的数据进行格式转换处理并在格式转换处理后判断在导出的数据中是否存在特殊字符并对数据进行预处理,包括:
[0022]对导出的数据进行逐行转码操作;
[0023]判断转码后的数据长度是否和之前一致;
[0024]判断是否存在特殊字符;
[0025]根据数据长度一致性判断结果和特殊字符判断结果采用对应的方式对数据进行预处理。
[0026]根据本申请的另一个方面,还提供了一种非同源数据库同步装置,包括:
[0027]查找单元,用于根据预存的映射关系表,查找获取的数据表对应的批量任务信息;
[0028]加载导出单元,用于根据批量任务信息对数据表进行加载,并在加载完成后记录加载任务执行日期后进行数据导出;
[0029]格式转换单元,用于对导出的数据进行格式转换处理,并在格式转换处理后判断在导出的数据中是否存在特殊字符并对数据进行预处理;
[0030]目标数据库导入单元,用于使用脚本自动生成方法生成数据导入脚本将预处理后的数据导入至目标数据库中。
[0031]在一实施例中,非同源数据库同步装置还包括:
[0032]比对验证单元,用于在数据导入目标数据库后,对数据进行比对验证并根据验证结果确定是否进行数据批量加载。
[0033]在一实施例中,加载导出单元包括:
[0034]比对记录模块,用于调用数据比对工具对新旧环境的数据进行数据比对验证并记录验证结果;
[0035]批量加载模块,用于如果验证结果一致,则放开原数据库中数据的批量加载;
[0036]更新模块,用于更新目标数据库的批量任务状态以确保原数据库和目标数据库可以同时开始加载相同日期的数据。
[0037]在一实施例中,加载导出单元包括:
[0038]加载完成判断模块,用于根据批量任务信息中的任务状态字段判断任务是否处于完成加载的状态;
[0039]延时判断模块,用于如果否,则继续执行加载并在延时指定时间后再次判定是否处于完成加载的状态。
[0040]在一实施例中,加载导出单元包括:
[0041]日期记录模块,用于如果判断任务处于已完成加载的状态,则将该任务暂停并记录该任务的执行日期;
[0042]导出模块,用于将加载完成后的数据进行导出。
[0043]在一实施例中,目标数据库导入单元包括:
[0044]对导出的数据进行逐行转码操作;
[0045]判断转码后的数据长度是否和之前一致;
[0046]判断是否存在特殊字符;
[0047]根据数据长度一致性判断结果和特殊字符判断结果采用对应的方式对数据进行预处理。
[0048]本申请通过采取有针对性地暂停正在迁移的数据服务的方式需要迁移哪些数据表就暂停哪些数据表的批量任务,迁移比对完成后再放开该批量任务的加载,相比于现有的将全部批量任务暂停于某个指定时间点,然后对所有数据进行迁移比对,迁移完成后放开批量这种方式,能够保证在数据迁移过程中系统依然能够正常提供服务。克服了当待迁移的数据体量过大时,数据迁移将导致系统长时间内无法正常提供服务的问题。
附图说明
[0049]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0050]图1为本申请提供的一种非同源数据库同步方法流程图。
[0051]图2为本申请实施例中根据验证结果确定是否进行数据批量加载的方法流程图。
[0052]图3为本申请实施例中根据批量任务信息对数据表进行加载的方法流程图。
[0053]图4为本申请实施例中在加载完成后记录本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种非同源数据库同步方法,其特征在于,包括:根据预存的映射关系表,查找获取的数据表对应的批量任务信息;根据所述批量任务信息对数据表进行加载,并在加载完成后记录加载任务执行日期后进行数据导出;对导出的数据进行格式转换处理,并在格式转换处理后判断在导出的数据中是否存在特殊字符并对数据进行预处理;使用脚本自动生成方法生成数据导入脚本将预处理后的数据导入至目标数据库中。2.根据权利要求1所述的非同源数据库同步方法,其特征在于,还包括:在数据导入目标数据库后,对数据进行比对验证并根据验证结果确定是否进行数据批量加载。3.根据权利要求2所述的非同源数据库同步方法,其特征在于,所述对数据进行比对验证并根据验证结果确定是否进行数据批量加载,包括:调用数据比对工具对新旧环境的数据进行数据比对验证并记录验证结果;如果验证结果一致,则放开原数据库中数据的批量加载;更新目标数据库的批量任务状态以确保原数据库和目标数据库可以同时开始加载相同日期的数据。4.根据权利要求1所述的非同源数据库同步方法,其特征在于,所述根据所述批量任务信息对数据表进行加载,包括:根据所述批量任务信息中的任务状态字段判断任务是否处于完成加载的状态;如果否,则继续执行加载并在延时指定时间后再次判定是否处于完成加载的状态。5.根据权利要求4所述的非同源数据库同步方法,其特征在于,所述在加载完成后记录加载任务执行日期后进行数据导出,包括:如果判断任务处于已完成加载的状态,则将该任务暂停并记录该任务的执行日期;将加载完成后的数据进行导出。6.根据权利要求1所述的非同源数据...

【专利技术属性】
技术研发人员:王巍峰解春磊刘延祺王君毅
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1