CN109522364B - 一种异地数据双向同步方法及系统 - Google Patents

一种异地数据双向同步方法及系统 Download PDF

Info

Publication number
CN109522364B
CN109522364B CN201811216571.3A CN201811216571A CN109522364B CN 109522364 B CN109522364 B CN 109522364B CN 201811216571 A CN201811216571 A CN 201811216571A CN 109522364 B CN109522364 B CN 109522364B
Authority
CN
China
Prior art keywords
data
synchronization
synchronous
server
record
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
CN201811216571.3A
Other languages
English (en)
Other versions
CN109522364A (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.)
Hengfeng Information Technology Co Ltd
Original Assignee
Hengfeng 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 Hengfeng Information Technology Co Ltd filed Critical Hengfeng Information Technology Co Ltd
Priority to CN201811216571.3A priority Critical patent/CN109522364B/zh
Publication of CN109522364A publication Critical patent/CN109522364A/zh
Application granted granted Critical
Publication of CN109522364B publication Critical patent/CN109522364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种异地数据双向同步方法及系统,所述方法由第一服务器执行,包括以下步骤:从第一数据库获取发生数据变更的数据作为第一同步数据,同时将第一同步数据的创建时间记录到本地的第一同步数据记录中;将第一同步数据发送至第二服务器的同步队列中,以使得第二服务器对第一同步数据进行同步处理;通过本地的同步队列接收第二服务器发送过来的第二同步数据;所述第二同步数据中记载有第二同步数据的创建时间;结合第一同步数据记录,将第二同步数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中。本发明可以在异地双向数据同步过程中,保证数据的一致性和完整性,可广泛应用于软件技术行业中。

Description

一种异地数据双向同步方法及系统
技术领域
本发明涉及互联网技术领域,特别是涉及一种异地数据双向同步方法及系统。
背景技术
随着互联网的快速发展,云平台混合部署模式不断被普及,很多教育行业的信息化平台都提供了云端服务器+学校服务器、云端服务器+班级服务器等混合部署模式,其中云端服务器和学校服务器、云端服务器和班级服务器这种结构中,学校或者班级的本地服务器与云端服务器之间存在着大量的双向数据同步需求,但由于本地和云端基本都是异地的,涉及跨网问题,导致同步存在延时的情况,严重时还存在网络中断,导致双向数据同步过程出现数据不一致和不完整的情况。
目前在数据的双向同步过程中,普遍采用Paxos协议算法来保证数据同步的一致性和完整性,Paxos算法是莱斯利·兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的一致性算法。该算法在延迟比较少的情况下,例如≤20毫秒的情况下,一般不会有什么问题,但如果网络延迟比较高,那么该算法由于交互可能存在两次往返,直接导致事务的延迟时间翻倍的情况,会严重影响到数据同步的时效性,在延时要求很低的业务场景下,该算法无法解决异地之间传递数据所存在的数据不一致和不完整的问题。
发明内容
为了解决上述的技术问题,本发明的目的是提供一种可以保证数据一致性的异地数据双向同步方法及系统。
一方面,本发明实施例提供了一种异地数据双向同步方法,所述方法由第一服务器执行,包括以下步骤:
S101、从第一数据库获取发生数据变更的数据作为第一同步数据,同时将第一同步数据的创建时间记录到本地的第一同步数据记录中;
S102、将第一同步数据发送至第二服务器的同步队列中,以使得第二服务器对第一同步数据进行同步处理;
S103、通过本地的同步队列接收第二服务器发送过来的第二同步数据;所述第二同步数据中记载有第二同步数据的创建时间;
S104、结合第一同步数据记录,将第二同步数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一同步数据记录中记载有数据的创建时间和同步完成时间。
进一步,所述步骤S104,其具体为:
结合第一同步数据记录,筛选出第二同步数据中,创建时间不处于第一区间范围内的数据,并将筛选获得的数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一区间范围指第一同步数据记录中的创建时间和同步完成时间所形成的区间范围。
进一步,所述步骤S104中,所述将筛选获得的数据更新到第一数据库中这一步骤,具体包括:
将筛选获得的数据更新到第一数据库中,并在更新完成后,判断更新过程所花费的同步时间是否超过预设的同步处理时间阈值;
当判断同步时间超过预设的同步处理时间阈值时,执行数据主键反查步骤。
进一步,所述数据主键反查步骤具体包括:
获取第一数据库的第一变更记录信息并发送至第二服务器的同步队列中;所述第一变更记录信息包括数据表名称、主键名和主键值;
接收第二服务器的同步队列返回的与第一变更记录信息对应的第一查询结果;所述第一查询结果包括有与第一变更记录信息中的记录信息相对应的记录信息的所有字段数据信息;
本地同步队列在判断第一查询结果中的记录信息与第一数据库中对应的记录信息不一致时,以第一查询结果中的记录信息更新第一数据库中的对应记录信息。
另一方面,本发明实施例提供了一种异地数据双向同步方法,所述方法由第二服务器执行,包括以下步骤:
S201、通过本地同步队列接收第一服务器发送的第一同步数据;所述第一同步数据中记载有第一同步数据的创建时间;
S202、结合第二同步数据记录,将第一同步数据更新到第二数据库中,同时将所更新数据的同步完成时间添加记录到第二同步数据记录中;
其中,所述第二同步数据记录中记载有数据的创建时间和同步完成时间;
S203、从第二数据库中获取发生数据变更的数据作为第二同步数据,同时将第二同步数据的创建时间记录到本地的第二同步数据记录中;
S204、将第二同步数据发送至第一服务器的同步队列中,以使得第一服务器对第二同步数据进行同步处理。
进一步,所述步骤S202,其具体为:
结合第二同步数据记录,筛选出第一同步数据中,创建时间不处于第二区间范围内的数据,并将筛选获得的数据更新到第二数据库中,同时将所更新数据的同步完成时间记录到第二同步数据记录中;其中,所述第二区间范围指第二同步数据记录中的创建时间和同步完成时间所形成的区间范围。
进一步,所述步骤S202中,所述将筛选获得的数据更新到第二数据库中这一步骤,具体包括:
将筛选获得的数据更新到第二数据库中,并在更新完成后,判断更新过程所花费的同步时间是否超过预设的同步处理时间阈值;
当判断同步时间超过预设的同步处理时间阈值时,执行数据主键反查步骤。
进一步,所述数据主键反查步骤具体包括:
获取第二数据库的第二变更记录信息并发送至第一服务器的同步队列中;所述第二变更记录信息包括数据表名称、主键名和主键值;
接收第一服务器的同步队列返回的与第二变更记录信息对应的第二查询结果;所述第二查询结果包括有与第二变更记录信息中的记录信息相对应的记录信息的所有字段数据信息;
本地同步队列在判断第二查询结果中的记录信息与第二数据库中对应的记录信息不一致时,以第二查询结果中的记录信息更新第二数据库中的对应记录信息。
另一方面,本发明实施例还提供了一种异地数据双向同步方法,包括以下步骤:
S1、第一服务器从第一数据库获取发生数据变更的数据作为第一同步数据,同时将第一同步数据的创建时间记录到本地的第一同步数据记录中;
S2、第一服务器将第一同步数据发送至第二服务器的同步队列中;
S3、第二服务器通过本地同步队列接收第一服务器发送的第一同步数据;
S4、第二服务器结合第二同步数据记录,将第一同步数据更新到第二数据库中,同时将所更新数据的同步完成时间添加记录到第二同步数据记录中;
S5、第二服务器从第二数据库中获取发生数据变更的数据作为第二同步数据,同时将第二同步数据的创建时间记录到本地的第二同步数据记录中;
S6、第二服务器将第二同步数据发送至第一服务器的同步队列中;
S7、第一服务器通过本地的同步队列接收第二服务器发送过来的第二同步数据;
S8、第一服务器结合第一同步数据记录,将第二同步数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一同步数据记录和第二同步数据记录中均记载有数据的创建时间和同步完成时间。
另一方面,本发明实施例还提供了一种异地数据双向同步系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如本发明实施例所述的一种异地数据双向同步方法。
本发明实施例通过在获取同步数据的同时,记录同步数据的创建时间,并在同步数据在数据库中同步完成后,记录同步数据的同步完成时间,从而在进行同步数据的更新同步过程中,可以筛选出历史同步操作中,已经更新同步到数据库的数据,只对筛选剩下的数据进行更新,而对这部分筛选出的数据不进行更新,避免多次重复更新带来的数据不一致的情况,可以保证数据的一致性和完整性。
附图说明
下面结合附图和实施例对本发明作进一步说明。
图1是本发明具体实施例的一种异地数据双向同步方法实施例一的流程图;
图2是本发明具体实施例的一种异地数据双向同步方法实施例二的流程图图;
图3是本发明具体实施例的一种异地数据双向同步方法实施例三的流程图;
图4是本发明具体实施例的一种异地数据双向同步系统的电子框图。
具体实施方式
对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
方法实施例一
参照图1,本实施例提供了一种异地数据双向同步方法,用于实现第一服务器与第二服务器之间的异地数据双向同步,第一服务器连接有第一数据库,第二服务器连接有第二数据库,本实施例中所述方法由第一服务器执行,包括以下步骤:
S101、从第一数据库获取发生数据变更的数据作为第一同步数据,同时将第一同步数据的创建时间记录到本地的第一同步数据记录中;
S102、将第一同步数据发送至第二服务器的同步队列中,以使得第二服务器对第一同步数据进行同步处理;
S103、通过本地的同步队列接收第二服务器发送过来的第二同步数据;所述第二同步数据中记载有第二同步数据的创建时间;
S104、结合第一同步数据记录,将第二同步数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一同步数据记录中记载有数据的创建时间和同步完成时间。
本申请中所称的第一服务器、第二服务器在实际应用中,也可以称作主服务器、从服务器。
在传统的异地数据双向同步过程中,如果第一服务器的第一数据库有一条数据记录Record1发生了两次变化,并且两次很快同步第二服务器的第二数据库对应的同步队列中,但因为第二服务器的第二数据库对应的同步队列数据量大,处理出现延迟,就很有可能把Record1的第一次变化结果同步回了第一数据库中,导致第一数据库中Record1记录被第一次修改内容覆盖掉了,在第二次修改还未同步过来的这段时间内,第一数据库出现脏数据的情况,导致数据出现不一致和不完整的情况。
步骤S104中,结合第一同步数据记录实现将第二同步数据更新到第一数据库中,目的在于筛选出之前未同步更新到第一数据库的数据来进行更新,避免对统一数据多次更新到第一数据库中,避免死循环的发生,还可以保证数据的一致性和完整性。
本方法通过在获取同步数据的同时,记录同步数据的创建时间,并在同步数据在数据库中同步完成后,记录同步数据的同步完成时间,从而在进行同步数据的更新同步过程中,可以筛选出历史同步操作中,已经更新同步到数据库的数据,只对筛选剩下的数据进行更新,而对这部分筛选出的数据不进行更新,避免多次重复更新带来的数据不一致的情况,可以保证数据的一致性和完整性。
进一步作为优选的实施方式,所述步骤S104,其具体为:
结合第一同步数据记录,筛选出第二同步数据中,创建时间不处于第一区间范围内的数据,并将筛选获得的数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一区间范围指第一同步数据记录中的创建时间和同步完成时间所形成的区间范围。
第二同步数据中,创建时间处于第一区间范围内的数据表示已经在第一数据库中更新同步的数据,不需要再进行更新同步,因此,通过结合第一同步数据记录中的创建时间和同步完成时间对第二同步数据进行筛选,从而对第二同步数据中的数据进行区别处理,一方面可以提高同步效率,另一方面避免了对统一数据的多次重复同步所带来的死循环以及数据不一致的情况,可以保证异地双向数据同步过程中,数据的一致性和完整性。
进一步作为优选的实施方式,所述步骤S104中,所述将筛选获得的数据更新到第一数据库中这一步骤,具体包括:
将筛选获得的数据更新到第一数据库中,并在更新完成后,判断更新过程所花费的同步时间是否超过预设的同步处理时间阈值;
当判断同步时间超过预设的同步处理时间阈值时,执行数据主键反查步骤。
同步时间是指同步数据记录中数据从创建时间到同步完成时间之间耗费的总时长,例如创建时间是2018年10月12日8时3分,同步完成时间是2018年10月12日8时11分,则同步时间为8分钟。这里的同步处理时间阈值可以根据实际应用环境来进行设置,例如将同步处理时间阈值设置为30秒、40秒或者60秒等。
当同步时间超过预设的同步处理时间阈值时,可能会存在双向同步过程中,多次修改的数据被同步成第一次修改的数据的情况,出现脏数据,因此本方法执行同步处理时间阈值进行处理,剔除脏数据的情况,保证数据的一致性。
进一步作为优选的实施方式,所述数据主键反查步骤具体包括:
获取第一数据库的第一变更记录信息并发送至第二服务器的同步队列中;所述第一变更记录信息包括数据表名称、主键名和主键值;
接收第二服务器的同步队列返回的与第一变更记录信息对应的第一查询结果;所述第一查询结果包括有与第一变更记录信息中的记录信息相对应的记录信息的所有字段数据信息;
本地同步队列在判断第一查询结果中的记录信息与第一数据库中对应的记录信息不一致时,以第一查询结果中的记录信息更新第一数据库中的对应记录信息。
由于本方法是在第一服务器中执行,因此,本实施例中的本地同步队列,指第一服务器的同步队列。
本地同步队列在判断第一查询结果中的记录信息与第一数据库中对应的记录信息一致时,表示数据正常,不需要进行处理。
本步骤中,通过获取第一数据库的第一变更记录信息并发送到第二服务器的同步队列后,接收第二服务器的同步队列返回的与第一变更记录信息对应的第一查询结果,通过将第一查询结果与第一数据库中的记录信息进行比对,可以判断是否存在数据异常的情况,并在存在数据异常时,采用查询结果中的记录信息更新第一数据库中的记录信息,保证数据的一致性。
方法实施例二
参照图2,本实施例提供了一种异地数据双向同步方法,用于实现第一服务器与第二服务器之间的异地数据双向同步,第一服务器连接有第一数据库,第二服务器连接有第二数据库,本实施例中所述方法由第二服务器执行,包括以下步骤:
S201、通过本地同步队列接收第一服务器发送的第一同步数据;所述第一同步数据中记载有第一同步数据的创建时间;
S202、结合第二同步数据记录,将第一同步数据更新到第二数据库中,同时将所更新数据的同步完成时间添加记录到第二同步数据记录中;
其中,所述第二同步数据记录中记载有数据的创建时间和同步完成时间;
S203、从第二数据库中获取发生数据变更的数据作为第二同步数据,同时将第二同步数据的创建时间记录到本地的第二同步数据记录中;
S204、将第二同步数据发送至第一服务器的同步队列中,以使得第一服务器对第二同步数据进行同步处理。
本实施例与实施例一的区别在于,本实施例从第二服务器的数据处理角度来描述第一服务器与第二服务器之间的异地双向数据同步方法,同样的,本方法通过在获取同步数据的同时,记录同步数据的创建时间,并在同步数据在数据库中同步完成后,记录同步数据的同步完成时间,从而在进行同步数据的更新同步过程中,可以筛选出历史同步操作中,已经更新同步到数据库的数据,只对筛选剩下的数据进行更新,而对这部分筛选出的数据不进行更新,避免多次重复更新带来的数据不一致的情况,可以保证数据的一致性和完整性。
进一步作为优选的实施方式,所述步骤S202,其具体为:
结合第二同步数据记录,筛选出第一同步数据中,创建时间不处于第二区间范围内的数据,并将筛选获得的数据更新到第二数据库中,同时将所更新数据的同步完成时间记录到第二同步数据记录中;其中,所述第二区间范围指第二同步数据记录中的创建时间和同步完成时间所形成的区间范围。
进一步作为优选的实施方式,所述步骤S202中,所述将筛选获得的数据更新到第二数据库中这一步骤,具体包括:
将筛选获得的数据更新到第二数据库中,并在更新完成后,判断更新过程所花费的同步时间是否超过预设的同步处理时间阈值;
当判断同步时间超过预设的同步处理时间阈值时,执行数据主键反查步骤。
进一步作为优选的实施方式,所述数据主键反查步骤具体包括:
获取第二数据库的第二变更记录信息并发送至第一服务器的同步队列中;所述第二变更记录信息包括数据表名称、主键名和主键值;
接收第一服务器的同步队列返回的与第二变更记录信息对应的第二查询结果;所述第二查询结果包括有与第二变更记录信息中的记录信息相对应的记录信息的所有字段数据信息;
本地同步队列在判断第二查询结果中的记录信息与第二数据库中对应的记录信息不一致时,以第二查询结果中的记录信息更新第二数据库中的对应记录信息。
本实施例中,第二服务器对数据进行处理的细节与方法实施例一种第一服务器对数据进行处理的细节相似,仅仅在于执行主体与处理对象的不同,本实施例具备该方法实施例一相应的功能和有益效果,相似内容不再赘述。
方法实施例三
参照图3,本实施例提供了一种异地数据双向同步方法,用于实现第一服务器与第二服务器之间的异地数据双向同步,本实施例的同步方法描述了第一服务器与第二服务器具体如何进行数据交互,实现异地双向数据同步的过程,该方法包括以下步骤:
S1、第一服务器从第一数据库获取发生数据变更的数据作为第一同步数据,同时将第一同步数据的创建时间记录到本地的第一同步数据记录中;
S2、第一服务器将第一同步数据发送至第二服务器的同步队列中;
S3、第二服务器通过本地同步队列接收第一服务器发送的第一同步数据;
S4、第二服务器结合第二同步数据记录,将第一同步数据更新到第二数据库中,同时将所更新数据的同步完成时间添加记录到第二同步数据记录中;
S5、第二服务器从第二数据库中获取发生数据变更的数据作为第二同步数据,同时将第二同步数据的创建时间记录到本地的第二同步数据记录中;
S6、第二服务器将第二同步数据发送至第一服务器的同步队列中;
S7、第一服务器通过本地的同步队列接收第二服务器发送过来的第二同步数据;
S8、第一服务器结合第一同步数据记录,将第二同步数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一同步数据记录和第二同步数据记录中均记载有数据的创建时间和同步完成时间。
本实施例的一种异地数据双向同步方法,可执行本发明方法实施例一和方法实施例二所提供的一种异地数据双向同步方法,可执行方法实施例一和方法实施例二的任意组合实施步骤,具备方法实施例一和方法实施例二相应的功能和有益效果。
另一方面,参照图4,本发明实施例还提供了一种异地数据双向同步系统,包括:
至少一个处理器100;
至少一个存储器200,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器100执行,使得所述至少一个处理器100实现所述的一种异地数据双向同步方法。
本实施例的一种异地数据双向同步系统,可执行本发明方法实施例一和方法实施例二所提供的一种异地数据双向同步方法,可执行方法实施例一和方法实施例二的任意组合实施步骤,具备方法实施例一和方法实施例二相应的功能和有益效果。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。

Claims (8)

1.一种异地数据双向同步方法,其特征在于,所述方法由第一服务器执行,包括以下步骤:
S101、从第一数据库获取发生数据变更的数据作为第一同步数据,同时将第一同步数据的创建时间记录到本地的第一同步数据记录中;
S102、将第一同步数据发送至第二服务器的同步队列中,以使得第二服务器对第一同步数据进行同步处理;
S103、通过本地的同步队列接收第二服务器发送过来的第二同步数据;
所述第二同步数据中记载有第二同步数据的创建时间;
S104、结合第一同步数据记录,将第二同步数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一同步数据记录中记载有数据的创建时间和同步完成时间;
所述步骤S104,其具体为:
结合第一同步数据记录,筛选出第二同步数据中,创建时间不处于第一区间范围内的数据,并将筛选获得的数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一区间范围指第一同步数据记录中的创建时间和同步完成时间所形成的区间范围。
2.根据权利要求1所述的一种异地数据双向同步方法,其特征在于,所述步骤S104中,所述将筛选获得的数据更新到第一数据库中这一步骤,具体包括:
将筛选获得的数据更新到第一数据库中,并在更新完成后,判断更新过程所花费的同步时间是否超过预设的同步处理时间阈值;
当判断同步时间超过预设的同步处理时间阈值时,执行数据主键反查步骤。
3.根据权利要求2所述的一种异地数据双向同步方法,其特征在于,所述数据主键反查步骤具体包括:
获取第一数据库的第一变更记录信息并发送至第二服务器的同步队列中;所述第一变更记录信息包括数据表名称、主键名和主键值;
接收第二服务器的同步队列返回的与第一变更记录信息对应的第一查询结果;所述第一查询结果包括有与第一变更记录信息中的记录信息相对应的记录信息的所有字段数据信息;
本地同步队列在判断第一查询结果中的记录信息与第一数据库中对应的记录信息不一致时,以第一查询结果中的记录信息更新第一数据库中的对应记录信息。
4.一种异地数据双向同步方法,其特征在于,所述方法由第二服务器执行,包括以下步骤:
S201、通过本地同步队列接收第一服务器发送的第一同步数据;所述第一同步数据中记载有第一同步数据的创建时间;
S202、结合第二同步数据记录,将第一同步数据更新到第二数据库中,同时将所更新数据的同步完成时间添加记录到第二同步数据记录中;
其中,所述第二同步数据记录中记载有数据的创建时间和同步完成时间;
S203、从第二数据库中获取发生数据变更的数据作为第二同步数据,同时将第二同步数据的创建时间记录到本地的第二同步数据记录中;
S204、将第二同步数据发送至第一服务器的同步队列中,以使得第一服务器对第二同步数据进行同步处理;
所述步骤S202,其具体为:
结合第二同步数据记录,筛选出第一同步数据中,创建时间不处于第二区间范围内的数据,并将筛选获得的数据更新到第二数据库中,同时将所更新数据的同步完成时间记录到第二同步数据记录中;其中,所述第二区间范围指第二同步数据记录中的创建时间和同步完成时间所形成的区间范围。
5.根据权利要求4所述的一种异地数据双向同步方法,其特征在于,所述步骤S202中,所述将筛选获得的数据更新到第二数据库中这一步骤,具体包括:
将筛选获得的数据更新到第二数据库中,并在更新完成后,判断更新过程所花费的同步时间是否超过预设的同步处理时间阈值;
当判断同步时间超过预设的同步处理时间阈值时,执行数据主键反查步骤。
6.根据权利要求5所述的一种异地数据双向同步方法,其特征在于,所述数据主键反查步骤具体包括:
获取第二数据库的第二变更记录信息并发送至第一服务器的同步队列中;所述第二变更记录信息包括数据表名称、主键名和主键值;
接收第一服务器的同步队列返回的与第二变更记录信息对应的第二查询结果;所述第二查询结果包括有与第二变更记录信息中的记录信息相对应的记录信息的所有字段数据信息;
本地同步队列在判断第二查询结果中的记录信息与第二数据库中对应的记录信息不一致时,以第二查询结果中的记录信息更新第二数据库中的对应记录信息。
7.一种异地数据双向同步方法,其特征在于,包括以下步骤:
S1、第一服务器从第一数据库获取发生数据变更的数据作为第一同步数据,同时将第一同步数据的创建时间记录到本地的第一同步数据记录中;
S2、第一服务器将第一同步数据发送至第二服务器的同步队列中;
S3、第二服务器通过本地同步队列接收第一服务器发送的第一同步数据;
S4、第二服务器结合第二同步数据记录,将第一同步数据更新到第二数据库中,同时将所更新数据的同步完成时间添加记录到第二同步数据记录中;
S5、第二服务器从第二数据库中获取发生数据变更的数据作为第二同步数据,同时将第二同步数据的创建时间记录到本地的第二同步数据记录中;
S6、第二服务器将第二同步数据发送至第一服务器的同步队列中;
S7、第一服务器通过本地的同步队列接收第二服务器发送过来的第二同步数据;
S8、第一服务器结合第一同步数据记录,将第二同步数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一同步数据记录和第二同步数据记录中均记载有数据的创建时间和同步完成时间;
所述步骤S8,其具体为:
结合第一同步数据记录,筛选出第二同步数据中,创建时间不处于第一区间范围内的数据,并将筛选获得的数据更新到第一数据库中,同时将所更新数据的同步完成时间添加记录到第一同步数据记录中;
其中,所述第一区间范围指第一同步数据记录中的创建时间和同步完成时间所形成的区间范围;
所述步骤S4,其具体为:
结合第二同步数据记录,筛选出第一同步数据中,创建时间不处于第二区间范围内的数据,并将筛选获得的数据更新到第二数据库中,同时将所更新数据的同步完成时间记录到第二同步数据记录中;其中,所述第二区间范围指第二同步数据记录中的创建时间和同步完成时间所形成的区间范围。
8.一种异地数据双向同步系统,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-6任一项所述的一种异地数据双向同步方法。
CN201811216571.3A 2018-10-18 2018-10-18 一种异地数据双向同步方法及系统 Active CN109522364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811216571.3A CN109522364B (zh) 2018-10-18 2018-10-18 一种异地数据双向同步方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811216571.3A CN109522364B (zh) 2018-10-18 2018-10-18 一种异地数据双向同步方法及系统

Publications (2)

Publication Number Publication Date
CN109522364A CN109522364A (zh) 2019-03-26
CN109522364B true CN109522364B (zh) 2019-12-24

Family

ID=65771001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811216571.3A Active CN109522364B (zh) 2018-10-18 2018-10-18 一种异地数据双向同步方法及系统

Country Status (1)

Country Link
CN (1) CN109522364B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597910A (zh) * 2019-09-12 2019-12-20 聚好看科技股份有限公司 一种异地数据同步方法、装置和系统
CN113283999B (zh) * 2021-04-07 2024-01-23 南方电网数字平台科技(广东)有限公司 电力监控系统网省两级数据同步方法、装置、计算机设备
CN113742138A (zh) * 2021-09-06 2021-12-03 深圳市云鼠科技开发有限公司 一种数据管理方法、装置、电子设备及存储介质
CN115714782B (zh) * 2022-10-26 2024-03-05 北京云智信安科技有限公司 可离线交互的数据同步方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107180116A (zh) * 2017-06-28 2017-09-19 努比亚技术有限公司 一种数据同步处理方法、移动终端以及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102394715B (zh) * 2011-06-30 2016-09-07 烟台惠通网络技术有限公司 时钟同步方法和装置
CN105187464B (zh) * 2014-06-19 2019-11-05 南京中兴软件有限责任公司 一种分布式存储系统中的数据同步方法、装置及系统
CN104462477B (zh) * 2014-12-18 2018-03-30 深圳市科漫达智能管理科技有限公司 基于时间戳的数据同步的方法、装置及系统
CN107818178A (zh) * 2017-11-23 2018-03-20 郑州云海信息技术有限公司 一种自动生成数据库变更sql脚本的方法
CN108287886B (zh) * 2018-01-16 2022-04-08 创新先进技术有限公司 同步数据变更信息的方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107180116A (zh) * 2017-06-28 2017-09-19 努比亚技术有限公司 一种数据同步处理方法、移动终端以及计算机可读存储介质

Also Published As

Publication number Publication date
CN109522364A (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
CN109522364B (zh) 一种异地数据双向同步方法及系统
CN110990432B (zh) 一种跨机房同步分布式缓存集群的装置和方法
CN108345617B (zh) 一种数据同步方法、装置以及电子设备
EP2928160A1 (en) Idempotence for database transactions
CN112597249B (zh) 一种业务数据的同步分发存储方法及系统
CN108123851B (zh) 分布式系统中主从节点同步链路的存活检测方法及装置
CN110708196B (zh) 数据处理方法及装置
CN107391634B (zh) 数据迁移方法及装置
CN111209343B (zh) 节点数据同步方法、装置、设备以及存储介质
CN112750037A (zh) 基于区块链的数据压缩、查询方法及装置和电子设备
WO2022134797A1 (zh) 一种数据分片存储方法、装置、计算机设备和存储介质
WO2021147793A1 (zh) 数据处理方法、装置、系统、电子设备及计算机存储介质
CN112486707A (zh) 基于Redis的消息异步消费方法及装置
TWI439873B (zh) Data synchronization method
CN111460038A (zh) 一种数据准实时同步方法及装置
CN108205588B (zh) 基于主从结构的数据同步方法及装置
CN112015595B (zh) 主从数据库的切换方法、计算设备及存储介质
CN113468143A (zh) 数据迁移方法、系统、计算设备及存储介质
CN114625566A (zh) 数据容灾方法、装置、电子设备及存储介质
US7546384B1 (en) Maintaining relative time stamps when transferring files across network
CN113869989B (zh) 一种信息处理方法及装置
CN113672776B (zh) 一种故障分析方法及装置
CN109542981A (zh) 一种数据同步的系统及方法、电子设备、存储介质
JP2000035911A (ja) データベースの等価方法
CN112711466A (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
GR01 Patent grant
GR01 Patent grant