一种数据同步操作编号的方法及设备与流程

文档序号:29789950发布日期:2022-04-23 17:21阅读:114来源:国知局
一种数据同步操作编号的方法及设备与流程

1.本发明涉及数据库数据处理技术领域,特别是涉及一种数据同步操作编号的方法及设备。


背景技术:

2.目前基于数据库日志分析的异构数据库复制技术应用广泛。这种技术在源端捕获出数据库的增量数据,然后发送到目标端,在目标端通过通用的数据库访问接口,将增量数据应用到目标数据库,实现数据复制。这种技术因为使用到通用数据库接口,因此支持异构数据库系统复制,支持异构操作系统环境,并且目标端备机数据库系统可读写,是一种“双活”系统。
3.基于数据库日志分析的同步系统进行同步时一般以事务为单位进行同步,当分析到事务提交日志操作时,通过事务id定位到相应的事务,然后再把相应事务中的操作在目标端数据库入库处理,完成该事务的同步。
4.在事务同步时,事务在源端数据库上存在部分回滚操作,因此,在管理事务中的操作时一般需要按操作顺序进行从小到大的编号,然后,再根据操作编号的大小来完成部分回滚动作。另外,在需要对数据同步操作顺序一致性检查的同步环境中,对每个事务上的操作按顺序从小大进行编号,就可以很方便的实现事务操作顺序一致性的校验,同一个事务中相邻两个操作的编号相差为1,如果不是,则说明事务在传输过程中有丢失操作。而在同步系统运行时,往往需要动态的增加或减小需要同步的表,这种动作就有可能导致同步系统在故障重启以后和故障之前相同事务每个操作设置的编号不一致,最终影响了以靠编号来完成部分回滚操作的准确性或影响目标端数据同步服务校验事务操作顺序一致的准确性。
5.现有日志解析的数据同步系统中,在解析源端数据库日志时,一般采用的是按需解析,日志捕获模块在捕获到某个操作日志时,先提取该操作对应的表id,然后通过表id来获取表的定义,如果发现该表不需同步,便直接丢弃该日志操作,避免浪费cpu资源,不给丢弃的日志操作编号是因为它会影响事务操作编号的连续性,从而影响目标端数据同步服务进行事务操作顺序的校验;反之,则根据获取的表定义解析日志,然后按该操作出现在事务中的顺序进行编号。可以看到上述日志解析的数据同步系统中在解析日志时是按需解析的,然后根据实际解析到的操作进行顺序编号,当一个事务中出现多张表的操作时,而这些表有些需要同步,有些不需要同步,那么在不同的同步需求下就会出现相同的操作在同一个事务中编号不一致的问题。
6.鉴于此,如何克服现有技术所存在的缺陷,如何解决数据同步系统在日志解析时如何给事务的每个操作进行编号的技术问题,如何保证在故障重启的情况下相同事务的每个操作编号和故障之前的完全一致就成为业界亟待解决的重要技术难题。


技术实现要素:

7.针对现有技术的以上缺陷或改进需求,本发明提供一种数据同步操作编号的方法及设备,利用日志lsn和待同步的表进行绑定的方式,为每个待同步的表设定它的日志解析起始lsn和日志解析终止lsn,这样在数据同步过程中动态的添加或删除待同步表时,在故障重启以后都能按照该表的日志解析起始lsn和日志解析终止lsn进行解析,保证每个事务的操作无论经过多少次解析都能得到相同的操作编号,实现数据同步事务中每个操作编号的一致性。
8.本发明实施例采用如下技术方案:
9.第一方面,本发明提供了一种数据同步操作编号的方法,包括:
10.在源端建立待同步表队列,将需要同步的表加入待同步表队列,并设置表的日志解析起始lsn以及日志解析终止lsn;
11.源端收到待解析的操作后,通过判断操作所属的表是否属于待同步表队列以及操作的lsn是否处于日志解析起始lsn以及日志解析终止lsn之间来完成对操作的解析以及对操作的编号。
12.进一步的,所述在源端建立待同步表队列,将需要同步的表加入待同步表队列,并设置表的日志解析起始lsn以及日志解析终止lsn具体包括:
13.添加一个待同步的表时,按照添加时的当前日志的最大日志lsn设置该表的日志解析起始lsn以及日志解析终止lsn,并将表id添加到待同步表队列;
14.删除一个正在同步的表时,按照删除时的当前日志的最大日志lsn更新该表的日志解析终止lsn,并修改该表在待同步表队列中的日志解析区间。
15.进一步的,所述添加一个待同步的表时,按照添加时的当前日志的最大日志lsn设置该表的日志解析起始lsn以及日志解析终止lsn,并将表id添加到待同步表队列具体包括:
16.从数据库中获取待同步表的表id;
17.从数据库中获取当前日志的最大日志lsn,并将该最大日志lsn设为待同步表的日志解析起始lsn;
18.将待同步表的日志解析终止lsn设置为无穷大;
19.将该表id添加到待同步表队列。
20.进一步的,所述删除一个正在同步的表时,按照删除时的当前日志的最大日志lsn更新该表的日志解析终止lsn,并修改该表在待同步表队列中的日志解析区间具体包括:
21.从数据库中获取正在同步表的表id;
22.从数据库中获取当前日志的最大日志lsn,并将正在同步表的日志解析终止lsn更新为该最大日志lsn;
23.根据表id在待同步表队列中找到相应的表,并修改其日志解析区间。
24.进一步的,所述源端收到待解析的日志操作后,通过判断操作所属的表是否属于待同步表队列以及操作的lsn是否处于日志解析起始lsn以及日志解析终止lsn之间来完成对操作的解析以及对操作的编号具体包括:
25.源端收到待解析的日志操作后,提取待解析日志操作上的表id;
26.表id判断:判断该操作所属的表id是否存在于待同步表队列中,若存在则进行lsn
判断;
27.lsn判断:判断该操作的lsn是否处于所属表的起始lsn和终止lsn区间之内,若处于则解析该日志操作,获取该操作的事务id;
28.根据事务id对该事务的操作编号加一,并将加一以后的编号设置为当前操作的编号,将操作发送给目标端数据同步服务。
29.进一步的,在表id判断中,若判断出表id不存在于待同步表队列中,则直接丢弃该日志操作,不进行解析;在lsn判断中,若判断出操作的lsn不处于所属表的起始lsn和终止lsn区间之内,则直接丢弃该日志操作,不进行解析。
30.进一步的,当源端接收到提交或回滚日志时,获取其对应的事务id,根据事务id对该事务的操作编号加一,并将加一以后的编号设置为当前操作的编号,将提交或回滚操作发送给目标端数据同步服务,完成该事务的解析。
31.进一步的,还包括:
32.目标端数据同步服务在接收到事务的提交消息以后,对待同步的事务进行入库处理,并设置故障恢复起始lsn,所述故障恢复起始lsn是指在同步服务故障重启以后,源端重新开始分析的日志起点;
33.源端定时从目标端获取最新的故障恢复起始lsn,并根据该故障恢复起始lsn将待同步表队列中日志解析终止lsn小于该故障恢复起始lsn的表删除掉。
34.进一步的,还包括部署准备步骤:
35.在源端数据库上部置数据同步的日志捕获和日志解析服务,用于对日志操作进行捕获解析并将解析后的操作发送到目标端数据同步服务。
36.另一方面,本发明提供了一种数据同步操作编号的设备,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的数据同步操作编号的方法。
37.与现有技术相比,本发明的有益效果在于:首先,设置表id的日志解析起始lsn和日志解析终止lsn,可以让日志解析服务明确知道该表在日志流的哪个lsn以后才开始需要对该表的日志操作进行解析,并且在表不再需要同步时,并没有马上把该表从待同步表队列中删除,而是通过设置日志解析终止lsn的方式来停止该表的日志解析。这样可以保证故障重启以后,再次对解析的日志操作编号时可以得到和上次相同的编号顺序。
38.其次,源端数据同步服务定期通过故障恢复起始lsn清理待同步表队列,把那些日志解析终止lsn比故障恢复起始lsn小的表从待同步表队列中删除,解决了待同步表队列中存在无效同步表的问题。采用待同步表队列和给队列中每个表设置日志解析的起始和终止lsn相结合的方式可以有效的保障多次日志解析时每次解析操作编号的一致性和顺序递增性。
附图说明
39.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
40.图1为本发明实施例1提供的一种数据同步操作编号的方法流程图;
41.图2为本发明实施例1提供的步骤100具体流程图;
42.图3为本发明实施例1提供的步骤110具体流程图;
43.图4为本发明实施例1提供的步骤120具体流程图;
44.图5为本发明实施例1提供的步骤200具体流程图;
45.图6为本发明实施例4提供的一种数据同步操作编号的设备结构示意图。
具体实施方式
46.为了使本发明的目的、技术方案及优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,并且这里所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
47.本发明是一种特定功能系统的体系结构,因此在具体实施例中主要说明各结构模组的功能逻辑关系,并不对具体软件和硬件实施方式做限定。
48.下面就参考附图和实施例结合来详细说明本发明。
49.实施例1:
50.如图1所示,本发明实施例提供一种数据同步操作编号的方法,具体步骤如下。
51.步骤100:在源端建立待同步表队列,将需要同步的表加入待同步表队列,并设置表的日志解析起始lsn以及日志解析终止lsn。
52.步骤200:源端收到待解析的操作后,通过判断操作所属的表是否属于待同步表队列以及操作的lsn是否处于日志解析起始lsn以及日志解析终止lsn之间来完成对操作的解析以及对操作的编号。
53.通过上述步骤,可以建立待同步表队列以及设定表的日志解析起始lsn和日志解析终止lsn,只有当操作所属的表属于待同步表队列,且操作的lsn处于日志解析起始lsn与日志解析终止lsn的区间范围内的时候,才会对其进行解析并编号,这样的编号方式,在数据同步过程中动态的添加或删除待同步表时,在故障重启以后都能按照该表的日志解析起始lsn和日志解析终止lsn进行解析,保证每个事务的操作无论经过多少次解析都能得到相同的操作编号,实现数据同步事务中每个操作编号的一致性。
54.具体的,对于本优选实施例的上述方案,可以做如下扩展。
55.本优选实施例中,首先可以进行部署准备步骤:在源端数据库上部置数据同步的日志捕获和日志解析服务,用于对日志操作进行捕获解析并将解析后的操作发送到目标端数据同步服务。
56.进一步的,如图2所示,对于本优选实施例的步骤100(在源端建立待同步表队列,将需要同步的表加入待同步表队列,并设置表的日志解析起始lsn以及日志解析终止lsn),
可以扩展为如下两个步骤:
57.步骤110:添加一个待同步的表时,按照添加时的当前日志的最大日志lsn设置该表的日志解析起始lsn以及日志解析终止lsn,并将表id添加到待同步表队列。该步骤是在添加待同步的表时进行操作,主要用于确定该表的日志解析起始lsn。
58.步骤120:删除一个正在同步的表时,按照删除时的当前日志的最大日志lsn更新该表的日志解析终止lsn,并修改该表在待同步表队列中的日志解析区间。该步骤是在删除正在同步的表时进行操作,主要用于确定该表的日志解析终止lsn。
59.再进一步的,如图3所示,对于上述步骤110,也即在源端数据同步服务系统中添加一个待同步的表采用的操作可以扩展为:
60.步骤111:从数据库中获取待同步表的表id。
61.步骤112:从数据库中获取当前日志的最大日志lsn,并将该最大日志lsn设为待同步表的日志解析起始lsn。
62.步骤113:将待同步表的日志解析终止lsn设置为无穷大。
63.步骤114:将该表id添加到待同步表队列。
64.上述步骤完成以后,将日志解析终止lsn的初始值设置为无穷大,表示新增的表从日志解析起始lsn(也即完成该步骤时的当前日志的最大日志lsn)开始都是需要解析同步的。
65.如图4所示,对于上述步骤120,也即在源端数据同步服务系统中删除一个正在同步的表采用的操作可以扩展为:
66.步骤121:从数据库中获取正在同步表的表id。
67.步骤122:从数据库中获取当前日志的最大日志lsn,并将正在同步表的日志解析终止lsn更新为该最大日志lsn。
68.步骤123:根据表id在待同步表队列中找到相应的表,并修改其日志解析区间。日志解析区间也即为日志解析起始lsn到日志解析终止lsn的区间。
69.删除一个正在同步的表时,不能把该表id从待同步表队列中删除,因为一旦删除以后,源端数据同步重启以后,解析到该表的日志操作就直接丢弃了,但有可能该操作在上一次分析时还被分析,占用了操作的编号。
70.上述步骤完成以后,正在同步的表从它的日志解析起始lsn到日志解析终止lsn(也即完成该步骤时的数据库当前日志的最大日志lsn)这段区间的日志都是需要解析同步的,当前日志解析完成以后,后面该表的日志(也即是日志解析终止lsn之后的日志)便不再进行解析同步。
71.如图5所示,在本优选实施例中,步骤200(源端收到待解析的日志操作后,通过判断操作所属的表是否属于待同步表队列以及操作的lsn是否处于日志解析起始lsn以及日志解析终止lsn之间来完成对操作的解析以及对操作的编号)具体包括如下步骤:
72.步骤201:源端收到待解析的日志操作后,提取待解析日志操作上的表id。
73.步骤202:表id判断:判断该操作所属的表id是否存在于待同步表队列中,若存在则进行lsn判断。若判断出表id不存在于待同步表队列中,则直接丢弃该日志操作,不进行解析。
74.步骤203:lsn判断:判断该操作的lsn是否处于所属表的起始lsn和终止lsn区间之
内,若处于则解析该日志操作,获取该操作的事务id。若判断出操作的lsn不处于所属表的起始lsn和终止lsn区间之内,则直接丢弃该日志操作,不进行解析。
75.步骤204:根据事务id对该事务的操作编号加一,并将加一以后的编号设置为当前操作的编号,将操作发送给目标端数据同步服务。
76.源端收到待解析的日志操作时,可能会有多种操作的类型,其中,当源端日志解析模块接收到提交或回滚日志时,获取其对应的事务id,根据事务id对该事务的操作编号加一,并将加一以后的编号设置为当前操作的编号,将提交或回滚操作发送给目标端数据同步服务,完成该事务的解析。
77.基于上述对日志操作的解析和操作编号过程,本优选实施例还包括如下两个步骤:
78.步骤300:目标端数据同步服务在接收到事务的提交消息以后,对待同步的事务进行入库处理,并设置故障恢复起始lsn。所述故障恢复起始lsn是指在同步服务故障重启以后,源端重新开始分析的日志起点。该故障恢复起始lsn是随着数据同步事务入库的进度不断向前推进的,数据同步事务入库的进度在哪,故障恢复起始lsn就更新到哪。
79.步骤400:源端定时从目标端获取最新的故障恢复起始lsn,并根据该故障恢复起始lsn将待同步表队列中日志解析终止lsn小于该故障恢复起始lsn的表删除掉。
80.源端数据同步服务定期的通过故障恢复起始lsn清理掉待同步表队列中不再需要解析同步的表,因为故障重启以后,日志的lsn都会比这些表的日志解析终止lsn要大,把这些表从待同步表队列清理掉有助于缩小待同步表队列的规模,释放它们占据的内存资源。
81.综上所述,本优选实施例在数据同步日志解析时先通过待同步表队列来决定是否要解析日志,然后再通过表的日志解析lsn区间来判断是否需要解析。这些信息在表被添加到同步队列或被删除同步时就确定了下来,后面不管日志解析服务重启多少次都不会影响到事务中操作编号的顺序,从而保证了每个事务操作编号都有顺序递增的特性。另一方面,本优选实施例的源端数据同步服务定期通过故障恢复起始lsn清理待同步表队列,把那些日志解析终止lsn比故障恢复起始lsn小的表从待同步表队列中删除,解决了待同步表队列中存在无效同步表的问题。采用待同步表队列和给队列中每个表设置日志解析的起始和终止lsn相结合的方式可以有效的保障多次日志解析时每次解析操作编号的一致性和顺序递增性。
82.实施例2:
83.基于实施例1提供的数据同步操作编号的方法,本实施例2通过一个具体的应用例子来对本发明进行更详细的说明。
84.例如,源端数据库事务trx1操作t1和t2两个表的日志流和待同步表的添加操作如下:
85.lsn操作添加同步表1insert into t1 values(10)添加t1表同步2insert into t2 values(20) 3insert into t2 values(21)添加t2表同步4commit 86.上述操作完成以后,按照添加同步表的规则,添加表同步时,该表的日志解析lsn
区间为当前数据库的日志lsn到无穷大,那么就得到t1表和t2表的日志解析lsn区间如下:
87.表解析起始lsn解析终止lsnt11无穷大t23无穷大
88.开始日志解析:
89.取得日志lsn为1的日志,表t1存在于待同步队列,并且日志lsn 1处于t1的解析lsn区间范围之内,所以要解析该日志,并根据事务id给该操作设置编号为1。
90.取得日志lsn为2的日志,表t2存在于待同步队列,但是日志lsn 2小于t2的解析起始lsn,所以该操作丢弃,不解析。
91.取得日志lsn为3的日志,表t2存在于待同步队列,并且日志lsn 3处于t1的解析lsn区间范围之内,所以要解析该日志,并根据事务id给该操作设置编号为2。
92.取得提交日志,并根据事务id给该操作设置编号为3。
93.该事务解析完成后操作编号如下:
94.lsn操作编号操作11insert into t1 values(10)32insert into t2 values(21)43commit
95.如果此时日志解析服务故障重启,按照本发明的规则将得到和前一次一模一样的操作编号。
96.但如果省去了表解析起始lsn和终止lsn的判断,仅凭判断表是否在待同步表队列,那么就会得到不一样的解析结果,过程如下:
97.开始日志解析:
98.取得日志lsn为1的日志,表t1存在于待同步队列,所以要解析该日志,并根据事务id给该操作设置编号为1。
99.取得日志lsn为2的日志,表t2存在于待同步队列,所以要解析该日志,并根据事务id给该操作设置编号为2。
100.取得日志lsn为3的日志,表t2存在于待同步队列,所以要解析该日志,并根据事务id给该操作设置编号为3。
101.取得提交日志,并根据事务id给该操作设置编号为4。
102.该事务解析完成后操作编号如下:
103.lsn操作编号操作11insert into t1 values(10)22insert into t2 values(20)33insert into t2 values(21)44commit
104.对比上一个解析结果,可以发现仅按照待同步表列队来判断操作是否需要解析得到的操作编号就和上一次的不一样,第二次的解析结果多了一个日志lsn为2针对t2表的插入操作,导致该事务后续的操作编号都发生了变化,造成和前一次的解析结果不一致。
105.综上所述,本实施例设置表id的日志解析起始lsn和日志解析终止lsn,可以让日志解析服务明确知道该表在日志流的哪个lsn以后才开始需要对该表的日志操作进行解析,并且在表不再需要同步时,并没有马上把该表从待同步表队列中删除,而是通过设置日志解析终止lsn的方式来停止该表的日志解析。这样可以保证故障重启以后,再次对解析的日志操作编号时可以得到和上次相同的编号顺序。相较于传统技术手段仅仅按照待同步表列队来判断操作是否需要解析的方式,本实施例不仅在数据同步日志解析时先通过待同步表队列来决定是否要解析日志,然后还通过表的日志解析lsn区间来判断是否需要解析,这些信息在表被添加到同步队列或被删除同步时就确定了下来,后面不管日志解析服务重启多少次都不会影响到事务中操作编号的顺序,从而保证了每个事务操作编号都有顺序递增的特性。
106.实施例3:
107.基于实施例1提供的数据同步操作编号的方法,本实施例3通过一个具体的应用例子来对本发明涉及解析终止lsn的作用进行更详细的说明。
108.例如,源端数据库事务trx1、trx2两个事务串行操作t1和t2两个表的日志流和待同步表的添加操作如下:
109.lsn操作添加同步表1insert into t1 values(10)添加t1表同步2insert into t2 values(20) 3insert into t2 values(21)添加t2表同步4commit 5insert into t1 values(11) 6insert into t1 values(12)删除t1表同步7insert into t2 values(22) 8commit 110.上述操作完成以后,按照添加同步表的规则,添加表同步时,该表的日志解析lsn区间为当前数据库的日志lsn到无穷大,然后在lsn为6时删除了t1表的同步,t1表的解析终止lsn就为6,那么就得到t1表和t2表的日志解析lsn区间如下:
111.表解析起始lsn解析终止lsnt116t23无穷大
112.开始日志解析第一个事务(trx1):
113.取得日志lsn为1的日志,表t1存在于待同步队列,并且日志lsn 1处于t1的解析lsn区间范围之内,所以要解析该日志,并根据事务id给该操作设置编号为1。
114.取得日志lsn为2的日志,表t2存在于待同步队列,但是日志lsn 2小于t2的解析起始lsn,所以该操作丢弃,不解析。
115.取得日志lsn为3的日志,表t2存在于待同步队列,并且日志lsn 3处于t1的解析lsn区间范围之内,所以要解析该日志,并根据事务id给该操作设置编号为2。
116.取得提交日志,并根据事务id给该操作设置编号为3。
117.该事务解析完成后trx1操作编号如下:
118.lsn操作编号操作11insert into t1 values(10)32insert into t2 values(21)43commit
119.接着解析第二个(trx2)事务:
120.取得日志lsn为5的日志,表t1存在于待同步队列,并且日志lsn 5处于t1的解析lsn区间范围之内,所以要解析该日志,并根据事务id给该操作设置编号为1。
121.取得日志lsn为6的日志,表t1存在于待同步队列,并且日志lsn 6处于t1的解析lsn区间范围之内,所以要解析该日志,并根据事务id给该操作设置编号为2。
122.取得日志lsn为7的日志,表t2存在于待同步队列,并且日志lsn 7处于t2的解析lsn区间范围之内,所以要解析该日志,并根据事务id给该操作设置编号为3。
123.取得提交日志,并根据事务id给该操作设置编号为4。
124.该事务解析完成后trx2操作编号如下:
[0125][0126][0127]
假如此时源端从目标端获取故障恢复起始lsn为5,采用该lsn去清理被删除的同步表时,由于t1的解析终止lsn为6,大于该故障恢复起始lsn,所以该表的同步不能被清理。
[0128]
如果此时日志解析服务故障重启,源端将从lsn为5的日志重新解析,按照本发明的规则将得到和前一次一模一样的操作编号。
[0129]
但如果源端在清理被删除的同步表时省去了对表解析终止lsn的判断,那么在第二个事务解析完成以后,t1表的同步需求将被清理,那么当故障重启恢复时就会得到不一样的解析结果,过程如下:
[0130]
开始日志解析:
[0131]
取得日志lsn为5的日志,表t1已经不存在于待同步队列,该日志将被丢弃。
[0132]
取得日志lsn为6的日志,表t1已经不存在于待同步队列,该日志将被丢弃。
[0133]
取得日志lsn为7的日志,表t2存在于待同步队列,并且日志lsn 7处于t2的解析lsn区间范围之内,所以要解析该日志,并根据事务id给该操作设置编号为1。
[0134]
取得提交日志,并根据事务id给该操作设置编号为2。
[0135]
该事务解析完成后trx2操作编号如下:
[0136]
lsn操作编号操作71insert into t2 values(22)82commit
[0137]
对比上一个解析结果,可以发现在清理同步表时,如果不按照解析终止lsn去判
断,那么就会导致故障重启以后,再次解析日志时trx2操作的编号和故障前出现不一致的情况。
[0138]
综上所述,本实施例设置表id的日志解析起始lsn和日志解析终止lsn,可以让日志解析服务明确知道该表在日志流的哪个lsn以后才开始需要对该表的日志操作进行解析,并且在表不再需要同步时,并没有马上把该表从待同步表队列中删除,而是通过设置日志解析终止lsn的方式来停止该表的日志解析。这样可以保证故障重启以后,再次对解析的日志操作编号时可以得到和上次相同的编号顺序。
[0139]
实施例4:
[0140]
在上述实施例1至实施例3提供的数据同步操作编号的方法的基础上,本发明还提供了一种可用于实现上述方法的数据同步操作编号的设备,如图6所示,是本发明实施例的设备架构示意图。本实施例的数据同步操作编号的设备包括一个或多个处理器21以及存储器22。其中,图6中以一个处理器21为例。
[0141]
处理器21和存储器22可以通过总线或者其他方式连接,图6中以通过总线连接为例。
[0142]
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1至实施例3中的数据同步操作编号的方法。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行数据同步操作编号的设备的各种功能应用以及数据处理,即实现实施例1至实施例3的数据同步操作编号的方法。
[0143]
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0144]
程序指令/模块存储在存储器22中,当被一个或者多个处理器21执行时,执行上述实施例1至实施例3中的数据同步操作编号的方法,例如,执行以上描述的图1至图5所示的各个步骤。
[0145]
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(readonlymemory,简写为:rom)、随机存取存储器(randomaccessmemory,简写为:ram)、磁盘或光盘等。
[0146]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1