CN103560906A - 数据复制的方法及装置 - Google Patents
数据复制的方法及装置 Download PDFInfo
- Publication number
- CN103560906A CN103560906A CN201310499683.5A CN201310499683A CN103560906A CN 103560906 A CN103560906 A CN 103560906A CN 201310499683 A CN201310499683 A CN 201310499683A CN 103560906 A CN103560906 A CN 103560906A
- Authority
- CN
- China
- Prior art keywords
- daily record
- relaying daily
- group
- local replica
- relaying
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种数据复制的方法及装置,属于数据处理领域。方法包括:从本地复制组的一至多台服务器中获取记录有更新数据的日志事件;将获取到的日志事件存放到本地复制组的中继日志中;更新本地复制组的中继日志的版本号,并获取其他复制组的中继日志及其他复制组的中继日志的版本号,其他复制组的中继日志中存放有从其他复制组的一至多台服务器中获取的记录有更新数据的日志事件;根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志,并根据选择的中继日志更新本地复制组的一至多台服务器的数据。本发明可节省日志事件的传输次数及网络流量,实现数据和服务的高可用性和高容错性。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种数据复制的方法及装置。
背景技术
随着互联网技术的不断发展,互联网业务的种类和数量也在不断地增长。为了对互联网业务进行有效地管理,实现互联网业务的服务器一般托管在运营商的IDC(Internet Data Center,互联网数据中心)机房中。然而,目前的IDC机房之间的网络连通性不太好,时常会出现大量丢包的问题。为了解决该问题,通过采用将一台服务器的数据复制到其他服务器的方式,从而在该服务器故障后可切换其他服务器继续工作。其中,用于复制数据的服务器称为从服务器,被复制数据的服务器称为主服务器。
现有技术在实现数据复制时,通常采用MySQL数据库的主主复制技术。主主复制是指参与数据复制的服务器既可以作为主服务器,也可以作为从服务器。在MySQL数据库的主主复制技术中,包含两台服务器,每台服务器既可以作为主服务器,又可以作为从服务器。无论哪台服务器作为主服务器,哪台服务器作为从服务器,从服务器将主服务器的数据复制到从服务器的过程均分为三步:第一步,主服务器将更新数据记录到主服务器的日志事件中。第二步,从服务器将主服务器的日志事件拷贝到从服务器的中继日志(Relay Log)中。第三步,从服务器重放从服务器的中继日志中的事件,根据其中的更新数据更新从服务器的数据,并将更新数据记录到从服务器生成的新的日志事件中,由此完成数据复制过程。
在实现本发明的过程中,发明人发现上述现有技术至少存在以下缺点:
现有技术所提供的MySQL数据库的主主复制技术中,当第一台服务器作为主服务器,第二台服务器作为从服务器时,第一台服务器产生的日志事件会被传输到第二台服务器,并由第二台服务器执行数据复制操作后,生成新的日志事件;当第二台服务器作为主服务器,第一台服务器作为从服务器时,第二台服务器生成的新的日志事件又会被传输到第一台服务器,由第一台服务器执行数据复制过程。然而,这两台服务器的日志事件中记录的是相同的更新数据,导致记录相同更新数据的日志事件被多次传输,造成了双倍的网络流量。另外,现有技术提供的MySQL的主主复制技术仅在两台服务器之间实现数据复制,在面对互联网海量数据业务的情况下显得无能为力。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据复制的方法及装置。所述技术方案如下:
一方面,提供了一种数据复制的方法,所述方法包括:
从本地复制组的一至多台服务器中获取记录有更新数据的日志事件;
将获取到的日志事件存放到所述本地复制组的中继日志中;
更新所述本地复制组的中继日志的版本号,并获取其他复制组的中继日志及所述其他复制组的中继日志的版本号,所述其他复制组的中继日志中存放有从所述其他复制组的一至多台服务器中获取的记录有更新数据的日志事件;
根据每个中继日志的版本号从所述本地复制组的中继日志及所述其他复制组的中继日志中选择中继日志,并根据选择的中继日志更新所述本地复制组的一至多台服务器的数据。
优选地,所述更新所述本地复制组的中继日志的版本号,包括:
根据所述本地复制组的中继日志的更新时间戳及所述本地复制组的中继日志所在节点的节点编号更新所述本地复制组的中继日志的版本号。
优选地,所述获取其他复制组的中继日志之后,还包括:
根据预设的第一过滤规则对获取到的其他复制组的中继日志进行过滤;
所述根据每个中继日志的版本号从所述本地复制组的中继日志及所述其他复制组的中继日志中选择中继日志,包括:
根据每个中继日志的版本号从所述本地复制组的中继日志及过滤后的其他复制组的中继日志中选择中继日志。
优选地,所述从本地复制组的一至多台服务器中获取记录有更新数据的日志事件之后,还包括:
记录从所述本地复制组的一至多台服务器中获取日志事件的状态信息,所述状态信息至少包括所述本地复制组的一至多台服务器的节点标识、日志文件名、日志文件偏移量和当前状态信息。
优选地,所述根据选择的中继日志更新所述本地复制组的一至多台服务器的数据,包括:
读取选择的中继日志中的日志事件;
对读取的日志事件进行回放,得到日志事件记录的更新数据;
将得到的更新数据写入所述本地复制组的一至多台服务器中。
优选地,所述将读取的日志事件所记录的更新数据写入所述本地复制组的一至多台服务器中之后,还包括:
记录将得到的更新数据写入所述本地复制组的一至多台服务器中的状态信息,所述状态信息至少包括具有所述更新数据的复制组标识、所述更新数据写入的服务器的节点标识、所述更新数据所在中继日志的文件名、日志事件偏移量和当前状态信息。
另一方面,还提供了一种数据复制的装置,所述装置包括:
第一获取模块,用于从本地复制组的一至多台服务器中获取记录有更新数据的日志事件;
存放模块,用于将获取到的日志事件存放到所述本地复制组的中继日志中;
第一更新模块,用于更新所述本地复制组的中继日志的版本号;
第二获取模块,用于获取其他复制组的中继日志及所述其他复制组的中继日志的版本号,所述其他复制组的中继日志中存放有从所述其他复制组的一至多台服务器中获取的记录有更新数据的日志事件;
选择模块,用于根据每个中继日志的版本号从所述本地复制组的中继日志及所述其他复制组的中继日志中选择中继日志;
第二更新模块,用于根据选择的中继日志更新所述本地复制组的一至多台服务器的数据。
优选地,所述第一更新模块,用于根据所述本地复制组的中继日志的更新时间戳及所述本地复制组的中继日志所在节点的节点编号更新所述本地复制组的中继日志的版本号。
优选地,所述装置,还包括:
过滤模块,用于根据预设的第一过滤规则对获取到的其他复制组的中继日志进行过滤;
所述选择模块,用于根据每个中继日志的版本号从所述本地复制组的中继日志及过滤后的其他复制组的中继日志中选择中继日志。
优选地,所述装置,还包括:
第一记录模块,用于记录从所述本地复制组的一至多台服务器中获取日志事件的状态信息,所述状态信息至少包括所述本地复制组的一至多台服务器的节点标识、日志文件名、日志文件偏移量和当前状态信息。
优选地,所述第二更新模块,用于读取选择的中继日志中的日志事件,对读取的日志事件进行回放,得到日志事件记录的更新数据;将得到的更新数据写入所述本地复制组的一至多台服务器中。
优选地,所述装置,还包括:
第二记录模块,用于记录将得到的更新数据写入所述本地复制组的一至多台服务器中的状态信息,所述状态信息至少包括具有所述更新数据的复制组标识、所述更新数据写入的服务器的节点标识、所述更新数据所在中继日志的文件名、日志事件偏移量和当前状态信息。
本发明实施例提供的技术方案带来的有益效果是:
由于每个复制组的中继日志中存放有从每个复制组的一至多台服务器中获取的记录有更新数据的日志事件,因而通过获取其他复制组的中继日志及其他复制组的中继日志的版本号,并根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志后,根据选择的中继日志更新本地复制组的一至多台服务器的数据,节省了日志事件的传输次数及网络流量。另外,由于本发明实施例提供的方法可实现多个服务器之间的数据复制,因而在任一服务器发生故障时,其他服务器能够继续提供服务,从而在面对互联网海量数据业务的情况下可以实现数据和服务的高可用性和高容错性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种数据复制的系统结构示意图;
图2是本发明实施例一提供的一种数据复制的方法流程图;
图3是本发明实施例二提供的一种数据复制的方法流程图;
图4是本发明实施例三提供的第一种数据复制的装置结构示意图;
图5是本发明实施例三提供的第二种数据复制的装置结构示意图;
图6是本发明实施例三提供的第三种数据复制的装置结构示意图;
图7是本发明实施例三提供的第四种数据复制的装置结构示意图;
图8是本发明实施例四提供的一种数据复制的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例以图1所示的方法实施环境示意图为例,提供了一种数据复制的方法。其中,图1所示的实施环境中包括三个复制组,每个复制组包括一个同步节点和一个服务器群,同步节点与服务器群相连,一个服务器群包括三台服务器,每台服务器均具有MySQL数据库。同步节点中的HA(HighAvailability,高可用性)监管器对外提供1和2两个接口,1和两个2接口分别可以提供telnet和http(Hyper Text Transfer Protocol,超文本传输协议)两种服务器给系统管理员使用,系统管理员通过这两个接口可以实施在线维护和管理监控功能,基本的在线维护功能包括但不限于:添加新的复制组、给一个复制组中填加新的服务器、调节同步日志的位置信息和调节复制组的同步日志位置等等,基本的管理监控功能包括但不限于获取当前的同步状态信息,如:查询复制组中当前的日志位置信息等。通过这种监控接口,系统管理员还可以定时获取相关信息,实现相应的预警功能。
此外,如图1所示的同步节点的结构中,元数据用于存储同步节点的配置数据和状态数据。其中,配置数据主要描述服务器群中的各台服务器之间的复制关系以及一致性模型等内容,状态数据用于描述数据的读位置和写位置。关于复制关系、一致性模型及读位置和写位置等内容将在后续对应的步骤中进行详细地描述,此处暂不赘述。具体实施时,该同步节点的配置数据和状态数据可通过两个文件来存储,例如,以Master.info和relay-log.info这两个文件来存储配置数据和状态数据。另外,为了使同步节点能够实现多对多的复制和更加复杂的过滤、一致性模型配置,该元数据可以采用一台单独的服务器来存储。优选地,为了避免采用一台单独的服务器来存储元数据时发生单点故障,还可以再采用另一台服务器复制元数据,以实现将元数据进行备份,本实施例不对存储元数据的方式进行限定。
需要说明的是,图1仅以三个复制组,每个复制组包括一个同步节点和一个服务器群,每个服务器群包括三台服务器为例,对实施环境进行的举例说明。具体实施时,还可以包括两个复制组或四个复制组,每个复制组可以包括两个同步节点和两个服务器群,每个服务器群包括四个或五个服务器等,本实施例不对实施环境中复制组的个数、每个复制组包括的同步节点和服务器群的个数、每个服务器群中包括的服务器的个数进行限定。
接下来,结合上述内容以及图1所示的实施环境对数据复制的方法进行详细的解释说明,详见如下实施例一至实施例二的内容:
实施例一
结合上述内容以及图1所示的实施环境示意图,为了在节省日志事件的传输次数及网络流量的条件下,实现在面对互联网海量数据业务的情况下的数据和服务的高可用性和高容错性,本实施例提供了一种数据复制的方法。参见图2,本实施例提供的方法流程具体如下:
201:从本地复制组的一至多台服务器中获取记录有更新数据的日志事件;
作为一种优选实施例,从本地复制组的一至多台服务器中获取记录有更新数据的日志事件之后,还包括:
记录从本地复制组的一至多台服务器中获取日志事件的状态信息,状态信息至少包括本地复制组的一至多台服务器的节点标识、日志文件名、日志文件偏移量和当前状态信息。
202:将获取到的日志事件存放到本地复制组的中继日志中;
203:更新本地复制组的中继日志的版本号,并获取其他复制组的中继日志及其他复制组的中继日志的版本号,其他复制组的中继日志中存放有从该其他复制组的一至多台服务器中获取的记录有更新数据的日志事件;
其中,更新本地复制组的中继日志的版本号,包括但不限于:
根据本地复制组的中继日志的更新时间戳及本地复制组的中继日志所在节点的节点编号更新本地复制组的中继日志的版本号。
204:根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志,并根据选择的中继日志更新本地复制组的一至多台服务器的数据。
作为一种优选实施例,获取其他复制组的中继日志之后,还包括:
根据预设的第一过滤规则对获取到的其他复制组的中继日志进行过滤;
根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志,包括:
根据每个中继日志的版本号从本地复制组的中继日志及过滤后的其他复制组的中继日志中选择中继日志。
作为一种优选实施例,根据选择的中继日志更新本地复制组的一至多台服务器的数据,包括但不限于:
读取选择的中继日志中的日志事件;
对读取的日志事件进行回放,得到日志事件记录的更新数据;
将得到的更新数据写入所述本地复制组的一至多台服务器中。
作为一种优选实施例,将读取的日志事件所记录的更新数据写入本地复制组的一至多台服务器中之后,还包括:
记录将得到的更新数据写入本地复制组的一至多台服务器中的状态信息,状态信息至少包括具有更新数据的复制组标识、更新数据写入的服务器的节点标识、更新数据所在中继日志的文件名、日志事件偏移量和当前状态信息。
本实施例提供的方法中,由于每个复制组的中继日志中存放有从每个复制组的一至多台服务器中获取的记录有更新数据的日志事件,因而通过获取其他复制组的中继日志及其他复制组的中继日志的版本号,并根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志后,根据选择的中继日志更新本地复制组的一至多台服务器的数据,节省了日志事件的传输次数及网络流量。另外,由于本发明实施例提供的方法可实现多个服务器之间的数据复制,因而在任一服务器发生故障时,其他服务器能够继续提供服务,从而在面对互联网海量数据业务的情况下实现数据和服务的高可用性和高容错性。
实施例二
本实施例提供了一种数据复制的方法,为了便于说明,本实施例结合上述实施例一的内容,以如图1所示的实施环境为例,对本实施例提供的方法进行详细地说明。参见图3,本实施例提供的方法流程具体如下:
301:从本地复制组的一至多台服务器中获取记录有更新数据的日志事件;
针对该步骤,本地复制组为本实施例提供的方法的执行主体所在的复制组。以图1所示的实施环境中的同步节点1执行数据复制的方法为例,本地复制组为同步节点1所在的复制组。每个复制组中的一至多台服务器之间存在复制关系,该复制关系可存储在同步节点的元数据中,且可以通过一对一的表达方式进行表示。例如,如果存在服务器A到服务器B的复制关系,则A->B的复制即表示服务器A作为主服务器,服务器B作为从服务器,数据从服务器A复制到服务器B;B->A的复制即表示服务器B作为主服务器,服务器A作为从服务器,数据从服务器B复制到服务器A。如果描述服务器A与服务器B之间的主主复制关系,则需要在元数据中增加两条复制关系,即A->B的复制和B->A的复制。优选地,为了简化复制关系,对于复制组内任意两台服务器之间均为主主复制关系的情况,本实施例定义了复制组中的服务器群概念,从而简化了多台服务器之间的关系描述。例如,复制组中的服务器群表示方式可以为{A,B,C},表示服务器A、B和C中任意两台服务器之间存在主主复制关系。
当然,除采用上述方式表示复制组内的各台服务器的复制关系外,还可以采用其他方式对复制组内的各台服务器的复制关系进行表示,本实施例对此不作具体限定。该步骤在具体实施时,可由同步节点的I/O线程池中的I/O线程从本地复制组的一至多台服务器获取记录有更新数据的日志事件。其中,I/O线程池中的每个线程可以连接到本地复制组中的一台服务器,从对应的服务器获取日志事件。为了保证信息安全,每台服务器上可以配置一个对应的包含用户名和密码的账户,以使每个I/O线程可以使用对应的用户名和密码来连接到对应的服务器。
进一步地,I/O线程通过对应的用户名和密码与服务器进行连接时,由于用户名和密码将会被保存在元数据中,为了安全起见,可以在每台服务器中创建一个有权限的用户账户专门用来做数据复制,从而使I/O线程在被授予权限后再访问该服务器。其中,本实施例不对创建该有权限的用户账户的方式进行限定。例如,可以创建一个能够在任何以duowan.com结尾的主机都能够访问的用户账户,创建用户账户的脚本如下所示:
GRANT REPLICATION SLAVE ON*.*
TO'repl''%.duowan.com'IDENTIFIED BY'repl-pass';
获取日志事件时,同步节点中的I/O线程连接到MySQL的主服务器后,通过在主服务器进行注册,让主服务器认为同步节点是一个从服务器,然后正式开始从主主服务接收相应的日志事件。
需要说明的是:按照MySQL的复制协议流程,不注册也能够从主服务器接收日志事件,但是如果不注册,将无法与主服务器维持长连接,这样在实时运行环境中,将不能实时地传递日志事件。因此,本实施例采取I/O线程注册的方式与服务器进行连接,该I/O线程的注册流程包括但不限于如下几步:
1)连接到主服务器;
本实施例中,由于复制组的服务器群中的每台服务器之间都是主主复制的关系,因而复制组的服务器群中的每台服务器都可以作为主服务器。
2)采用复制用户在主服务器上进行身份认证;
3)获取主服务器上的版本信息和时钟信息;
主服务器上的版本信息是主服务器MySQL的版本号,在MySQL里面,不同版本的日志格式可能不一样,所以这里得到版本号以后,就可以根据不同的MySQL版本来解析从它上面拉取的日志。获取时钟信息的原因是因为两台服务器上的时间可能是不一致的,这里得到主服务器的时间后,就可以根据主服务器的时间与同步节点的时间差对后续的日志中的时间进行微调。
4)向主服务器发送注册消息CMD_REGISTER_SLAVE。
该CMD_REGISTER_SLAVE的消息包格式及内容包括但不限于如下面表1所示:
表1
经过注册之后,I/O线程向主服务器发送请求数据的命令后,主服务器就根据命令中的要求从相应的日志事件文件的对应位置开始向I/O线程发送包含更新数据的日志事件。请求日志数据的消息包为COM_BINLOG_DUMP,对应的消息格式如下面表2所示:
表2
无论采用哪种方式从复制组的一至多台服务器获取记录有更新数据的日志事件,为了让用户随时了解相应的状态,在获取到日志事件之后,本实施例提供的方法还包括:
记录从本地复制组的一至多台服务器中获取日志事件的状态信息,状态信息至少包括本地复制组的一至多台服务器的节点标识、日志文件名、日志文件偏移量和当前状态信息。
其中,该获取日志事件的状态信息将在同步节点重启、异常或者网络故障重联等情况下,由I/O线程来确定需要获取的日志事件的起点。当前状态信息是对I/O线程的当前状态的简单描述,可以用作监控信息,让用户随时了解相应的状态,特别是在故障情况下,可以快速定位故障原因,以便快速解决问题。
302:将获取到的日志事件存放到本地复制组的中继日志中,并更新本地复制组的中继日志的版本号;
针对该步骤,同步节点的I/O线程每接收到一个日志事件,将相应的日志事件存储到对应的中继日志文件中,并在元数据中更新存放日志事件的位置信息。在首次存放日志事件时,需要创建新的中继日志文件,之后需要存放的日志事件直接添加到中继日志文件的尾部,当中继日志文件达到元数据中的配置大小时,需要再次创建新的中继日志文件。
为了保证中继日志文件遵循MySQL的binlog日志格式,以使MySQL的mysqlbinlog工具可以直接查看中继日志文件中的内容,在创建新的中继日志文件时,需要在中继日志文件中写入一些初始化数据,这些初始化数据中包括但不限于如下面表3所示的字段:
表3
此外,日志事件在切换到新中继日志文件之前,还需要在日志事件文件中写入ROTATE事件,标志着日志文件的切换。ROTATE是MYSQL的日志中的一种,这种日志标志着一个日志文件的结束,将要换到下一个新的日志文件。所以ROTATE事件一般都是写在一个日志文件的最后,碰到这个事件,就需要换下一个日志文件,例如读取:binlog_000001.log文件,读到最后ROTATE事件,这时候,就要读binlog_000002.log文件。
进一步地,为了提高写入到中继日志中的日志事件的针对性,本实施例提供的方法在将获取到的日志事件分别存放到对应的中继日志中之前,还包括根据预设的过滤规则对获取到的日志事件进行过滤的步骤。该预设的过滤规则定义了每个复制组的日志事件的过滤条件,满足过滤条件的日志事件才能被I/O线程写入中继日志。具体地,本实施例不对预设的过滤规则的具体内容进行限定,该预设的过滤规则主要配置从服务器需要的数据库和表信息,也可以配置从服务器不需要的数据库和表信息。通过该预设的过滤规则,I/O线程可以对获取到的日志事件进行过滤,并在将获取到的日志事件分别存放到对应的中继日志中时,将过滤后的日志事件分别存放到对应的中继日志中。
例如,服务器1、服务器2和服务器3之间构成主主复制关系,服务器1作为主服务器,其上具有包含表1、表2、表3和表4等更新数据的日志事件,且服务器2需要表1,服务器3需要表2和表3,由此可知,表4是服务器2和服务器3均不需要的表,因此,根据服务器2和服务器3的需求配置预设的过滤规则后,同步节点的I/O线程可以根据该预设的过滤规则将表4过滤掉,从而将表1、表2和表3作为经过预设的过滤规则过滤后的表格,之后再将表1、表2和表3写入复制组的中继日志中。
进一步地,为了实现不同复制组的多台服务器之间的数据同步,满足不同服务器对于同步的不同一致性需求,节省日志事件的传输次数及网络流量,本实施例采取了一致性模型。该一致性模型采用现有的数据库节点的一致性原理,使得所有的数据库变更根据版本号达到最终一致性,版本号最大的变更将成为最后的变更状态,即在进行后续的数据复制时,可以根据版本号最新的中继日志中的更新数据对其他服务器的数据进行更新。因此,需要为中继日志设置对应的版本号,关于版本号的设置方式,本实施例不做具体限定。为了在复制组的多台服务器上实现最终一致性,需要在表上增加如下面表4所示的三个字段:
表4
字段名类型 | 说明 |
VSLONG | 变更版本号 |
DELETEDchar | 删除标记 |
表4其实就是需要同步的数据,例如:要同步一个用户表,用户表带有uidLONG和name varchar(30)两个字段,这时需要添加两个字段,则用户表变成uid,name,vs,deleted四个字段。例如,有一张名称为T的表,这个表有k、v两个字段,系统会自动地添加vs和delete这两个字段,则这张表实际上就有k、v、vs、deleted这四个字段。
具体实施时,需要在多个复制组中建立相同的表,从而通过复制功能,保证这张表的数据在多个复制组之间都是一致的。此外,关系型数据库支持DML(数据操作)语句,DML语句包括三种语句Insert/Update/Delete,这三种语句会变更关系型数据库中表的数据内容。每当执行Insert/Update/Delete语句时,可通过同步节点的SQL重写模块进行相应的处理,将传统的数据变更的Insert/Update/Delete变更set语法,以保证操作后各个复制组之间的数据的一致性。为了便于理解,以对字段为:k→key,v→value,vs→version,d→delete的表进行DML语句中Insert/Update/Delete操作为例,相应的语法变更过程可如下面表5所示:
表5
需要说明的是:表5中的Delete仅修改了数据的删除标记,并没有最终删除数据,最终删除数据的流程将由同步节点定时触发,检测复制组内的各台服务器上的数据版本号和删除标记,如果版本号相同,并且都有删除标记,再根据key值删除对应的记录。
结合上述内容,本实施例提供的方法在从复制组的服务器上获取到包含更新数据的日志事件,并将其分别存放到对应的中继日志中之后,还包括更新每个中继日志的版本号的步骤。该步骤在具体实施时,更新每个中继日志的版本号的方式包括但不限于根据本地复制组的中继日志的更新时间戳及本地复制组的中继日志所在节点的节点编号更新本地复制组的中继日志的版本号。例如,中继日志1用于存放从本地复制组的服务器A上获取到的日志事件,中继日志1存放在同步节点1上,该同步节点1的节点编号为M,从服务器A上获取日志事件的时间是2013年01月01日09点10分,因此,存放该日志事件的中继日志的版本号可以更新为201301010910M。该种更新版本号的方式实现起来比较方便,而且即使存在多个复制组,每个复制组的同步节点之间产生的版本号不会发生冲突。
当然,除上述更新中继日志的版本号的方式之外,还可以采用其他更新方式,本实施例对此不作具体限定,能够区分不同复制组的中继日志,根据版本号可选择出最新版本的中继日志即可。
303:获取其他复制组的中继日志及其他复制组的中继日志的版本号,其他复制组的中继日志中存放有从该其他复制组的一至多台服务器中获取的记录有更新数据的日志事件;
针对该步骤,本实施例不对获取其他复制组的中继日志及其他复制组的中继日志的版本号的方式进行限定。仍以图1所示的实施环境为例,每个复制组的同步节点可通过其内部的数据同步线程与其他复制组的同步节点进行中继日志同步,以获取其他复制组的中继日志及其他复制组的中继日志的版本号。
其中,其他复制组的中继日志及其他复制组的中继日志的版本号可由其他复制组的同步节点获取,具体获取方式包括但不限于采用上述步骤301至步骤302中获取本地复制组的中继日志及本地复制组的中继日志的版本号的方式获取,此处不再赘述。无论采用哪种方式获取其他复制组的中继日志及其他复制组的中继日志的版本号,该其他复制组的中继日志中存放有从该其他复制组的一至多台服务器中获取的记录有更新数据的日志事件。
进一步地,为了提高数据更新的效率,本实施例提供的方法在获取其他复制组的中继日志之后,还包括:
根据预设的第一过滤规则对获取到的其他复制组的中继日志进行过滤。
其中,预设的第一过滤规则定义了每个复制组的中继日志的过滤条件,满足过滤条件的中继日志才被写入本地复制组的中继日志中。具体地,本实施例不对预设的第一过滤规则的具体内容进行限定,该预设的第一过滤规则主要配置本地复制组的各台服务器需要的数据库和表信息,也可以配置本地复制组的各台服务器不需要的数据库和表信息。
如图1所示的实施环境,该预设的第一过滤规则可由过滤器加载,当同步节点中的数据同步线程获取到其他复制组的中继日志后,该过滤器根据加载的预设的第一过滤规则对获取到的其他复制组的中继日志进行过滤,并将过滤后的其他复制组的中继日志及其他复制组的中继日志的版本号发送至本地复制组的同步节点的中继日志中。
304:根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志;
针对该步骤,由于所有的数据库变更根据版本号达到最终一致性,版本号最大的变更将成为最后的变更状态,即在进行后续的数据复制时,可以仅根据版本号最新的中继日志中的更新数据对其他复制组的服务器的数据进行更新,因此,可选择读取版本号最大的中继日志。
需要说明的是,如果上述步骤303在获取其他复制组的中继日志后,根据预设的第一过滤规则对获取到的其他复制组的中继日志进行了过滤,则该步骤在根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志时,包括但不限于根据每个中继日志的版本号从本地复制组的中继日志及过滤后的其他复制组的中继日志中选择中继日志。
305:读取选择的中继日志中的日志事件,对读取的日志事件进行回放,得到日志事件记录的更新数据;
针对该步骤,结合图1所示的系统架构,该步骤在具体实施时,可通过同步节点的SQL线程池中的SQL线程读取选择的中继日志中存放的日志事件。其中,由于日志事件中记录有更新数据,因此,在读取中继日志中存放的日志事件之后,可对读取的日志事件进行回放,以得到日志事件记录的更新数据。该步骤仍然可由同步节点的SQL线程池中的线程触发,具体实施时,SQL线程将调用SQL重写模块,修改SQL语句语意,增加一致性逻辑。SQL重写模块负责从中继日志中获取日志事件,并解析不同的事件类型,根据不同的事件类型执行不同的命令。SQL重写模块主要包括如下表6和表7所示的主要事件类型对应的命令:
表6
事件类型 | 处理模式 |
ROTATE_EVENT | 读取下一个日志文件 |
Stop_EVENT | 读取下一个日志文件 |
SLAVE_EVENT | 跳过 |
FORMAT_DESCRIPTION_EVENT | 跳过,可用来判断版本是否相符 |
INCIDENT_EVENT | 生成告警信息 |
HEATBEAT_LOG_EVENT | 跳过 |
表7
其中,表6为事务型事件对应的命令,表7为行模式事件对应的命令,本实施例同步功能包括但不限于采用基于行的复制来实现。
306:将得到的更新数据写入本地复制组的一至多台服务器中。
针对该步骤,同步节点可通过调用MySQL客户端将得到的更新数据写入本地复制组的一至多台服务器中。由于选择出的中继日志为版本号最大的中继日志,则其中存放的更新数据可以认为是多个复制组中所有服务器上最新的更新数据,因此,通过将该更新数据写入本地复制组的一至多台服务器中,可实现不同复制组内的各台服务器之间的数据同步。且为了获得该更新数据,无需从复制组内的服务器上多次获取日志事件,因而与现有的两台服务器之间的主主复制而言,可节省日志事件的传输次数,进而节省网络流量。
进一步地,为了满足本地复制组的各台服务器对数据更新的不同需求,本实施例提供的方法在将得到的更新数据写入本地复制组的一至多台服务器中之前,同样包括对更新数据进行过滤的步骤。本实施例不对具体的过滤规则进行限定,可以主要配置从服务器需要的更新数据,也可以配置从服务器不需要的更新数据。通过SQL线程可对得到的更新数据进行过滤,之后在将得到的更新数据写入本地复制组的一至多台服务器中时,调用MySQL客户端将过滤后的更新数据写入本地复制组的一至多台服务器中。
更进一步地,为了使用户随时了解相应的状态,本实施例提供的方法在将得到的更新数据写入本地复制组的一至多台服务器中之后,还包括:
记录将得到的更新数据写入本地复制组的一至多台服务器中的状态信息,该状态信息至少包括具有更新数据的复制组标识、更新数据写入的服务器的节点标识、更新数据所在中继日志的文件名、日志事件偏移量和当前状态信息。
其中,将得到的更新数据写入本地复制组的一至多台服务器中的状态信息将在同步节点重启、异常、或者网络故障重联等情况下,由SQL线程用来确定需要重放日志事件的起点;同时,当前状态信息是对SQL线程的当前状态的简单描述,可以用作监控信息,让用户随时了解相应的状态,特别是故障情况下,可以快速定位故障原因,以便快速解决问题。
需要说明的是,本实施例仅以通过一个同步节点管理一个复制组,实现不同复制组的各台服务器之间的数据复制为例,对本实施例提供的数据复制的方法进行了举例说明。实际应用中,一个同步节点还可以管理多个复制组,或者由多个同步节点服务多个复制组。无论一个同步节点管理的复制组的数量为一个还是多个,数据复制原理与本实施例提供的方法原理相同,此处不再赘述。
本实施例提供的方法,由于每个复制组的中继日志中存放有从每个复制组的一至多台服务器中获取的记录有更新数据的日志事件,因而通过获取其他复制组的中继日志及其他复制组的中继日志的版本号,并根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志后,根据选择的中继日志更新本地复制组的一至多台服务器的数据,节省了日志事件的传输次数,节省了网络流量。另外,由于本发明实施例提供的方法可实现多个服务器之间的数据复制,因而在任一服务器发生故障时,其他服务器能够继续提供服务,从而在面对互联网海量数据业务的情况下实现数据和服务的高可用性和高容错性。
实施例三
本实施例提供了一种数据复制的装置,该装置用于执行上述实施例一或施例二所提供的数据复制的方法,参见图4,该装置包括:
第一获取模块401,用于从本地复制组的一至多台服务器中获取记录有更新数据的日志事件;
存放模块402,用于将获取到的日志事件存放到本地复制组的中继日志中;
第一更新模块403,用于更新本地复制组的中继日志的版本号;
第二获取模块404,用于获取其他复制组的中继日志及其他复制组的中继日志的版本号,其他复制组的中继日志中存放有从其他复制组的一至多台服务器中获取的记录有更新数据的日志事件;
选择模块405,用于根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志;
第二更新模块406,用于根据选择的中继日志更新本地复制组的一至多台服务器的数据。
作为一种优选实施例,第一更新模块403,用于根据本地复制组的中继日志的更新时间戳及本地复制组的中继日志所在节点的节点编号更新本地复制组的中继日志的版本号。
作为一种优选实施例,参见图5,该装置,还包括:
过滤模块407,用于根据预设的第一过滤规则对获取到的其他复制组的中继日志进行过滤;
选择模块405,用于根据每个中继日志的版本号从本地复制组的中继日志及过滤后的其他复制组的中继日志中选择中继日志。
作为一种优选实施例,参见图6,该装置,还包括:
第一记录模块408,用于记录从本地复制组的一至多台服务器中获取日志事件的状态信息,状态信息至少包括本地复制组的一至多台服务器的节点标识、日志文件名、日志文件偏移量和当前状态信息。
作为一种优选实施例,第二更新模块406,用于读取选择的中继日志中的日志事件,对读取的日志事件进行回放,得到日志事件记录的更新数据;将得到的更新数据写入所述本地复制组的一至多台服务器中。
作为一种优选实施例,参见图7,该装置,还包括:
第二记录模块409,用于记录将得到的更新数据写入本地复制组的一至多台服务器中的状态信息,状态信息至少包括具有更新数据的复制组标识、更新数据写入的服务器的节点标识、更新数据所在中继日志的文件名、日志事件偏移量和当前状态信息。
本实施例提供的装置,由于每个复制组的中继日志中存放有从每个复制组的一至多台服务器中获取的记录有更新数据的日志事件,因而通过获取其他复制组的中继日志及其他复制组的中继日志的版本号,并根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志后,根据选择的中继日志更新本地复制组的一至多台服务器的数据,节省了日志事件的传输次数,节省了网络流量。另外,由于本发明实施例提供的装置可实现多个服务器之间的数据复制,因而在任一服务器发生故障时,其他服务器能够继续提供服务,从而在面对互联网海量数据业务的情况下实现数据和服务的高可用性和高容错性。
实施例四
本实施例提供了一种数据复制的系统,参见图8,该系统包括多个复制组801,每个复制组801包括至少一个同步节点8011和至少一个服务器8012;
其中,每个复制组801中的同步节点8011分别与本地复制组的每个服务器8012相连,且每个复制组801中的同步节点8011上安装有数据复制的装置,该数据复制的装置如上述实施例三所述的装置,此处不再赘述。
本实施例提供的系统,由于每个复制组的中继日志中存放有从每个复制组的一至多台服务器中获取的记录有更新数据的日志事件,因而通过获取其他复制组的中继日志及其他复制组的中继日志的版本号,并根据每个中继日志的版本号从本地复制组的中继日志及其他复制组的中继日志中选择中继日志后,根据选择的中继日志更新本地复制组的一至多台服务器的数据,节省了日志事件的传输次数,节省了网络流量。另外,由于本发明实施例提供的系统可实现多个服务器之间的数据复制,因而在任一服务器发生故障时,其他服务器能够继续提供服务,从而在面对互联网海量数据业务的情况下实现数据和服务的高可用性和高容错性。
需要说明的是:上述实施例提供的数据复制的装置在复制数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据复制的装置、系统与数据复制的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种数据复制的方法,其特征在于,所述方法包括:
从本地复制组的一至多台服务器中获取记录有更新数据的日志事件;
将获取到的日志事件存放到所述本地复制组的中继日志中;
更新所述本地复制组的中继日志的版本号,并获取其他复制组的中继日志及所述其他复制组的中继日志的版本号,所述其他复制组的中继日志中存放有从所述其他复制组的一至多台服务器中获取的记录有更新数据的日志事件;
根据每个中继日志的版本号从所述本地复制组的中继日志及所述其他复制组的中继日志中选择中继日志,并根据选择的中继日志更新所述本地复制组的一至多台服务器的数据。
2.根据权利要求1所述的方法,其特征在于,所述更新所述本地复制组的中继日志的版本号,包括:
根据所述本地复制组的中继日志的更新时间戳及所述本地复制组的中继日志所在节点的节点编号更新所述本地复制组的中继日志的版本号。
3.根据权利要求1所述的方法,其特征在于,所述获取其他复制组的中继日志之后,还包括:
根据预设的第一过滤规则对获取到的其他复制组的中继日志进行过滤;
所述根据每个中继日志的版本号从所述本地复制组的中继日志及所述其他复制组的中继日志中选择中继日志,包括:
根据每个中继日志的版本号从所述本地复制组的中继日志及过滤后的其他复制组的中继日志中选择中继日志。
4.根据权利要求1至3中任一权利要求所述的方法,其特征在于,所述从本地复制组的一至多台服务器中获取记录有更新数据的日志事件之后,还包括:
记录从所述本地复制组的一至多台服务器中获取日志事件的状态信息,所述状态信息至少包括所述本地复制组的一至多台服务器的节点标识、日志文件名、日志文件偏移量和当前状态信息。
5.根据权利要求1至3中任一权利要求所述的方法,其特征在于,所述根据选择的中继日志更新所述本地复制组的一至多台服务器的数据,包括:
读取选择的中继日志中的日志事件;
对读取的日志事件进行回放,得到日志事件记录的更新数据;
将得到的更新数据写入所述本地复制组的一至多台服务器中。
6.根据权利要求5所述的方法,其特征在于,所述将得到的更新数据写入所述本地复制组的一至多台服务器中之后,还包括:
记录将得到的更新数据写入所述本地复制组的一至多台服务器中的状态信息,所述状态信息至少包括具有所述更新数据的复制组标识、所述更新数据写入的服务器的节点标识、所述更新数据所在中继日志的文件名、日志事件偏移量和当前状态信息。
7.一种数据复制的装置,其特征在于,所述装置包括:
第一获取模块,用于从本地复制组的一至多台服务器中获取记录有更新数据的日志事件;
存放模块,用于将获取到的日志事件存放到所述本地复制组的中继日志中;
第一更新模块,用于更新所述本地复制组的中继日志的版本号;
第二获取模块,用于获取其他复制组的中继日志及所述其他复制组的中继日志的版本号,所述其他复制组的中继日志中存放有从所述其他复制组的一至多台服务器中获取的记录有更新数据的日志事件;
选择模块,用于根据每个中继日志的版本号从所述本地复制组的中继日志及所述其他复制组的中继日志中选择中继日志;
第二更新模块,用于根据选择的中继日志更新所述本地复制组的一至多台服务器的数据。
8.根据权利要求7所述的装置,其特征在于,所述第一更新模块,用于根据所述本地复制组的中继日志的更新时间戳及所述本地复制组的中继日志所在节点的节点编号更新所述本地复制组的中继日志的版本号。
9.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
过滤模块,用于根据预设的第一过滤规则对获取到的其他复制组的中继日志进行过滤;
所述选择模块,用于根据每个中继日志的版本号从所述本地复制组的中继日志及过滤后的其他复制组的中继日志中选择中继日志。
10.根据权利要求7至9中任一权利要求所述的装置,其特征在于,所述装置,还包括:
第一记录模块,用于记录从所述本地复制组的一至多台服务器中获取日志事件的状态信息,所述状态信息至少包括所述本地复制组的一至多台服务器的节点标识、日志文件名、日志文件偏移量和当前状态信息。
11.根据权利要求7至9中任一权利要求所述的装置,其特征在于,所述第二更新模块,用于读取选择的中继日志中的日志事件,对读取的日志事件进行回放,得到日志事件记录的更新数据;将得到的更新数据写入所述本地复制组的一至多台服务器中。
12.根据权利要求11所述的装置,其特征在于,所述装置,还包括:
第二记录模块,用于记录将得到的更新数据写入所述本地复制组的一至多台服务器中的状态信息,所述状态信息至少包括具有所述更新数据的复制组标识、所述更新数据写入的服务器的节点标识、所述更新数据所在中继日志的文件名、日志事件偏移量和当前状态信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310499683.5A CN103560906B (zh) | 2013-10-22 | 2013-10-22 | 数据复制的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310499683.5A CN103560906B (zh) | 2013-10-22 | 2013-10-22 | 数据复制的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103560906A true CN103560906A (zh) | 2014-02-05 |
CN103560906B CN103560906B (zh) | 2017-01-25 |
Family
ID=50015061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310499683.5A Active CN103560906B (zh) | 2013-10-22 | 2013-10-22 | 数据复制的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103560906B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506625A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种提升云数据库元数据节点可靠性的方法 |
CN104504123A (zh) * | 2014-12-31 | 2015-04-08 | 天津南大通用数据技术股份有限公司 | 一种基于日志拆分的目录复制实现方法 |
CN106605217A (zh) * | 2014-09-08 | 2017-04-26 | 微软技术许可有限责任公司 | 使用跨越故障转移集群中的数据存储库的同步复制的应用透明持续可用性 |
CN106802892A (zh) * | 2015-11-26 | 2017-06-06 | 阿里巴巴集团控股有限公司 | 用于主备数据一致性校验的方法和设备 |
CN107102934A (zh) * | 2016-02-22 | 2017-08-29 | 阿里巴巴集团控股有限公司 | 一种关系型数据库二进制日志重放的方法和设备 |
WO2017219857A1 (zh) * | 2016-06-20 | 2017-12-28 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
CN108243209A (zh) * | 2016-12-23 | 2018-07-03 | 深圳市优朋普乐传媒发展有限公司 | 一种数据同步方法及装置 |
CN108804463A (zh) * | 2017-05-03 | 2018-11-13 | 杭州海康威视数字技术股份有限公司 | 一种MySQL数据库的数据同步方法、装置及电子设备 |
CN109450664A (zh) * | 2018-10-09 | 2019-03-08 | 北京医拍智能科技有限公司 | 一种基于区块链p2p网络的数据协同处理方法及装置 |
CN110134737A (zh) * | 2019-05-20 | 2019-08-16 | 中国铁道科学研究院集团有限公司 | 数据变化监听方法及装置、电子设备和计算机可读存储介质 |
CN110489391A (zh) * | 2019-07-25 | 2019-11-22 | 深圳壹账通智能科技有限公司 | 一种数据处理方法及相关设备 |
WO2020010718A1 (zh) * | 2018-07-09 | 2020-01-16 | 平安科技(深圳)有限公司 | 基于sip协议的日志时间校正方法、装置及存储介质 |
CN111124268A (zh) * | 2018-10-31 | 2020-05-08 | 阿里巴巴集团控股有限公司 | 数据复制方法、装置、系统及电子设备 |
CN111382024A (zh) * | 2018-12-28 | 2020-07-07 | 中兴通讯股份有限公司 | 一种数据库主备复制延迟监控方法、装置和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1555530B (zh) * | 2001-07-16 | 2010-05-05 | Bea系统公司 | 通过网络复制数据的方法和系统 |
CN101064630B (zh) * | 2006-04-24 | 2011-09-21 | 华为技术有限公司 | 一种数据同步方法及系统 |
US8073922B2 (en) * | 2007-07-27 | 2011-12-06 | Twinstrata, Inc | System and method for remote asynchronous data replication |
CN102917072B (zh) * | 2012-10-31 | 2016-07-13 | 北京奇虎科技有限公司 | 用于数据服务器集群之间进行数据迁移的设备、系统及方法 |
-
2013
- 2013-10-22 CN CN201310499683.5A patent/CN103560906B/zh active Active
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106605217B (zh) * | 2014-09-08 | 2019-08-27 | 微软技术许可有限责任公司 | 用于将应用从一个站点移动到另一站点的方法和系统 |
US10592172B2 (en) | 2014-09-08 | 2020-03-17 | Microsoft Technology Licensing, Llc | Application transparent continuous availability using synchronous replication across data stores in a failover cluster |
CN106605217A (zh) * | 2014-09-08 | 2017-04-26 | 微软技术许可有限责任公司 | 使用跨越故障转移集群中的数据存储库的同步复制的应用透明持续可用性 |
CN104506625B (zh) * | 2014-12-22 | 2018-04-17 | 国云科技股份有限公司 | 一种提升云数据库元数据节点可靠性的方法 |
CN104506625A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种提升云数据库元数据节点可靠性的方法 |
CN104504123A (zh) * | 2014-12-31 | 2015-04-08 | 天津南大通用数据技术股份有限公司 | 一种基于日志拆分的目录复制实现方法 |
CN104504123B (zh) * | 2014-12-31 | 2018-10-16 | 天津南大通用数据技术股份有限公司 | 一种基于日志拆分的目录复制实现方法 |
CN106802892B (zh) * | 2015-11-26 | 2021-12-28 | 阿里巴巴集团控股有限公司 | 用于主备数据一致性校验的方法和设备 |
CN106802892A (zh) * | 2015-11-26 | 2017-06-06 | 阿里巴巴集团控股有限公司 | 用于主备数据一致性校验的方法和设备 |
CN107102934A (zh) * | 2016-02-22 | 2017-08-29 | 阿里巴巴集团控股有限公司 | 一种关系型数据库二进制日志重放的方法和设备 |
CN107102934B (zh) * | 2016-02-22 | 2020-12-04 | 阿里巴巴集团控股有限公司 | 一种关系型数据库二进制日志重放的方法和设备 |
WO2017219857A1 (zh) * | 2016-06-20 | 2017-12-28 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
US10798168B2 (en) | 2016-06-20 | 2020-10-06 | Alibaba Group Holding Limited | Storing data in distributed systems |
US10693965B2 (en) | 2016-06-20 | 2020-06-23 | Alibaba Group Holding Limited | Storing data in distributed systems |
CN108243209A (zh) * | 2016-12-23 | 2018-07-03 | 深圳市优朋普乐传媒发展有限公司 | 一种数据同步方法及装置 |
CN108804463A (zh) * | 2017-05-03 | 2018-11-13 | 杭州海康威视数字技术股份有限公司 | 一种MySQL数据库的数据同步方法、装置及电子设备 |
WO2020010718A1 (zh) * | 2018-07-09 | 2020-01-16 | 平安科技(深圳)有限公司 | 基于sip协议的日志时间校正方法、装置及存储介质 |
CN109450664A (zh) * | 2018-10-09 | 2019-03-08 | 北京医拍智能科技有限公司 | 一种基于区块链p2p网络的数据协同处理方法及装置 |
CN111124268A (zh) * | 2018-10-31 | 2020-05-08 | 阿里巴巴集团控股有限公司 | 数据复制方法、装置、系统及电子设备 |
CN111124268B (zh) * | 2018-10-31 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 数据复制方法、装置、系统及电子设备 |
CN111382024A (zh) * | 2018-12-28 | 2020-07-07 | 中兴通讯股份有限公司 | 一种数据库主备复制延迟监控方法、装置和系统 |
CN111382024B (zh) * | 2018-12-28 | 2023-07-14 | 金篆信科有限责任公司 | 一种数据库主备复制延迟监控方法、装置和系统 |
CN110134737A (zh) * | 2019-05-20 | 2019-08-16 | 中国铁道科学研究院集团有限公司 | 数据变化监听方法及装置、电子设备和计算机可读存储介质 |
CN110134737B (zh) * | 2019-05-20 | 2021-02-26 | 中国铁道科学研究院集团有限公司 | 数据变化监听方法及装置、电子设备和计算机可读存储介质 |
CN110489391A (zh) * | 2019-07-25 | 2019-11-22 | 深圳壹账通智能科技有限公司 | 一种数据处理方法及相关设备 |
CN110489391B (zh) * | 2019-07-25 | 2022-06-28 | 深圳壹账通智能科技有限公司 | 一种数据处理方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103560906B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103560906A (zh) | 数据复制的方法及装置 | |
US11899684B2 (en) | System and method for maintaining a master replica for reads and writes in a data store | |
US10929240B2 (en) | System and method for adjusting membership of a data replication group | |
US9984140B1 (en) | Lease based leader election system | |
TWI472934B (zh) | 用於交叉同步資料之方法、物品及裝置 | |
US20120221605A1 (en) | Linking framework for information technology management | |
CN101621405B (zh) | 分布式管理监控系统及其监控方法、创建方法 | |
US8719225B1 (en) | System and method for log conflict detection and resolution in a data store | |
US8930312B1 (en) | System and method for splitting a replicated data partition | |
US7865535B2 (en) | Apparatus, system, and method for a data server-managed web services runtime | |
US20150363124A1 (en) | System and method for data replication using a single master failover protocol | |
US20070255763A1 (en) | Database replication method and system | |
US20180349238A1 (en) | Multilevel disaster recovery | |
CN104486107A (zh) | 一种日志采集装置及方法 | |
CN105959390A (zh) | 微服务的统一管理系统及方法 | |
CN101252465A (zh) | 告警数据采集方法及其系统中的服务器和客户端 | |
WO2016082594A1 (zh) | 数据更新处理方法及装置 | |
KR20150083938A (ko) | Dds-db 연동 시스템 | |
CN108228755A (zh) | 基于日志解析技术的MySQL数据库到Hadoop平台的数据同步复制方法 | |
CN112181049B (zh) | 集群时间同步方法、装置、系统、设备及可读存储介质 | |
CN105022779A (zh) | 一种利用Filesystem API实现HDFS文件存取方法 | |
US20140173634A1 (en) | Method and integration component for integrating osgi environments into a service-oriented architecture | |
CN115826679A (zh) | 一种kubernetes集群中时钟源管理的方法、系统、设备及存储介质 | |
CN109756570A (zh) | 一种实现定制pypi镜像服务器的方法及电子设备 | |
US10706073B1 (en) | Partitioned batch processing for a usage analysis system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 519000 High-tech Zone, Zhuhai City, Guangdong Province, Unit 1, Fourth Floor C, Building A, Headquarters Base No. 1, Qianwan Third Road, Tangjiawan Town Patentee after: ZHUHAI DUOWAN INFORMATION TECHNOLOGY Ltd. Address before: 519080 Zone B, 1st Floor, Convention Center, No. 1, Software Park Road, Tangjiawan Town, Zhuhai, Guangdong Patentee before: ZHUHAI DUOWAN INFORMATION TECHNOLOGY Ltd. |