The invention discloses a data synchronization method and system, wherein, the method comprises the following steps: according to the task information synchronization tasks, Binlog module Binlog to obtain information from the source database, and write cache database; Config module reads the Binlog information from the cache database, analysis for data record information, write data to the target database. The system includes a system module, for storing synchronization tasks and coordination module; Binlog module, according to the task information synchronization tasks, read the Binlog information from the source database; database cache, used for temporary storage of the Binlog information; and the Config module, used to read the Binlog information from the cache database, analysis for a data record information, write data to the target database. The invention can synchronize data online without affecting the production environment of the main library. The synchronization efficiency is high and safe. After interruption, it can continue to connect, and has data check function. When data synchronization is completed, it can verify verification and provide check views.
【技术实现步骤摘要】
数据同步的方法和系统
本专利技术涉及一种数据库处理
,具体地说,涉及一种数据库之间进行数据同步的方法和系统
技术介绍
根据业务的需要,大部分的公司的系统都需要进行数据的同步操作。因而,目前常用的技术是针对线上数据库,采用主从同步配置,通过对binlog(或binarylog,二进制日志)读写实现数据同步。具体地,线上MySQL数据库配置有主数据库和从数据库,主库写,从库读。在数据库操作中,普通查询以及大数据平台数据整合、分析会有大量的读操作。读操作虽然不会阻塞对同一表的读请求,但会阻塞对同一表的写请求,只有当读锁释放后,才会执行进程的写操作,这样使得从库数据的写入延迟,并且很容易使从库性能达到瓶颈,直接影响客户体验和生产。另外一种同步方法则是通过人工,由线上从库将数据导出,再导入到目标库中,具体包括:1)数据库直接导出,拷贝文件到新服务器,在新服务器上导入。2)数据文件和库表结构文件直接拷贝到新服务器,挂载到同样配置的MySQL服务下。3)还有使用“MySQLGUITools”中的MySQLMigrationTool做数据搬迁。以上方案都对线上正常生产影响较大、安全性低、不易操作并且耗费人力成本较高。具体分析如下:1)影响线上业务正常运行,使用的局限性大。有的可能需要在停止正常生产的情况下操作,这种要求对连续生产是致命的。2)时间占用长。由于效率低或为了不影响正常生产,只有到了夜间访问量小时才能操作,这样每天能操作的时间受到限制,可能连续好多天才能完成。3)人力成本高。数据操作需要DBA的授权和运维人员执行相关的配置,协调或配合过程中耗费大量的时间和 ...
【技术保护点】
一种数据同步的方法,其中,包括:通过用户客户端创建同步任务,并配置任务信息;根据同步任务的任务信息,从源数据库中获取Binlog信息,并写入缓存数据库;从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库。
【技术特征摘要】
1.一种数据同步的方法,其中,包括:通过用户客户端创建同步任务,并配置任务信息;根据同步任务的任务信息,从源数据库中获取Binlog信息,并写入缓存数据库;从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库。2.如权利要求1所述的数据同步的方法,其中,从源数据库中读取Binlog信息具体包括:通过作为伪从库的Binlog模块向源数据库发送bump请求获取binlog信息。3.如权利要求1所述的数据同步的方法,其中,所述任务信息包括增量同步方式,全量同步方式或自定义同步方式;对应地,所述从源数据库中获取的Binlog信息分别对应当前时间之后的数据,当前时间之前的历史数据和之后的数据,或自定义时间区间内的数据。4.如权利要求1所述的数据同步的方法,其中,从缓存数据库中读取所述Binlog信息时记录操作位点,当所述同步任务发生中断再启动时,从所述位点继续数据的同步。5.如权利要求4所述的数据同步的方法,其中,所述从所述位点继续数据的同步的步骤包括:读取所述位点信息,根据所述位点信息和任务信息,获取与所述位点信息对应的源数据库时间戳;从所述缓存数据库中实时读取时间戳之后的Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库;以SQL读写方式将所述时间戳之前的数据同步到目标数据库。6.如权利要求1所述的数据同步的方法,其中,在同步任务的执行过程中,记录所述同步任务的执行状态,所述执行状态为运行、中断或完结,其中,当从源数据库中获取Binlog信息出现异常时,或从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库出现异常时,将所述同步任务的执行状态变更为中断状态。7.如权利要求6所述的数据同步的方法,其中,定时获取所述同步任务的最新执行状态,当从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库这一过程出现异常而使所述状态为中断时,中断从源数据库中获取Binlog信息;当从源数据库中获取Binlog信息出现异常而使所述状态为中断时,持续从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库,直到处理完所有的Binlog...
【专利技术属性】
技术研发人员:周振华,许文靖,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。