一种数据库间数据同步批量入库方法及设备技术

技术编号:37820703 阅读:18 留言:0更新日期:2023-06-09 09:55
本申请公开了一种数据库间数据同步批量入库方法及设备,包括:读取、解析源端数据库事务日志;基于源端数据库事务日志的解析内容,根据目标端数据库的SQL规则,生成SQL执行语句;将生成的SQL执行语句按照设定的约束条件,保存到SQL文件,并存储至指定目录,其中所述SQL文件对应配置有标志位,所述标志位可被配置不同的值,用以表征所述SQL文件的不同的文件状态;调用目标端数据库的SQL服务,执行识别为可同步的SQL文件,以完成到目标端的数据同步。本申请实施例生成的SQL不直接连接终端数据库执行,而是写入SQL文件中。通过批量执行SQL命令,提高数据同步效率,并降低对目标端数据库性能损耗。据库性能损耗。据库性能损耗。

【技术实现步骤摘要】
一种数据库间数据同步批量入库方法及设备


[0001]本申请涉及数据库
,尤其涉及一种数据库间数据同步批量入库方法及设备。

技术介绍

[0002]在数据库之间进行数据同步时,现有技术存在同步效率有限,以及需要频繁的断开、连接目标库,造成服务器资源浪费,影响目标库效率的问题,而且在同步后,无法1:1的还原同步过程。同时,如果同步过程中,同步平台宕机重启后,无法快速、准确的定位宕机前的已同步的内容位置。
[0003]现有的数据库间的同步技术,源端发送事务日志到消息队列,同步工具读取消息队列消息,解析消息内容,按目标端语法进行SQL组装,SQL组装完成会直接连接目标库并执行SQL,执行完毕后关闭目标库连接。这个过程中,如果源端数据库的事务日志产生很快,同步工具会频繁的连接、断开目标端连接,影响目标端数据库的性能。
[0004]此外,组装后的SQL在内存中,如果同步工具突然崩溃,恢复后也无法直接使用前面组装完成的SQL,需要重新从源端数据库操作日志读取开始,重复崩溃前已经完成的工作。

技术实现思路

[0005]本申请实施例提供一种数据库间数据同步批量入库方法及设备,通过批量执行SQL命令,提高数据同步效率,并降低对目标端数据库性能损耗。
[0006]本申请实施例提供一种数据库间数据同步批量入库方法,包括如下步骤:
[0007]读取、解析源端数据库事务日志;
[0008]基于源端数据库事务日志的解析内容,根据目标端数据库的SQL规则,生成SQL执行语句;
[0009]将生成的SQL执行语句按照设定的约束条件,保存到SQL文件,并存储至指定目录,其中所述SQL文件对应配置有标志位,所述标志位可被配置不同的值,用以表征所述SQL文件的不同的文件状态,所述文件状态包括可写入,可同步以及同步完成;
[0010]调用目标端数据库的SQL服务,执行识别为可同步的SQL文件,以完成到目标端的数据同步。
[0011]可选的,将生成的SQL执行语句按照设定的约束条件,保存到SQL文件包括:
[0012]判断识别为可写入的SQL文件是否已经达到同步平台设定的文件大小上限,或者,识别为可写入的SQL文件是否达到设定的存在时长上限;
[0013]若两个条件均未达到,则将生成的SQL语句追加到SQL文件中,若满足任一条件,则关闭所述SQL文件的可写入状态,并更改标志位变更状态为可同步,以及创建新的SQL文件。
[0014]可选的,根据目标端数据库的SQL规则,生成SQL执行语句包括:
[0015]基于目标端数据库的SQL规则,将事务日志的解析内容通过替换,和/或,补充的方
式,生成标准SQL执行语句。
[0016]可选的,所述SQL文件的文件命名按照预设格式构成,其中所述预设格式包括源库编号,源库事务日志文件名,事务日志内容起、止编号以及所述标志位。
[0017]可选的,将生成的SQL执行语句按照设定的约束条件,保存到SQL文件,并存储至指定目录包括:
[0018]获取所述指定目录下所有的SQL文件的文件名,并确定创建时间最晚的SQL文件;
[0019]基于创建时间最晚的SQL文件的标志位,判断其状态是否为可写入,若不可写入,则在所述指定目录下创建新的SQL文件。
[0020]可选的,所述方法还包括:同步完成后基于所述标志位更新所述SQL文件的状态为同步完成,以及,基于所述标志位定期清理同步完成的SQL文件。
[0021]本申请实施例还提出一种数据同步设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的数据库间数据同步批量入库方法的步骤。
[0022]本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的数据库间数据同步批量入库方法的步骤。
[0023]本申请实施例生成的SQL不直接连接终端数据库执行,而是写入SQL文件中。通过批量执行SQL命令,提高数据同步效率,并降低对目标端数据库性能损耗。同步过程中产生的SQL文件不会立刻删除,根据这些文件可以完整、清晰的看到数据同步的所有过程,达到同步留痕的目的。
[0024]上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
[0025]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0026]图1为本申请实施例的数据同步批量入库方法的基本流程示例;
[0027]图2为本申请实施例的数据同步批量入库方法的整体流程示例。
具体实施方式
[0028]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0029]针对现有的数据库间的同步技术,源端发送事务日志到消息队列,同步工具读取消息队列消息,解析消息内容,按目标端语法进行SQL组装,SQL组装完成会直接连接目标库并执行SQL,执行完毕后关闭目标库连接。这个过程中,如果源端数据库的事务日志产生很
快,同步工具会频繁的连接、断开目标端连接,影响目标端数据库的性能的问题。本申请实施例提供一种数据库间数据同步批量入库方法,本申请实施例主要用于数据库之间的数据同步,从源端数据库同步到目标端数据库。如图1所示,包括如下步骤:
[0030]源端数据库将事务日志写入消息队列,消息队列中包含事务日志中的数据。本申请的方法可以应用于同步平台,在步骤S101中,读取、解析源端数据库事务日志。
[0031]在步骤S102中,基于源端数据库事务日志的解析内容,根据目标端数据库的SQL规则,生成SQL执行语句。在一些实施例中,根据目标端数据库的SQL规则,生成SQL执行语句包括:基于目标端数据库的SQL规则,将事务日志的解析内容通过替换,和/或,补充的方式,生成标准SQL执行语句。
[0032]本申请实施例中源端发送事务日志到消息队列,同步工具读取消息队列消息,解析消息内容,按目标端语法进行SQL组装,组装完成的SQL不直接连接目标端立刻执行,而是写入到SQL文件中,由此不需要长期占用目标端数据库的连接;同步工具在崩溃恢复后,对已经写入SQL文件的SQL无需重新组装。
[0033]在步骤S103中,将生成的SQL执行语句按照设定的约束条件,保存到SQL文件,并存储至指定目录,其中所述SQL文件对应配置本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库间数据同步批量入库方法,其特征在于,包括如下步骤:读取、解析源端数据库事务日志;基于源端数据库事务日志的解析内容,根据目标端数据库的SQL规则,生成SQL执行语句;将生成的SQL执行语句按照设定的约束条件,保存到SQL文件,并存储至指定目录,其中所述SQL文件对应配置有标志位,所述标志位可被配置不同的值,用以表征所述SQL文件的不同的文件状态,所述文件状态包括可写入,可同步以及同步完成;调用目标端数据库的SQL服务,执行识别为可同步的SQL文件,以完成到目标端的数据同步。2.如权利要求1所述的数据库间数据同步批量入库方法,其特征在于,将生成的SQL执行语句按照设定的约束条件,保存到SQL文件包括:判断识别为可写入的SQL文件是否已经达到同步平台设定的文件大小上限,或者,识别为可写入的SQL文件是否达到设定的存在时长上限;若两个条件均未达到,则将生成的SQL语句追加到SQL文件中,若满足任一条件,则关闭所述SQL文件的可写入状态,并更改标志位变更状态为可同步,以及创建新的SQL文件。3.如权利要求1所述的数据库间数据同步批量入库方法,其特征在于,根据目标端数据库的SQL规则,生成SQL执行语句包括:基于目标端数据库的SQL规则,将事务日志的解析内容通过替换,和/或,补充的方式,生成标...

【专利技术属性】
技术研发人员:亓莹苗健吕新杰
申请(专利权)人:瀚高基础软件股份有限公司
类型:发明
国别省市:

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

1