CN110569269A - 一种数据同步方法及系统 - Google Patents

一种数据同步方法及系统 Download PDF

Info

Publication number
CN110569269A
CN110569269A CN201911075133.4A CN201911075133A CN110569269A CN 110569269 A CN110569269 A CN 110569269A CN 201911075133 A CN201911075133 A CN 201911075133A CN 110569269 A CN110569269 A CN 110569269A
Authority
CN
China
Prior art keywords
data
event stream
database
distributed cache
cache system
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.)
Pending
Application number
CN201911075133.4A
Other languages
English (en)
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.)
Chengdu Sefon Software Co Ltd
Original Assignee
Chengdu Sefon Software 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 Chengdu Sefon Software Co Ltd filed Critical Chengdu Sefon Software Co Ltd
Priority to CN201911075133.4A priority Critical patent/CN110569269A/zh
Publication of CN110569269A publication Critical patent/CN110569269A/zh
Pending legal-status Critical Current

Links

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/23Updating
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

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

本发明公开了一种数据同步方法及系统,基于源数据库、目标数据库和分布式缓存系统,源数据库每成功发送一次变更数据后,更新分布式缓存系统中的源数据库检查点信息;目标数据库每成功同步一次变更数据到数据库后,目标数据库就更新分布式缓存系统中的目标数据库检查点信息。本方案区别于现有的数据同步方法,将检查点存储在分布式缓存系统中,即使出现单点硬件故障,也不会导致检查点丢失,保证了数据同步系统的高可用性。同时,源数据库在变更数据发送成功后才更新分布式缓存系统中的源数据库检查点信息,即确认目标数据库接受变更数据后才更新分布式缓存系统中的源数据库检查点信息,可以进一步的保证在出现问题进行断点续传时的效率。

Description

一种数据同步方法及系统
技术领域
本发明涉及数据同步领域,特别涉及一种数据同步方法及系统。
背景技术
随着社会的发展和科技的进步,用户越来越依赖网络系统来处理各种事务。网络系统的正常运行依赖于数据中心系统的稳定运行,一旦数据由于某种原因丢失,将会使得某些功能陷入瘫痪,对用户造成不可估量的损失。为了保证源数据库中数据安全,通常采用备份数据的方式保证数据的连续性,将服务器上的源数据库的数据远程同步至目标数据库,以便于在服务器出现故障时,能使用目标数据库中的数据。现有技术中,数据库之间的远程同步主要采用数据库数据同步技术。
传统的主流数据同步软件,如Oracle GoldenGate,采用文件形式来保存检查点和缓存中间数据。GoldenGate抽取源数据库数据时需要将抽取的日志写入源数据库的Trail文件队列,随后通过网络将Trail文件队列中的内容发送到目标数据库,目标数据库同样将接收到的内容写入目标数据库的Trail文件队列,复制进程再将Trail文件中的内容解析为SQL并同步到目标数据库系统中。这种基于文件的方式可以应对源数据库与目标数据库之间的网络中断等类型的故障。同时,GoldenGate通过将检查点写到文件的方式来解决其自身崩溃重启后从什么位置继续处理数据(包括读取日志和同步写数据)的问题。
以上基于检查点文件/Trail文件的技术实现简单,但其问题也很明显:首先,文件只是存储在单机上的,当该机出现硬件故障而非进程崩溃之类软件问题时文件就无法访问了,从而形成了单点故障;其次,将中间数据保存在文件中待随后的同步进程来读取的方式意味着多了一次磁盘写入和读取,显然会增加开销和降低同步速度。
发明内容
本发明的目的在于:提供了一种数据同步方法及系统,解决了现有基于检查点文件/Trail文件的数据同步中单点故障及同步效率较低的问题。
本发明采用的技术方案如下:
一种数据同步方法,基于源数据库、目标数据库和分布式缓存系统,源数据库每成功发送一次变更数据后,更新分布式缓存系统中的源数据库检查点信息;目标数据库每成功同步一次变更数据后,目标数据库就更新分布式缓存系统中的目标数据库检查点信息。
本方案区别于现有的数据同步方法,将检查点存储在分布式缓存系统中,即使出现单点硬件故障,也不会导致检查点丢失,保证了数据同步系统的高可用性。同时,源数据库在变更数据发送成功后才更新分布式缓存系统中的源数据库检查点信息,即确认目标数据库接受变更数据后才更新分布式缓存系统中的源数据库检查点信息,而非发送后即更新分布式缓存系统中的源数据库检查点信息,可以进一步的保证在出现问题进行断点续传时的效率。
进一步的,所述分布式缓存系统采用Redis分布式缓存系统。分布式缓存:分布式缓存指的是与应用分离的缓存组件或服务。它通常基于内存,可持久化,在很多场合可以对关系数据库起到很好的补充作用,显著提高读取数据的性能。典型的分布式缓存,如Redis,性能强劲,具有复制特性从而支持高可用。Redis 是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
进一步的,所述源数据库发送变更数据的方法包括以下步骤:
S1、通过事件流抽取进程读取源数据库日志的获取变更数据;
S2、事件流抽取进程将变更数据转换成内部事件流;
S3、内部事件流通过网络发送到目标数据库。
进一步的,所述事件流抽取进程将变更数据转换成内部事件流的方法包括以下步骤:
S201、事件流抽取进程读取变更数据;
S202、事件流抽取进程处理变更数据,生成内部相应的事件流数据。
所述目标数据库同步变更数据的方法包括以下步骤:
S4、消息队列通过网络接收内部事件流;
S5、事件流同步进程将消息队列接收到的内部事件流解析为SQL语句;
S6、目标数据库根据解析得到的SQL语句进行同步。所述内部事件流为统一格式,由于数据库种类繁多,在进行数据同步时,无法保证源数据库与目标数据库为同种数据库,即数据库日志格式可能是不同的。因此,将数据库日志记录的各项事务均转化为统一格式的内部事件流进行传输,在目标数据库通过消息队列和事件流同步进程接收和解析内部事件流后得到可用的SQL语句。
进一步的,所述消息队列采用开源消息队列。所述开源消息队列包括kafka、activemq、rabbitmq、rocketmq等消息队列。消息队列支持高性能的异步通信,将消息发送端和接收端解耦,并且支持高可用,可以进一步提升本方案的可靠性。
进一步的,还包括使用该方法的任意组件出现故障时的解决方法,包括以下步骤:
当源数据库出现软件或硬件故障时,包括以下步骤:
S701、重启事件流抽取进程;
S801、事件流抽取进程从分布式缓存系统中获取源数据库检查点信息;
S901、事件流抽取进程根据获取的源数据库检查点信息从源数据库中检查点对应的位置重新开始读取日志信息;
当目标数据库出现软件或硬件故障时,包括以下步骤:
S702、重启事件流同步进程;
S802、事件流同步进程从分布式缓存系统中获取目标数据库检查点信息;
S902、事件流同步进程根据获取的目标数据库检查点信息从目标数据库中检查点对应的位置重新开始进行同步。
当源数据库一侧出现软件或硬件故障时,执行步骤S701-S901,当目标数据库一侧出现软件或硬件故障时,执行步骤S702-S902。上述步骤利用读取日志的幂等性,即由于数据库写日志文件只会在末端不断增加新的数据而不会更改原有日志信息,因此只要在日志文件相同的位置读取日志,无论多少次读出的内容都是相同的,省略了源数据库的磁盘写入和读取过程,当数据同步进程崩溃/所在节点出现硬件故障导致,在本节点/其它节点重启该进程时根据检查点信息即可知道需要从何位置继续读日志,从而减少了同步过程中工作量。
一种数据同步系统,包括用于存储检查点信息的分布式缓存系统,还包括数据同步平台,所示数据同步平台包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现上述的更新分布式缓存系统中的源数据库检查点信息、更新分布式缓存系统中的目标数据库检查点信息、执行事件流抽取进程、消息队列、事件流同步进程。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明一种数据同步方法及系统,采用本方案,可以显著提高数据同步平台的可用性,排除了单点故障;
2.本发明一种数据同步方法及系统,通过事件流抽取进程在内存中直接处理和发送数据的方式,避免了不必要的磁盘I/O;
3.本发明一种数据同步方法及系统,通过接收端采用消息队列接收的方式,相较于传统文件方式也提高了效率,从而改善了数据同步的整体性能。
4. 本发明一种数据同步方法及系统,解决了现有基于检查点文件/Trail文件的数据同步中单点故障及同步效率较低的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:
图1是本发明的工作原理示意图;
图2是现有基于检查点文件/Trail文件的数据同步原理示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合图1、图2对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
分布式缓存:分布式缓存指的是与应用分离的缓存组件或服务。它通常基于内存,可持久化,在很多场合可以对关系数据库起到很好的补充作用,显著提高读取数据的性能。典型的分布式缓存如Redis性能强劲,具有复制特性从而支持高可用。
消息队列:消息队列是一种支持在分布式系统中发送和接收消息的软件基础设施,已经逐渐成为企业IT系统内部通信的核心手段,具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能。它支持高性能的异步通信,将消息发送端和接收端解耦,并且支持高可用。
日志:关系型数据库都具有日志,用于记录所有事务以及每个事务对数据库所做的修改。日志是数据库的重要组件,如果系统出现故障,则可能需要使用日志将数据库恢复到一致状态。
数据同步:数据同步支持实时事务更改数据抽取、转换和同步。它通过非侵入式方式提供异构系统间基于数据库日志的数据同步,而不用在源数据库安装或添加任何表、索引、触发器,对网络带宽和源数据库的影响较小。
高可用:通常指一个系统经过专门的设计,可以屏蔽单个部件的故障,从而减少停工时间,保持其服务的高度可用性。高可用通常是通过“冗余”来实现的,即通过配置额外的软/硬件资源,以避免单点故障。
检查点:本文中的检查点是指将数据同步相关进程的当前读/写位置保存起来,以用于恢复目的。检查点不仅可以真实地标记数据抽取进程捕获的要进行同步的数据变更以及数据同步进程应用到目标端数据库的数据变化,防止进程进行冗余的数据处理,还可以提供容错机制,防止在系统、网络或数据同步进程需要重启时发生数据丢失。
实施例1
一种数据同步方法,基于源数据库、目标数据库和分布式缓存系统,源数据库每成功发送一次变更数据后,更新分布式缓存系统中的源数据库检查点信息;目标数据库每成功同步一次变更数据后,目标数据库就更新分布式缓存系统中的目标数据库检查点信息。
实施例2
本实施例在实施例1的基础上,所述分布式缓存系统采用Redis分布式缓存系统。分布式缓存:分布式缓存指的是与应用分离的缓存组件或服务。它通常基于内存,可持久化,在很多场合可以对关系数据库起到很好的补充作用,显著提高读取数据的性能。典型的分布式缓存,如Redis,性能强劲,具有复制特性从而支持高可用。Redis 是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
实施例3
本实施例在实施例2的基础上,所述源数据库发送变更数据的方法包括以下步骤:
S1、通过事件流抽取进程读取源数据库日志的获取变更数据;
S2、事件流抽取进程将变更数据转换成内部事件流;
S3、内部事件流通过网络发送到目标数据库。
进一步的,所述事件流抽取进程将变更数据转换成内部事件流的方法包括以下步骤:
S201、事件流抽取进程读取变更数据;
S202、事件流抽取进程处理变更数据,生成内部相应的事件流数据。
所述目标数据库同步变更数据的方法包括以下步骤:
S4、消息队列通过网络接收内部事件流;
S5、事件流同步进程将消息队列接收到的内部事件流解析为SQL语句;
S6、目标数据库根据解析得到的SQL语句进行同步。
进一步的,所述消息队列采用开源消息队列。所述开源消息队列包括kafka、activemq、rabbitmq、rocketmq等消息队列。消息队列支持高性能的异步通信,将消息发送端和接收端解耦,并且支持高可用,可以进一步提升本方案的可靠性。
实施例4
本实施例在实施例1的基础上,还包括使用该方法的任意组件出现故障时的解决方法,包括以下步骤:
当源数据库出现软件或硬件故障时,包括以下步骤:
S701、重启事件流抽取进程;
S801、事件流抽取进程从分布式缓存系统中获取源数据库检查点信息;
S901、事件流抽取进程根据获取的源数据库检查点信息从源数据库中检查点对应的位置重新开始读取日志信息;
当目标数据库出现软件或硬件故障时,包括以下步骤:
S702、重启事件流同步进程;
S802、事件流同步进程从分布式缓存系统中获取目标数据库检查点信息;
S902、事件流同步进程根据获取的目标数据库检查点信息从目标数据库中检查点对应的位置重新开始进行同步。
上述步骤利用读取日志的幂等性,即由于数据库写日志文件只会在末端不断增加新的数据而不会更改原有日志信息,因此只要在日志文件相同的位置读取日志,无论多少次读出的内容都是相同的,省略了源数据库的磁盘写入和读取过程,当数据同步进程崩溃/所在节点出现硬件故障导致,在本节点/其它节点重启该进程时根据检查点信息即可知道需要从何位置继续读日志,从而减少了同步过程中工作量。
实施例5
一种数据同步系统,包括用于存储检查点信息的分布式缓存系统,还包括数据同步平台,所示数据同步平台包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现上述的更新分布式缓存系统中的源数据库检查点信息、更新分布式缓存系统中的目标数据库检查点信息、执行事件流抽取进程、消息队列、事件流同步进程。
实施例6
本实施例为本方案事件流的部分代码,包括:
package com.sefonsoft.dataflow;
import java.util.Set;
/**
* 事件(消息)
*/
public interface Record {
/**
* 事件(消息)头,存放元信息
*/
public interface Header {
/**
* 原始事件(消息)
*/
public byte[] getRaw();
/**
* 原始事件(消息)类型
*/
public String getRawMimeType();
/**
* 获取属性名称
*/
public Set<String>getAttributeNames();
/**
* 获取属性值
*/
public String getAttribute(String name);
/**
* 设置属性
*/
public void setAttribute(String name, String value);
/**
* 删除属性值
*/
public void deleteAttribute(String name);
}
/**
* 获取事件(消息)头
*/
public Header getHeader();
/**
* 设置事件(消息)字段
*/
public Field set(Field field);
/**
* 获取事件(消息)字段
*/
public Field get(String fieldPath);
/**
* 删除事件(消息)字段
*/
public Field delete(String fieldPath);
/**
* 检查是否有事件(消息)字段
*/
public booleanhas(String fieldPath);
}
还包括:
package com.sefonsoft.dataflow;
import java.util.Map;
/**
* 事件(消息)字段
*/
public class Field implements Cloneable {
private Type type;
private Object value;
private Map<String, String> attributes;
/**
* 字段类型
*/
public enum Type {
BOOLEAN(), CHAR(), BYTE(), SHORT(), INTEGER(), LONG(),FLOAT(), DOUBLE(), DATE(), DATETIME(), TIME(), DECIMAL(),
STRING(), FILE_REF(), BYTE_ARRAY(), MAP(), LIST(), LIST_MAP(), ZONED_DATETIME(),;
}
public Field(Type type2, Object value2, Map<String, String>attributes2) {
this.type = type2;
this.value = value2;
this.attributes = attributes2;
}
/**
* <p>
* Returns a clone of the field.
* </p>
*
* @return a clone of the field (deep copy).
*/
@Override
public Field clone() {
return new Field(type, value, attributes);
}
}。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种数据同步方法,基于源数据库、目标数据库和分布式缓存系统,其特征在于:源数据库每成功发送一次变更数据后,更新分布式缓存系统中的源数据库检查点信息;目标数据库每成功同步一次变更数据后,目标数据库就更新分布式缓存系统中的目标数据库检查点信息。
2.根据权利要求1所述的一种数据同步方法,其特征在于:所述分布式缓存系统采用Redis分布式缓存系统。
3.根据权利要求1或2所述的一种数据同步方法,其特征在于:所述源数据库发送变更数据的方法包括以下步骤:
S1、通过事件流抽取进程读取源数据库日志,获取变更数据;
S2、事件流抽取进程将变更数据转换成内部事件流;
S3、内部事件流通过网络发送到目标数据库。
4.根据权利要求3所述的一种数据同步方法,其特征在于:所述事件流抽取进程将变更数据转换成内部事件流的方法包括以下步骤:
S201、事件流抽取进程读取变更数据;
S202、事件流抽取进程处理变更数据,生成内部相应的事件流数据。
5.根据权利要求3所述的一种数据同步方法,其特征在于:所述目标数据库同步变更数据的方法包括以下步骤:
S4、消息队列通过网络接收内部事件流;
S5、事件流同步进程将消息队列接收到的内部事件流解析为SQL语句;
S6、目标数据库根据解析得到的SQL语句进行同步。
6.根据权利要求5所述的一种数据同步方法,其特征在于:所述消息队列采用开源消息队列。
7.根据权利要求1或2所述的一种数据同步方法,其特征在于:还包括使用该方法的任意组件出现故障时的解决方法:
当源数据库出现软件或硬件故障时,包括以下步骤:
S701、重启事件流抽取进程;
S801、事件流抽取进程从分布式缓存系统中获取源数据库检查点信息;
S901、事件流抽取进程根据获取的源数据库检查点信息从源数据库中检查点对应的位置重新开始读取日志信息;
当目标数据库出现软件或硬件故障时,包括以下步骤:
S702、重启事件流同步进程;
S802、事件流同步进程从分布式缓存系统中获取目标数据库检查点信息;
S902、事件流同步进程根据获取的目标数据库检查点信息从目标数据库中检查点对应的位置重新开始进行同步。
8.一种数据同步系统,其特征在于,包括用于存储检查点信息的分布式缓存系统,还包括数据同步平台,所示数据同步平台包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现如权利要求5所述的更新分布式缓存系统中的源数据库检查点信息、更新分布式缓存系统中的目标数据库检查点信息、执行事件流抽取进程、消息队列、事件流同步进程。
CN201911075133.4A 2019-11-06 2019-11-06 一种数据同步方法及系统 Pending CN110569269A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911075133.4A CN110569269A (zh) 2019-11-06 2019-11-06 一种数据同步方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911075133.4A CN110569269A (zh) 2019-11-06 2019-11-06 一种数据同步方法及系统

Publications (1)

Publication Number Publication Date
CN110569269A true CN110569269A (zh) 2019-12-13

Family

ID=68786015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911075133.4A Pending CN110569269A (zh) 2019-11-06 2019-11-06 一种数据同步方法及系统

Country Status (1)

Country Link
CN (1) CN110569269A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685431A (zh) * 2020-12-29 2021-04-20 京东数字科技控股股份有限公司 异步缓存方法、装置、系统、电子设备和存储介质
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11537384B2 (en) 2016-02-12 2022-12-27 Nutanix, Inc. Virtualized file server distribution across clusters
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11775397B2 (en) 2016-12-05 2023-10-03 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11888599B2 (en) 2016-05-20 2024-01-30 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US11954078B2 (en) 2016-12-06 2024-04-09 Nutanix, Inc. Cloning virtualized file servers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790629A (zh) * 2017-01-03 2017-05-31 努比亚技术有限公司 数据同步装置及其实现数据同步的方法、客户端访问系统
CN109299122A (zh) * 2018-09-26 2019-02-01 努比亚技术有限公司 一种数据同步方法、设备和计算机可存储介质
US20190051210A1 (en) * 2017-08-09 2019-02-14 Inchstones, LLC Distributed architecture for data synchronization
CN110209651A (zh) * 2019-05-16 2019-09-06 南京华盾电力信息安全测评有限公司 基于MongoDB的时序数据库系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790629A (zh) * 2017-01-03 2017-05-31 努比亚技术有限公司 数据同步装置及其实现数据同步的方法、客户端访问系统
US20190051210A1 (en) * 2017-08-09 2019-02-14 Inchstones, LLC Distributed architecture for data synchronization
CN109299122A (zh) * 2018-09-26 2019-02-01 努比亚技术有限公司 一种数据同步方法、设备和计算机可存储介质
CN110209651A (zh) * 2019-05-16 2019-09-06 南京华盾电力信息安全测评有限公司 基于MongoDB的时序数据库系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
苏子权: "基于MySQL BinLog的数据增量同步系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11947952B2 (en) 2016-02-12 2024-04-02 Nutanix, Inc. Virtualized file server disaster recovery
US11966730B2 (en) 2016-02-12 2024-04-23 Nutanix, Inc. Virtualized file server smart data ingestion
US11537384B2 (en) 2016-02-12 2022-12-27 Nutanix, Inc. Virtualized file server distribution across clusters
US11544049B2 (en) 2016-02-12 2023-01-03 Nutanix, Inc. Virtualized file server disaster recovery
US11550558B2 (en) 2016-02-12 2023-01-10 Nutanix, Inc. Virtualized file server deployment
US11550557B2 (en) 2016-02-12 2023-01-10 Nutanix, Inc. Virtualized file server
US11550559B2 (en) 2016-02-12 2023-01-10 Nutanix, Inc. Virtualized file server rolling upgrade
US11645065B2 (en) 2016-02-12 2023-05-09 Nutanix, Inc. Virtualized file server user views
US11669320B2 (en) 2016-02-12 2023-06-06 Nutanix, Inc. Self-healing virtualized file server
US11579861B2 (en) 2016-02-12 2023-02-14 Nutanix, Inc. Virtualized file server smart data ingestion
US12014166B2 (en) 2016-02-12 2024-06-18 Nutanix, Inc. Virtualized file server user views
US11966729B2 (en) 2016-02-12 2024-04-23 Nutanix, Inc. Virtualized file server
US11922157B2 (en) 2016-02-12 2024-03-05 Nutanix, Inc. Virtualized file server
US11888599B2 (en) 2016-05-20 2024-01-30 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11775397B2 (en) 2016-12-05 2023-10-03 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11922203B2 (en) 2016-12-06 2024-03-05 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11954078B2 (en) 2016-12-06 2024-04-09 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
CN112685431A (zh) * 2020-12-29 2021-04-20 京东数字科技控股股份有限公司 异步缓存方法、装置、系统、电子设备和存储介质
CN112685431B (zh) * 2020-12-29 2024-05-17 京东科技控股股份有限公司 异步缓存方法、装置、系统、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN110569269A (zh) 一种数据同步方法及系统
CN110209726B (zh) 分布式数据库集群系统、数据同步方法及存储介质
US10929428B1 (en) Adaptive database replication for database copies
US10831614B2 (en) Visualizing restoration operation granularity for a database
US10579610B2 (en) Replicated database startup for common database storage
US11068501B2 (en) Single phase transaction commits for distributed database transactions
US9946735B2 (en) Index structure navigation using page versions for read-only nodes
US9842031B1 (en) Incremental updates to user transaction state at read-only nodes of a distributed database
US10747746B2 (en) Efficient read replicas
Borthakur HDFS architecture guide
JP6181290B2 (ja) トランザクションの順序付け
JP2020527264A (ja) 異種ターゲットに対して使用するために分散型データソースからの変更データをキャプチャするためのシステムおよび方法
JP2019036353A (ja) 索引更新パイプライン
US20220188196A1 (en) Continuous data protection
Borthakur HDFS architecture
US20120136827A1 (en) Periodic data replication
US10067999B2 (en) High-performance database replication systems and methods
CN111078667B (zh) 一种数据迁移的方法以及相关装置
WO2023046042A1 (zh) 一种数据备份方法和数据库集群
Das et al. All aboard the Databus! Linkedin's scalable consistent change data capture platform
US20120084260A1 (en) Log-shipping data replication with early log record fetching
CN112131237A (zh) 数据同步方法、装置、设备及计算机可读介质
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
US11144407B1 (en) Synchronous database geo-mirroring using delayed visibility write operations
WO2019109256A1 (zh) 一种日志管理方法、服务器和数据库系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20191213

RJ01 Rejection of invention patent application after publication