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

技术编号:24409892 阅读:40 留言:0更新日期:2020-06-06 08:43
本发明专利技术公开了一种数据库的同步方法,包括:获取源数据库的二进制日志文件;配置源数据库和目标数据库,解析所述二进制日志文件,生成对应的源数据库操作指令;将所述源数据库操作指令转换为目标数据库的操作指令;执行所述目标数据库的操作指令完成数据库的同步操作,解决了不同类型的数据库之间的数据同步不需要通过编写代码或通过应用程序实现的问题。

A method and device of database synchronization

【技术实现步骤摘要】
一种数据库的同步方法及装置
本申请涉及数据库管理领域,具体涉及一种数据库的同步方法,同时涉及一种数据库的同步装置。
技术介绍
数据库同步技术是目前应用系统处理的核心,不但应用系统需要向数据库进行增/删/改/查操作,同样数据仓库也需要从众多的数据库中获取不同交易数据来完善自身的数据集。数据同步主要有两个层面,一是通过后台程序编码实现数据同步,二是直接作用于数据库,在数据库层面实现数据的同步。目前常用的一些数据库同步的方法:a、通过发布/订阅的方式实现同步,发布/订阅是SQLServer自带的一种数据库备份的机制,通过该机制可以快速的实现数据的备份同步,不用编写任何的代码;b、通过SQLJOB方式实现数据同步,通过SQLJob定时作业的方式实现同步其基本原理就是通过目标服务器和源服务器的连接,然后通过编写SQL语句,从源服务器中读取数据,再更新到目标服务器;c、通过ServiceBroker消息队列的方式实现数据同步,SQLServerServiceBroker是数据库引擎的组成部分,为SQLServer提供队列和可靠的消息传递。既可用于使用单个SQLServer实例的应用程序,也可用于在多个实例间分发工作的应用程序。从目前常用的一些数据库同步的方法可知,目前,不同类型的数据库之间的数据同步需要通过编写代码或通过应用程序实现。
技术实现思路
本申请提供一种数据库的同步方法,解决了不同类型的数据库之间的数据同步不需要通过编写代码或通过应用程序实现的问题。本申请提供一种数据库的同步方法,包括:获取源数据库的二进制日志文件;配置源数据库和目标数据库,解析所述二进制日志文件,生成对应的源数据库操作指令;将所述源数据库操作指令转换为目标数据库的操作指令;执行所述目标数据库的操作指令完成数据库的同步操作。优选的,所述获取源数据库的二进制日志文件,包括:若数据库为MySQL数据库,则获取binlog日志。优选的,所述配置源数据库和目标数据库,包括:配置源数据库的二进制日志文件的存放路径;读取源数据库上次的同步位置;在源数据库建立缓存区,将源数据库的二进制日志文件转换成文本并写入缓存区;记录源数据库当前的同步位置;建立目标数据库与源数据库的映射。优选的,所述解析所述二进制日志文件,生成对应的源数据库操作指令,将所述源数据库操作指令转换为目标数据库的操作指令,具体的包括:若源数据库为MySQL数据库,则解析所述binlog日志;根据所述binlog日志提取SQL语句,并将所述SQL语句转换为目标数据库SQL语句;将所述目标数据库SQL语句转换成cmd指令。优选的,根据所述binlog日志提取SQL语句,包括:按照MySQL数据库的二进制日志的格式,提取关键的SQL语句。优选的,在将所述目标数据库SQL语句转换成cmd指令的步骤之前,还包括:加密所述目标数据库SQL语句中的关键字段值。优选的,所述执行所述目标数据库的操作指令完成数据库的同步操作,包括:在所述目标数据库执行cmd指令,完成源数据库到目标数据库的同步操作。优选的,在执行所述目标数据库的操作指令完成数据库的同步操作的步骤之后,还包括:将执行过程写入日志;将执行失败的命令保存至错误数据存放路径;备份同步的数据。优选的,所述源数据库和目标数据库,可以为不同类型的数据库。本申请同时提供一种数据库的同步装置,包括;日志获取单元,用于获取源数据库的二进制日志文件:操作指令获取单元,用于配置源数据库和目标数据库,解析所述二进制日志文件,生成对应的源数据库操作指令;将所述源数据库操作指令转换为目标数据库的操作指令;同步单元,用于执行所述目标数据库的操作指令完成数据库的同步操作。本申请提供一种数据库的同步方法,通过解析源数据库的二进制日志文件,获得数据库的操作指令,使用操作指令完成源数据库至目标数据库的同步操作,解决了不同类型的数据库之间的数据同步不需要通过编写代码或通过应用程序实现的问题。附图说明图1是本申请实施例提供的一种数据库的同步方法流程示意图;图2是本申请实施例涉及的一种基于二进制日志的数据库同应用架构图;图3是本申请实施例涉及的源数据库到目标数据库的同步操作步骤示意图;图4是本申请实施例提供的一种数据库的同步装置示意图。具体实施方式在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。请参看图1,图1是本申请实施例提供的一种数据库的同步方法流程示意图,下面结合图1对本申请实施例提供方法进行详细说明。步骤S101,获取源数据库的二进制日志文件。数据库的日志通常都是以二进制编码格式存储的,数据库日志记录数据库的相关操作,包括增/删/改/查,所以,通过日志就可以了解数据库都执行了什么操作,在本申请中,将MySQL数据库作为源数据库,Greenplum数据库作为目标数据库,完成源数据库向目标数据库的同步操作,本申请的操作方法也适用于其他类型的数据库。为了完成数据库的同步操作,首先是获取源数据库的二进制日志文件,源数据库为MySQL数据库,那么就获取binlog日志。步骤S102,配置源数据库和目标数据库,解析所述二进制日志文件,生成对应的源数据库操作指令;将所述源数据库操作指令转换为目标数据库的操作指令。在获取了源数据库的二进制日志文件后,接下来就是配置源数据库,配置MySQL数据库的二进制日志文件的存放路径,同时读取MySQL数据库上次的同步位置,上次同步的位置也就是这次同步的开始位置,如果没有读取到上次的同步位置,那么就需要将整个数据库进行同步。然后在源数据库建立缓存区,将将源数据库的二进制日志文件转换成文件并写入缓存区,同时记录源数据库当前的同步位置。也就是日志文件的结束位置。配置完源数据库后,还需要配置目标数据库,配置目标数据库主要是建立目标数据库Greenplum与源数据库MySQL的映射。配置完源数据库和目标数据库后,解析源数据库MySQL的二进制日志文件,在解析之前,按照MySQL二进制日志的格式将多余信息剔除,然后再根据所述binlog日志提取SQL语句,具体的,按照MySQL数据库的二进制日志的格式,提取关键的SQL语句。SQL语句就包括对数据库的增/删/改/查操作,这样提取了关键的SQL语句,但是,提取的关键SQL语句还需要根据实际需求进行加工处理,如图2中,有A银行接口模块、B银行接口模块、新银行接口模块,A银行接口模块和B银行接口模块是现有的,可以通过A银行系统或B银行系统的二进制日志提取的关键SQL语句同步新银行系统,但是,各银行的接口模块本文档来自技高网...

【技术保护点】
1.一种数据库的同步方法,其特征在于,包括:/n获取源数据库的二进制日志文件;/n配置源数据库和目标数据库,解析所述二进制日志文件,生成对应的源数据库操作指令;将所述源数据库操作指令转换为目标数据库的操作指令;/n执行所述目标数据库的操作指令完成数据库的同步操作。/n

【技术特征摘要】
1.一种数据库的同步方法,其特征在于,包括:
获取源数据库的二进制日志文件;
配置源数据库和目标数据库,解析所述二进制日志文件,生成对应的源数据库操作指令;将所述源数据库操作指令转换为目标数据库的操作指令;
执行所述目标数据库的操作指令完成数据库的同步操作。


2.根据权利要求1所述的方法,其特征在于,所述获取源数据库的二进制日志文件,包括:
若数据库为MySQL数据库,则获取binlog日志。


3.根据权利要求1所述的方法,其特征在于,所述配置源数据库和目标数据库,包括:
配置源数据库的二进制日志文件的存放路径;
读取源数据库上次的同步位置;
在源数据库建立缓存区,将源数据库的二进制日志文件转换成文本并写入缓存区;
记录源数据库当前的同步位置;
建立目标数据库与源数据库的映射。


4.根据权利要求1所述的方法,其特征在于,所述解析所述二进制日志文件,生成对应的源数据库操作指令,将所述源数据库操作指令转换为目标数据库的操作指令,具体的包括:
若源数据库为MySQL数据库,则解析所述binlog日志;
根据所述binlog日志提取SQL语句,并将所述SQL语句转换为目标数据库SQL语句;
将所述目标数据库SQL语句转换成cmd指令。


5.根据权利要求4所述的...

【专利技术属性】
技术研发人员:刘倞朱兴吴磊
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京;11

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

1