【技术实现步骤摘要】
一种数据库间多线程数据同步批量入库方法
[0001]本专利技术涉及数据库
,尤其涉及一种数据库间多线程数据同步批量入库方法。
技术介绍
[0002]现有的数据库间的同步技术主要实现步骤为:读取源端事务日志,发送到消息队列,从消息队列逐条读取,对消息内容进行解析,按照目标端的SQL语法规则组装成SQL语句,连接目标端数据库逐条执行SQL,断开目标端链接。
[0003]然而,上述同步技术,源端发送事务日志到消息队列,同步工具读取消息队列消息,解析消息内容,按目标端语法进行SQL组装,SQL组装完成会直接连接目标库并执行SQL,执行完毕后关闭目标库连接。这个过程中,源端数据库的事务日志产生很快,但读取和解析日志的过程又比较耗时,成为数据同步速度的瓶颈,导致无法进一步提升数据同步效率。
技术实现思路
[0004]本专利技术要解决的技术问题是,如何进一步提升数据库间的同步效率;有鉴于此,本专利技术提供一种数据库间多线程数据同步批量入库方法。
[0005]本专利技术采用的技术方案是,一种数据库间多线 ...
【技术保护点】
【技术特征摘要】
1.一种数据库间多线程数据同步批量入库方法,其特征在于,包括:步骤S1,基于服务器的使用性能,创建至少两个用于读取事务日志的子线程;步骤S2,每个所述子线程依次读取源端数据库事务日志的配置文件,并基于不同子线程读取的配置文件,每个所述子线程并行读取数据库事务日志中的不同内容块;步骤S3,基于每个所述子线程读取的内容块,根据目标端数据库的SQL规则,并行生成SQL执行语句;步骤S4,每个所述子线程并行创建SQL文件,并将所述SQL文件的文件名写入待执行文件序列,其中,所述SQL文件对应配置有标志位,所述标志位可被配置不同的值,用以表征所述SQL文件的不同的文件状态,所述文件状态包括可写入,已写入以及同步完成;步骤S5,各子线程将生成的SQL执行语句,并行写入当前待执行列表中对应的SQL文件中;步骤S6,主线程依次读取所述待执行列表中的SQL文件,当所述SQL文件的文件状态为已写入时,调用目标端数据库的SQL服务,执行识别为可同步的SQL文件,以完成到目标端的数据同步。2.如权利要求1所述的数据库间多线程数据同步批量入库方法,其特征在于,所述步骤S2包括:所述子线程依次获取当前所述配置文件中的最新读取位置;基于预先配置的读取块大小,自所述最新读取位置起,并行读取所述配置文件的块内容;基于所述子线程读取的块内容,更新所述配置文件的最新读取位置;其中,当其中一个子线程读取所述配置文件时,配置文件被锁定,即其余子线程不可读取或写入所述配置文件。3.如权利要求1所述的数据库间多线程数据同步批量入库方法,其特征在于,所述步骤S3中,根据目标端数据库的SQL规则,生成SQL执行语句包括:基于目标端数据库的SQL规则,将事务日志的解析内容通过替换,和/或,补...
【专利技术属性】
技术研发人员:亓莹,苗健,吕新杰,
申请(专利权)人:瀚高基础软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。