CN107423303B - 数据同步的方法和系统 - Google Patents

数据同步的方法和系统 Download PDF

Info

Publication number
CN107423303B
CN107423303B CN201610349967.XA CN201610349967A CN107423303B CN 107423303 B CN107423303 B CN 107423303B CN 201610349967 A CN201610349967 A CN 201610349967A CN 107423303 B CN107423303 B CN 107423303B
Authority
CN
China
Prior art keywords
data
information
database
binlog
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610349967.XA
Other languages
English (en)
Other versions
CN107423303A (zh
Inventor
周振华
许文靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610349967.XA priority Critical patent/CN107423303B/zh
Publication of CN107423303A publication Critical patent/CN107423303A/zh
Application granted granted Critical
Publication of CN107423303B publication Critical patent/CN107423303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据同步方法和系统,其中,所述方法包括:根据同步任务的任务信息,Binlog模块从源数据库中获取Binlog信息,并写入缓存数据库;Config模块从缓存数据库中读取所述Binlog信息,解析为数据记录信息后,将数据写入目标数据库。所述系统包括:系统模块,用于存储同步任务、协调模块的工作;Binlog模块,用于根据同步任务的任务信息,从源数据库中读取Binlog信息;缓存数据库,用于暂存所述Binlog信息;和Config模块,用于从缓存数据库中读取所述Binlog信息,解析为数据记录信息后,将数据写入目标数据库。本发明可在线上随时做数据同步而不影响主库的生产环境,同步效率高、安全,中断后可以续接,并具有数据校验功能,在数据同步完成时可以校验核查,提供校验视图。

Description

数据同步的方法和系统
技术领域
本发明涉及一种数据库处理技术领域,具体地说,涉及一种数据库之间进行数据同步的方法和系统
背景技术
根据业务的需要,大部分的公司的系统都需要进行数据的同步操作。因而,目前常用的技术是针对线上数据库,采用主从同步配置,通过对binlog(或binary log,二进制日志)读写实现数据同步。具体地,线上MySQL数据库配置有主数据库和从数据库,主库写,从库读。在数据库操作中,普通查询以及大数据平台数据整合、分析会有大量的读操作。读操作虽然不会阻塞对同一表的读请求,但会阻塞对同一表的写请求,只有当读锁释放后,才会执行进程的写操作,这样使得从库数据的写入延迟,并且很容易使从库性能达到瓶颈,直接影响客户体验和生产。
另外一种同步方法则是通过人工,由线上从库将数据导出,再导入到目标库中,具体包括:
1)数据库直接导出,拷贝文件到新服务器,在新服务器上导入。
2)数据文件和库表结构文件直接拷贝到新服务器,挂载到同样配置的MySQL服务下。
3)还有使用“MySQL GUI Tools”中的MySQLMigrationTool做数据搬迁。
以上方案都对线上正常生产影响较大、安全性低、不易操作并且耗费人力成本较高。具体分析如下:
1)影响线上业务正常运行,使用的局限性大。有的可能需要在停止正常生产的情况下操作,这种要求对连续生产是致命的。
2)时间占用长。由于效率低或为了不影响正常生产,只有到了夜间访问量小时才能操作,这样每天能操作的时间受到限制,可能连续好多天才能完成。
3)人力成本高。数据操作需要DBA的授权和运维人员执行相关的配置,协调或配合过程中耗费大量的时间和人力。
4)操作、配置繁琐,容易出现错误。
5)不够安全、出现异常不容易被发现、中断后难以接续
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种数据同步方法和系统,在线上通过快速配置数据同步任务,灵活、安全、高效地将数据同步到指定数据库中,不影响线上主库。
为了解决上述的技术问题,本发明提供了一种数据同步的方法,其中,包括:
通过用户客户端创建同步任务,并配置任务信息;
根据同步任务的任务信息,从源数据库中获取Binlog信息,并写入缓存数据库;
从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库。
优选地,从源数据库中读取Binlog信息具体包括:
通过作为伪从库的Binlog模块向源数据库发送bump请求获取binlog信息。
优选地,所述任务信息包括增量同步方式,全量同步方式或自定义同步方式;
对应地,所述从源数据库中获取的Binlog信息分别对应当前时间之后的数据,当前时间之前历史数据和之后的数据,或自定义时间区间内的数据。
优选地,从缓存数据库中读取所述Binlog信息时记录操作位点,当所述同步任务发生中断再启动时,从所述位点继续数据的同步。
优选地,所述从所述位点继续数据的同步的步骤包括:
读取所述位点信息,根据所述位点信息和任务信息,获取与所述位点信息对应的源数据库时间戳;
从所述缓存数据库中实时读取时间戳之后的Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库;
以SQL读写方式将所述时间戳之前的数据同步到目标数据库。
优选地,在同步任务的执行过程中,记录所述同步任务的执行状态,所述执行状态为运行、中断或完结,其中,当从源数据库中获取Binlog信息出现异常时,或从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库出现异常时,将所述同步任务的执行状态变更为中断状态。
优选地,定时获取所述同步任务的最新执行状态,当从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库这一过程出现异常而使所述状态为中断时,中断从源数据库中获取Binlog信息;
当从源数据库中获取Binlog信息出现异常而使所述状态为中断时,持续从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库,直到处理完所有的Binlog信息,并记录当前位点。
优选地,所述的任务信息包括任务的起止时间点,以所述同步任务的开始时间和结束时间作为一个时间区间,校验所述时间区间同步的数据。
优选地,校验所述时间区间同步的数据具体包括:
将所述时间区间划分为多个时间片断;
分别获取对应时间片断的源数据库数据和对应的目标数据库数据,并进行对比;
向用户返回数据对比结果。
优选地,在所述对比结果中,如果目标数据库数据与对应的源数据库数据有差异,创建并执行相应的数据补录任务。
根据本发明的另一个方面,本发明还提供了一种数据同步系统,包括:
系统模块,用于存储通过用户客户端创建的同步任务,并协调模块间的工作;
Binlog模块,用于根据同步任务的任务信息,从源数据库中读取Binlog信息;
缓存数据库,用于暂存所述Binlog信息;
Config模块,用于从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库。
优选地,所述缓存数据库为levelDB,包括写通道和读通道,所述levelDB通过写通道与所述Binlog模块相连接,通过所述写通道将所述Binlog信息写入所述levelDB;所述levelDB通过读通道与所述Config模块相连接,所述Config模块通过读通道从缓存数据库中读取所述Binlog信息。
优选地,所述levelDB中设置有位点存储区,用于在所述Config模块通过读通道从缓存数据库中读取所述Binlog信息时记录读取的Binlog信息时的操作位置。
优选地,还包括键值存储数据库,用于保存当前任务的执行状态。
优选地,本发明所述系统还包括校验模块,其中,所述校验模块包括:
库连接获取单元,用于从同步任务的任务信息中获取源数据库链接信息和目标库链接信息;
数据获取单元,与所述库连接获取单元相连接,根据获得的源数据库链接信息和目标库链接信息,分别获得源数据库数据和对应的目标库数据;
对比单元,与所述数据获取单元相连接,用于对比得到的源数据库数据和对应的目标库数据,得到对比结果。
优选地,本发明所述的数据同步系统还包括Zookeeper,用于管理同步任务的执行。
根据本发明的第三方面,提供一种数据同步装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行上述数据同步方法。
根据本发明的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现上述数据同步方法。
本发明通过对Binlog信息的解析从而获得相应的数据,这种方法使线上随时(7X24小时范围)做数据同步成为现实。并可以根据同步数据的情况,在线上灵活地创建同步任务,定制全量、增量同步和自定义等多种数据同步方式以满足不同类型数据的同步。由于BP以从库为源数据库,在进行数据同步时对线上生产环境的影响小到可以忽略不计。本发明在同步过程中出现异常,或中断后,可以续接;并通过提供数据校验功能,在数据同步完成后可以校验核查,提供了校验视图,发现有丢失数据可以一键补录。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1为本发明数据同步系统的原理示意图;
图2为本发明数据同步方法的流程图;
图3为本发明所述同步系统中的状态存储原理示意图;
图4为本发明数据同步系统与其他系统的连接示意图;
图5为本发明数据同步系统中数据校验的原理示意图;
图6为本发明一数据校验结果示意图;
图7为本发明数据同步系统中包括校验模块的结构原理示意图;和
图8为本发明校验模块的结构原理示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
如图1所示,本发明提供了一种数据同步系统,包括:
系统模块(SystemDB)1,用于存储用户客户端创建的同步任务、协调模块间的工作;
Binlog模块(BinglogProcessor,简称BP)2,用于根据同步任务的任务信息,从源数据库1A中读取Binlog信息;
缓存数据库3,用于暂存所述Binlog信息;
Config(ConfigProcessor,简称CP)模块4,用于从缓存数据库3中读取所述Binlog信息,解析为数据记录信息后,将数据写入目标数据库1B。
作为一个实施例,缓存数据库3采用高速IO接口的数据库levelDB,提高了Binlog信息的读写速度。其中,其levelDB包括写通道和读通道,所述levelDB通过写通道与所述Binlog模块2相连接,所述BP模块2将从源数据库1A得到的所述Binlog信息通过所述写通道写入到所述levelDB;所述levelDB通过读通道与所述CP模块4相连接,所述CP模块4通过读通道从levelDB中读取所述Binlog信息。
在本发明中,以生产环境的从库作为源数据库,BP模块2利用canal伪装成Mysqlslave(本发明中称为伪从库),从线上源数据库1A读取binlog信息,并通过连接到LevelDB的写通道(LevelDBWriteChannel),将binlog信息写入levelDB。CP4连接LevelDB的读取通道(LevelDBReadChannel),分片从LevelDB读取取binlog信息,然后解析为数据记录信息(RowMessage),将数据写入目标数据库1B,如某些专用库。
具体地,如图2所示,数据同步的方法包括:
步骤S1,创建同步任务,可通过用户客户端来创建同步任务,并配置任务信息,将所述同步任务及任务信息写入系统模块1。所述的任务信息包括但不限于源数据库连接信息、目标数据库连接信息、待同步的库表信息、任务的起止时间点。
步骤S2,BP2通过canal作为Mysql slave向源数据库1A发送bump请求获取Binlog信息,并将所述Binlog信息写入缓存数据库3。
步骤S3,CP4从缓存数据库3中读取所述Binlog信息。
步骤S4,CP4将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库1B。
其中,所述任务信息包括同步方式的配置内容,例如,可以配置为增量同步方式、全量同步方式或自定义同步方式;对应增量同步方式,BP2从源数据库中获取的Binlog信息对应当前时间之后的数据;对应全量同步方式,BP2从源数据库中获取的Binlog信息当前时间之前的历史数据和之后的数据;对应自定义同步方式,在任务信息中定义一个时间区间,当BP2从源数据库中获取的Binlog信息时,读取在所述时间区间内的数据的Binglog信息。
在步骤S3中,CP4从缓存数据库3中读取所述Binlog信息时,每一次读取所述Binlog信息时,均会记录所述操作位点(即时间点信息)该操作位点存储于缓存数据库3中的位点存储区,用于在所述同步任务发生中断再启动时,从所述位点继续数据的同步。
本发明在同步任务的执行过程中,记录所述同步任务的执行状态,所述执行状态分为为运行、中断或完结。本发明通过键值数据库保存当前任务的执行状态。如图3所示。
无论BP模块2或CP模块4,都会向键值数据库(如Redis数据库)写入状态。在任务启动或运行时,在键值数据库缓存中还记录任务的执行状态(如,通过相应的字符来表达不同的状态:1-运行、2-中断、3-完结)。
在BP模块2和CP模块4中分别设有用于进行异常处理的单元。当BP模块2和CP模块4出现异常时,将分别中断各自的操作,并将其状态写入键值数据库中。
BP模块2中的Binlog处理单元用于将Binlog信息写入缓存数据库3,同时BP定时查询键值数据库缓存的最新状态。如果当前任务执行状态是中断时,自行中断BP;如果当前任务执行状态是完结,则表示任务结束,BP停止向levelDB写入Binlog信息,并停止任务,清除该任务在缓存(Redis)中的状态。
CP模块4中数据业务处理单元用于从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并记录读取的Binlog信息时的位点(positionpoint),用于断点续接,即指由于某种原因人为中断或异常中断同步任务后,如果还想继续同步,可以找到中断时的位点,继续同步。并向键值数据库中存储任务的初始化状态或完结状态。
当CP出现异常后,CP向键值数据库,如Redis,缓存写入中断状态。BP定时读取更新状态,当取到当前状态是中断时,则中断Binlog信息的读取、存储操作。
而BP出现异常时,CP不会因为中断状态而停止运行,会继续消费LevelDB中的Binlog信息,直到取完,会在LevelDB中记录异常结束的位点,该位点的时间点小于同步任务的结束时间点。消费后的信息会自动清理掉。
将本发明所述的同步系统与其他系统联合起来,可以更好地完成数据的同步及管理,如图4所示。
通过用户客户端进行同步任务的创建和配置,并可以监控所述同步系统。通过Zookeeper进行任务管理,通过Redis数据进行断点续传的管理。
具体地,用户客户端同步任务及相应的任务信息存储到同步系统的同时,以节点的方式写到Zookeeper中,此时zookeeper的监听器可以感知到新建任务。
CP模块4通过快速扫描Zookeeper服务上的任务节点和利用zookeeper监听新增节点来获取到同步任务的任务信息,根据任务信息中的起始时间,在相应的时间启动所述的同步任务,同时启动BP的工作。
本发明所述的同步系统可以集群的方式部署,节点之间由Zookeeper协调工作,实现节点处理任务锁的机制,保证任务在集群中的均衡和高效分配。
另外,为了提高数据同步的完整性,在数据同步时不丢失数据,本发明在断点续传时,读取CP模块4留下的位点,根据所述位点信息和任务信息(如在配置同步任务时,设定有在断点续传时从源数据库读取的数据量或时间段,如位点前15分钟),获取与所述位点信息对应的源数据库时间戳;从所述缓存数据库中实时读取时间戳之后的Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库;根据任务信息,以SQL读写方式将所述时间戳之前15分钟的数据同步到目标数据库。
本发明还采用了数据完整性校验的方法来保证数据同步的正确性,并提供了在数据同步不正确时的补救方法。如图5所示,在任务信息中设置任务的起止时间点,以所述同步任务的开始时间和结束时间作为一个时间区间,校验所述时间区间同步的数据。
具体地,在对比时,将所述时间区间划分为多个时间片断,如以5分钟时间片、10分钟时间片或15分钟的时间片。依次获取对应时间片断的源数据库数据和对应的目标数据库数据,进行对比,并显示数据校验结果。如图6所示,在界面展示校验结果时,以表名和时间作为两个维度,明确的显示出某表、某个时间段数据同步是否正常、还是有差异。通过选择有差异的数据,可以创建补录任务,用于重新同步这部分数据。
对应地,本发明提供的数据同步系统还包括校验模块,以所述同步任务的开始时间和结束时间作为一个时间区间,校验所述时间区间同步的数据,保证了本发明功能的完整性。其中,为了不影响生产,一般校验任务可以设置在零点以后到早晨6点前执行。
具体地,所述校验模块如图6、图7所示,包括:所述校验模块5分别从源数据库1A和目标数据库1B中获取任务信息中的时间区别的数据,通过对比,得到校验结果,并可以根据所述校验结果创建补录任务。具体地,所述校验模块5包括库连接获取单元51,用于从同步任务的任务信息中获取源数据库链接信息和目标库链接信息。数据获取单元52,与所述库连接获取单元相连接,根据获得的源数据库链接信息和目标库链接信息,分别获得源数据库数据和对应的目标库数据。和对比单元53,与所述数据获取单元相连接,用于对比得到的源数据库数据和对应的目标库数据,得到对比结果,并将所述对比结果反馈给用户。
本发明提供的数据同步方法和同步系统具有以下有益效果:
1.本发明使线上随时(7X24小时范围)做数据同步成为现实。
2.线上创建同步任务,可定制全量、增量同步和自定义多种数据同步方式,非常灵活。
3.任务创建后,自动执行,不需要过多的人工干预。同步数据时对线上生产环境的影响非常小,可忽略不计。
5.数据同步效率高,并且安全。
6.同步过程中出现异常,或中断后,可以续接;
7.提供数据校验功能,数据同步完成可以校验核查,提供了校验视图,发现有丢失数据可以一键补录。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种数据同步的方法,其中,包括:
通过用户客户端创建同步任务,并配置任务信息;
根据同步任务的任务信息,从源数据库中获取Binlog信息,并写入缓存数据库;
从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库;
其中,若从源数据库中获取Binlog信息出现异常,则将所述同步任务的执行状态变更为中断状态;若从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库出现异常,则将所述同步任务的执行状态变更为中断状态;
其中,定时获取所述同步任务的最新执行状态,当从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库这一过程出现异常而使所述执行状态为中断状态时,中断从源数据库中获取Binlog信息;
当从源数据库中获取Binlog信息出现异常而使所述执行状态为中断状态时,持续从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库,直到处理完所有的Binlog信息;
其中,从缓存数据库中读取所述Binlog信息时记录操作位点,当所述同步任务发生中断再启动时,从所述位点继续数据的同步。
2.如权利要求1所述的数据同步的方法,其中,从源数据库中读取Binlog信息具体包括:
通过作为伪从库的Binlog模块向源数据库发送bump请求获取binlog信息。
3.如权利要求1所述的数据同步的方法,其中,所述任务信息包括增量同步方式,全量同步方式或自定义同步方式;
对应地,所述从源数据库中获取的Binlog信息分别对应当前时间之后的数据,当前时间之前的历史数据和之后的数据,或自定义时间区间内的数据。
4.如权利要求1所述的数据同步的方法,其中,所述从所述位点继续数据的同步的步骤包括:
读取所述位点信息,根据所述位点信息和任务信息,获取与所述位点信息对应的源数据库时间戳;
从所述缓存数据库中实时读取时间戳之后的Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库;
以SQL读写方式将所述时间戳之前的数据同步到目标数据库。
5.如权利要求1所述的数据同步的方法,其中,所述的任务信息包括任务的起止时间点,以所述同步任务的开始时间和结束时间作为一个时间区间,校验所述时间区间同步的数据。
6.如权利要求5所述的数据同步的方法,其中,校验所述时间区间同步的数据具体包括:
将所述时间区间划分为多个时间片断;
分别获取对应时间片断的源数据库数据和对应的目标数据库数据,并进行对比;
向用户返回数据对比结果。
7.如权利要求6所述的数据同步的方法,其中,在所述对比结果中,如果目标数据库数据与对应的源数据库数据有差异,创建并执行相应的数据补录任务。
8.一种数据同步系统,包括:
系统模块,用于存储通过用户客户端创建的同步任务,并协调模块间的工作;
Binlog模块,用于根据同步任务的任务信息,从源数据库中读取Binlog信息;
缓存数据库,用于暂存所述Binlog信息;和
Config模块,用于从缓存数据库中读取所述Binlog信息,将所述的Binlog信息解析为数据记录信息,并将所述数据写入目标数据库;
其中,所述系统还包括键值数据库,用于保存当前任务的执行状态;
所述Binlog模块和所述Config模块出现异常时,分别中断各自的操作,并将中断状态写入所述键值数据库中;
所述Binlog模块定时查询所述键值数据库缓存的最新状态,若当前任务的执行状态是中断状态时,自行中断从源数据库中读取Binlog信息的操作;
当所述Binlog模块出现异常时,所述Config模块继续从缓存数据库中读取所述Binlog信息,直到读取完所有的Binlog信息;
所述Config模块从缓存数据库中读取所述Binlog信息时记录操作位点,所述操作位点存储于缓存数据库中的位点存储区,用于在所述同步任务发生中断再启动时,从所述位点继续数据的同步。
9.如权利要求8所示的数据同步系统,其中,所述缓存数据库为levelDB,包括写通道和读通道,所述levelDB通过写通道与所述Binlog模块相连接,通过所述写通道将所述Binlog信息写入所述levelDB;所述levelDB通过读通道与所述Config模块相连接,所述Config模块通过读通道从缓存数据库中读取所述Binlog信息。
10.如权利要求9所示的数据同步系统,其中,所述levelDB中设置有位点存储区,用于在所述Config模块通过读通道从缓存数据库中读取所述Binlog信息时记录读取的Binlog信息时的操作位置。
11.如权利要求8所示的数据同步系统,其中,还包括校验模块,所述校验模块包括:
库连接获取单元,用于从同步任务的任务信息中获取源数据库链接信息和目标库链接信息;
数据获取单元,与所述库连接获取单元相连接,根据获得的源数据库链接信息和目标库链接信息,分别获得源数据库数据和对应的目标库数据;和
对比单元,与所述数据获取单元相连接,用于对比得到的源数据库数据和对应的目标库数据,得到对比结果。
12.如权利要求8所示的数据同步系统,其中,还包括Zookeeper,用于管理同步任务的执行。
13.一种数据同步装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至7中任一项所述的数据同步的方法。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1至7中任一项所述的数据同步的方法。
CN201610349967.XA 2016-05-24 2016-05-24 数据同步的方法和系统 Active CN107423303B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610349967.XA CN107423303B (zh) 2016-05-24 2016-05-24 数据同步的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610349967.XA CN107423303B (zh) 2016-05-24 2016-05-24 数据同步的方法和系统

Publications (2)

Publication Number Publication Date
CN107423303A CN107423303A (zh) 2017-12-01
CN107423303B true CN107423303B (zh) 2021-02-26

Family

ID=60422726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610349967.XA Active CN107423303B (zh) 2016-05-24 2016-05-24 数据同步的方法和系统

Country Status (1)

Country Link
CN (1) CN107423303B (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108431B (zh) * 2017-12-19 2021-07-23 中国民航信息网络股份有限公司 数据同步方法和系统
CN110019133B (zh) * 2017-12-21 2021-07-13 北京京东尚科信息技术有限公司 数据在线迁移方法和装置
CN108009282A (zh) * 2017-12-22 2018-05-08 武汉楚鼎信息技术有限公司 一种json数据同步到关系型数据库的方法及系统装置
CN108108463B (zh) * 2017-12-29 2021-08-24 北京奇虎科技有限公司 基于时间片调度的同步任务处理方法及装置
CN110545301B (zh) * 2018-05-29 2022-06-17 视联动力信息技术股份有限公司 监控资源同步方法和装置
CN108810122A (zh) * 2018-06-01 2018-11-13 中冶南方工程技术有限公司 用于轧钢二级的日志系统及其使用方法
CN109150596B (zh) * 2018-08-08 2021-08-03 新智能源系统控制有限责任公司 一种scada系统实时数据转储方法和装置
CN109116818B (zh) * 2018-08-08 2020-03-17 新智能源系统控制有限责任公司 一种scada系统升级时的实时数据转储方法和装置
CN111309790A (zh) * 2018-11-27 2020-06-19 千寻位置网络有限公司 基于maxcomputer数据库的自动ETL配置方法及装置、控制系统
CN109635033B (zh) * 2018-12-27 2023-03-21 贵州省广播电视信息网络股份有限公司 一种千万级存量数据的处理、日志收集及导入数据库的方法
CN109783504A (zh) * 2019-01-23 2019-05-21 广州华多网络科技有限公司 数据同步方法、装置、计算机设备及存储介质
CN111797158B (zh) * 2019-04-08 2024-04-05 北京沃东天骏信息技术有限公司 数据同步系统、方法和计算机可读存储介质
CN110113386A (zh) * 2019-04-16 2019-08-09 苏州浪潮智能科技有限公司 一种mdc数据中心的动力与环境监控系统数据同步方法
CN110427426A (zh) * 2019-08-02 2019-11-08 中国工商银行股份有限公司 一种数据同步处理方法及装置
CN110602165B (zh) * 2019-08-08 2022-09-06 数字广东网络建设有限公司 政务数据同步方法、装置、系统、计算机设备和存储介质
CN110704401A (zh) * 2019-10-10 2020-01-17 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及存储介质
CN110727694B (zh) * 2019-10-10 2024-01-09 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及存储介质
CN110716960B (zh) * 2019-10-22 2022-07-15 北京锐安科技有限公司 一种数据库查询方法、装置、设备及存储介质
CN112905691B (zh) * 2019-11-19 2024-05-14 中盈优创资讯科技有限公司 信息同步方法及装置
CN110995723A (zh) * 2019-12-11 2020-04-10 深圳物讯科技有限公司 一种跨公安边界大数据传输数据不丢失的方法
CN111177173A (zh) * 2020-01-02 2020-05-19 普元信息技术股份有限公司 大数据环境下实现数据同步优化处理的系统及其方法
CN111352944B (zh) * 2020-02-10 2023-08-18 北京百度网讯科技有限公司 数据处理方法、装置、电子设备与存储介质
CN111291127B (zh) * 2020-03-11 2023-10-27 北京奇艺世纪科技有限公司 一种数据同步方法、装置、服务器及存储介质
CN111639061B (zh) * 2020-05-26 2023-03-17 深圳壹账通智能科技有限公司 Redis集群中数据管理方法、装置、介质及电子设备
CN111951130B (zh) * 2020-08-19 2024-01-30 重庆市合川区公安局 一种电子设备的数据取证分析方法及系统
CN113760860B (zh) * 2020-11-12 2023-09-22 北京京东振世信息技术有限公司 一种数据读取方法和装置
CN113076310A (zh) * 2021-04-30 2021-07-06 浙江太美医疗科技股份有限公司 实时数据仓库的数据校验方法、系统及计算机可读介质
CN113127521B (zh) * 2021-05-19 2023-04-28 福建天晴在线互动科技有限公司 一种分布式系统下的全量缓存方案及系统
CN114416718A (zh) * 2022-03-28 2022-04-29 西安热工研究院有限公司 数据库同步历史数据的方法、系统、电子设备和储存介质
CN116166754B (zh) * 2023-04-20 2023-08-04 梅州客商银行股份有限公司 半实时数据批量同步的方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101369283A (zh) * 2008-09-25 2009-02-18 中兴通讯股份有限公司 一种内存数据库与物理数据库间的数据同步方法及系统
CN104239476A (zh) * 2014-09-04 2014-12-24 上海天脉聚源文化传媒有限公司 一种数据库同步的方法、装置及系统
CN105335443A (zh) * 2014-08-13 2016-02-17 阿里巴巴集团控股有限公司 一种用于数据同步中的异常检测的方法与设备
CN105574109A (zh) * 2015-12-10 2016-05-11 青岛海信传媒网络技术有限公司 一种数据库同步方法、同步设备及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103780638B (zh) * 2012-10-18 2019-02-19 腾讯科技(深圳)有限公司 数据同步方法及系统
US9424145B2 (en) * 2014-06-25 2016-08-23 Sybase, Inc. Ensuring the same completion status for transactions after recovery in a synchronous replication environment
CN104809200B (zh) * 2015-04-24 2018-11-16 联动优势科技有限公司 一种数据库同步的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101369283A (zh) * 2008-09-25 2009-02-18 中兴通讯股份有限公司 一种内存数据库与物理数据库间的数据同步方法及系统
CN105335443A (zh) * 2014-08-13 2016-02-17 阿里巴巴集团控股有限公司 一种用于数据同步中的异常检测的方法与设备
CN104239476A (zh) * 2014-09-04 2014-12-24 上海天脉聚源文化传媒有限公司 一种数据库同步的方法、装置及系统
CN105574109A (zh) * 2015-12-10 2016-05-11 青岛海信传媒网络技术有限公司 一种数据库同步方法、同步设备及系统

Also Published As

Publication number Publication date
CN107423303A (zh) 2017-12-01

Similar Documents

Publication Publication Date Title
CN107423303B (zh) 数据同步的方法和系统
CN110147411B (zh) 数据同步方法、装置、计算机设备及存储介质
CN104423960B (zh) 一种项目持续集成的方法及系统
US10726042B2 (en) Replication control using eventually consistent meta-data
JP6996812B2 (ja) 分散データベースにおけるデータブロックを処理する方法、プログラム、およびデバイス
CN111506556A (zh) 一种多源异构的结构化数据同步方法
CN108733671B (zh) 数据历史归档的方法和装置
CN111339118A (zh) 基于Kubernetes的资源变更历史记录方法及装置
CN111737227A (zh) 数据修改方法及系统
CN110781197B (zh) 一种hive离线同步校验方法、装置及电子设备
CN114218193A (zh) 数据迁移方法、装置、计算机设备和可读存储介质
CN113760354A (zh) 一种调度自动化系统的本体信息版本管控方法及装置
CN111290942A (zh) 压力测试方法、装置以及计算机可读介质
CN106682141B (zh) 一种基于业务操作日志的数据同步方法
CN106708699B (zh) 错误信息记录方法及装置
CN113010208A (zh) 一种版本信息的生成方法、装置、设备及存储介质
US9977726B2 (en) System and method for smart framework for network backup software debugging
CN109116818B (zh) 一种scada系统升级时的实时数据转储方法和装置
CN109150596B (zh) 一种scada系统实时数据转储方法和装置
CN116755699A (zh) 编译处理方法、装置、电子设备和存储介质
CN107168822B (zh) Oracle streams的异常修复系统及方法
CN113190531A (zh) 一种数据库迁移方法、装置、设备和存储介质
CN112540970A (zh) 一种基于版本管理的元数据血缘分析方法及系统
CN105574055A (zh) 防止内存耗尽的方法及装置
CN117349384B (zh) 一种数据库同步的方法、系统及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant