CN116126882A - 数据同步方法、装置、设备及存储介质 - Google Patents
数据同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116126882A CN116126882A CN202310403177.5A CN202310403177A CN116126882A CN 116126882 A CN116126882 A CN 116126882A CN 202310403177 A CN202310403177 A CN 202310403177A CN 116126882 A CN116126882 A CN 116126882A
- Authority
- CN
- China
- Prior art keywords
- data
- change information
- database
- synchronization
- instruction
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000008859 change Effects 0.000 claims abstract description 331
- 230000001360 synchronised effect Effects 0.000 claims abstract description 42
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据同步方法、装置、设备及存储介质,应用于大数据技术领域,该方法包括:获取数据发生变更的源数据库的第一变更信息,确定待同步的目标数据库的类型;若目标数据库的类型为MySQL数据库,则向目标数据库发送第一同步指令和第一调整指令,以使目标数据库根据第一调整指令将第一时间戳调整为预设时间戳,并根据第一同步指令存储预设时间戳和第一变更数据,得到目标数据库的第二变更信息;从目标数据库中获取第二变更信息;向源数据库发送第二同步指令,以使源数据库根据第二变更信息中的预设时间戳,停止同步第一变更数据。本申请将第一时间戳调整为固定时间戳,当数据库遇到固定时间戳时可以不同步数据。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及一种数据同步方法、装置、设备及存储介质。
背景技术
随着国产数据库技术的不断完善,越来越多的用户选择将源数据库替换为国产数据库。在替换源数据库的过程中,需要源数据库与国产数据库并行运行。为了避免数据库内的数据丢失,提高数据的安全性,可以在两个数据库内存储同一用户数据。目前一般是通过对两个数据库之间的数据进行同步来实现。
现有技术中,对两个数据库之间的数据进行同步方法为:若两个数据库中任一源数据库内的数据发生变更,则获取变更数据,将该变更数据同步至另一目标数据库。
然而,发明人发现现有技术至少存在如下技术问题:由于两个数据库中任一源数据库内的数据发生变更,均会将该变更数据同步至另一目标数据库,这样另一目标数据库同步了该变更数据之后,数据也会发生变更,反过来还会将数据同步至源数据库,从而导致两个数据库交替更新数据,形成无限循环的问题。
发明内容
本申请提供一种数据同步方法、装置、设备及存储介质,用于解决现有的两个数据库交替更新数据,形成无限循环的问题。
第一方面,本申请提供了一种数据同步方法,应用于数据同步服务器,所述方法包括:
获取数据发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;
确定待同步的目标数据库的类型;
若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送第一同步指令和第一调整指令,以使所述目标数据库根据所述第一调整指令将所述第一变更信息的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和所述第一变更数据,得到所述目标数据库的第二变更信息;
从所述目标数据库中获取所述第二变更信息;
向所述源数据库发送第二同步指令,所述第二同步指令携带所述第二变更信息,以使所述源数据库根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
第二方面,本申请提供了一种数据同步方法,应用于源数据库,包括:
接收数据同步服务器发送的第二同步指令,其中所述第二同步指令中携带第二变更信息,所述第二变更信息为所述数据同步服务器从目标数据库中获取的,其中所述目标数据库接收所述数据同步服务器发送的第一同步指令和第一调整指令,根据所述第一调整指令将第一变更信息中的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和第一变更数据,得到所述目标数据库的第二变更信息;其中数据同步服务器获取发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送第一同步指令和第一调整指令;
获取所述第二同步指令携带的所述第二变更信息;
根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
第三方面,本申请提供了一种数据同步方法,应用于目标数据库,包括:
接收数据同步服务器发送的第一同步指令和第一调整指令,其中所述第一同步指令和所述第一调整指令为所述数据同步服务器获取数据发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送的;
根据所述第一调整指令将所述第一变更信息的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和所述第一变更数据,得到所述目标数据库的第二变更信息,其中所述第二变更信息用于指示所述数据同步服务器从所述目标数据库获取所述第二变更信息,向所述源数据库发送第二同步指令,所述第二同步指令携带所述第二变更信息,以使所述源数据库根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
第四方面,本申请提供了一种数据同步装置,应用于数据同步服务器;所述装置包括:
第一获取模块,用于获取数据发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;
确定模块,用于确定待同步的目标数据库的类型;
发送模块,用于若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送第一同步指令和第一调整指令,以使所述目标数据库根据所述第一调整指令将所述第一变更信息中的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和所述第一变更数据,得到所述目标数据库的第二变更信息;
所述第一获取模块,还用于从所述目标数据库中获取所述第二变更信息;
所述发送模块,还用于向所述源数据库发送第二同步指令,所述第二同步指令携带所述第二变更信息,以使所述源数据库根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
第五方面,本申请提供了一种数据同步装置,应用于源数据库,包括:
第一接收模块,用于接收数据同步服务器发送的第二同步指令,其中所述第二同步指令中携带第二变更信息,所述第二变更信息为所述数据同步服务器从目标数据库中获取的,其中所述目标数据库接收所述数据同步服务器发送的第一同步指令和第一调整指令,根据所述第一调整指令将第一变更信息中的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和第一变更数据,得到所述目标数据库的第二变更信息;其中数据同步服务器获取发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送第一同步指令和第一调整指令;
第二获取模块,用于获取所述第二同步指令携带的所述第二变更信息;
停止模块,用于根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
第六方面,本申请提供了一种数据同步装置,应用于目标数据库,包括:
第三接收模块,用于接收数据同步服务器发送的第一同步指令和第一调整指令,其中所述第一同步指令和所述第一调整指令为所述数据同步服务器获取数据发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送的;
调整模块,用于根据所述第一调整指令将所述第一变更信息的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和所述第一变更数据,得到所述目标数据库的第二变更信息,其中所述第二变更信息用于指示所述数据同步服务器从所述目标数据库获取所述第二变更信息,向所述源数据库发送第二同步指令,所述第二同步指令携带所述第二变更信息,以使所述源数据库根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
第七方面,本申请提供了一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器用于调用所述存储器中的程序指令执行如第一方面、第二方面或第三方面所述的数据同步方法。
第八方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面、第二方面或第三方面所述的数据同步方法。
第九方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如第一方面、第二方面或第三方面所述的数据同步方法。
本申请提供的数据同步方法、装置、设备及存储介质,该方法包括:获取数据发生变更的源数据库的第一变更信息,第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若目标数据库的类型为MySQL数据库,则向目标数据库发送第一同步指令和第一调整指令,以使目标数据库根据第一调整指令将第一时间戳调整为预设时间戳,并根据第一同步指令存储预设时间戳和第一变更数据,得到目标数据库的第二变更信息;从目标数据库中获取第二变更信息;向源数据库发送第二同步指令,第二同步指令携带第二变更信息,以使源数据库根据第二变更信息中的预设时间戳,停止同步第一变更数据。由于通过MySQL数据库将第一时间戳调整为固定的预设时间戳,使得数据库能够根据固定时间戳,停止同步第一变更数据,避免了两个数据库交替更新数据形成无限循环的问题,因此,提高了数据同步的稳定性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为现有技术提供的一种数据同步系统的示意图;
图2为本发明实施例提供的数据同步方法的流程图一;
图3为本发明实施例提供的数据同步方法的流程图二;
图4为本发明实施例提供的数据同步方法的流程图三;
图5为本发明实施例提供的数据同步装置的结构示意图;
图6为本发明实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
MySQL数据库:MySQL数据库是关系型数据库,将数据保存在不同的表中,并使用的SQL语言(Structured Query Language,结构化查询语言)查询、更新MySQL数据库内的数据。
Oracle数据库:Oracle数据库也是关系型数据库,以二维表保存数据。Oracle数据库的可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
近年来,随着国产数据库技术的不断完善,越来越多的用户选择将源数据库替换为国产数据库。在替换源数据库的过程中,需要源数据库与国产数据库并行运行。为了避免数据库内的数据丢失,提高数据的安全性,可以在两个数据库内存储同一用户数据。目前一般是通过对两个数据库之间的数据进行同步来实现。示例性的,源数据库为Oracle数据库,国产数据库为MySQL数据库。
现有技术中,如图1所示,数据库同步系统包括数据同步服务器、源数据库和目标数据库。数据库同步服务器对两个数据库之间的数据进行同步。具体步骤为:若两个数据库中任一源数据库内的数据发生变更,数据库同步服务器则获取变更数据,将该变更数据同步至另一目标数据库。然而,发明人发现现有技术至少存在如下技术问题:由于两个数据库中任一源数据库内的数据发生变更,数据库同步服务器均会将该变更数据同步至另一目标数据库,这样另一目标数据库同步了该变更数据之后,数据也会发生变更,反过来数据库同步服务器还会将数据同步至源数据库,从而导致两个数据库交替更新数据,形成无限循环的问题。
在解决上述技术问题的过程中,发明人通过研究发现如下发明构思:先获取数据发生变更的源数据库的变更信息,然后通过MySQL数据库将时间戳调整为固定时间戳,之后在数据同步的过程中,若遇到固定时间戳的数据,则停止同步数据。这样就避免了两个数据库交替更新数据形成无限循环的问题,进而提高了数据同步的稳定性。下面通过具体的实施例进行详细说明。
图2为本发明实施例提供的数据同步方法的流程图一,本实施例的执行主体可以为数据同步服务器。如图2所示,该方法包括:
S201、获取数据发生变更的源数据库的第一变更信息,第一变更信息包括第一时间戳和第一变更数据。
第一时间戳为数据发生变更时的时间戳。第一变更数据包括新增数据、调整数据和删除数据中的任一项。例如,用户A完成了一个交易订单,则数据库内会新增数据,以实现对该交易订单的信息进行存储。其中,第一变更信息还可以包括用户信息、交易信息等。
在本申请实施例中,通过数据日志可以对本数据库的变更数据进行记录。数据日志内可以包括多个日志信息,每个日志信息包括变更数据和该变更数据对应的时间戳。示例性的,若数据库在时间戳(例如,2023年03月11日)内新增了数据A,则数据日志将时间戳和数据A进行关联并记录,得到一个日志信息。
可选地,通过对数据日志进行监测,以获取数据发生变更的源数据库的第一变更信息。相应的,本步骤具体为:监测各个数据库的数据日志,若任一数据库的数据日志发生变更,则获取数据日志发生变更的第一时间戳和第一变更数据,得到源数据库的第一变更信息。
需要说明的是,源数据库为数据发生变更的数据库。其中,源数据库可以MySQL数据库,也可以是Oracle数据库。
S202、确定待同步的目标数据库的类型。
在本申请实施例中,目标数据库与源数据库一一对应,是同步源数据库的第一变更信息的数据库。其中,目标数据库的类型包括MySQL数据库和Oracle数据库。
可选地,数据同步服务器内存储有数据库标识与数据库类型之间的对应关系。相应的,本步骤可以为:确定待同步的目标数据库的数据库标识,从已存储的数据库标识与数据库类型之间的对应关系中,确定该目标数据库的类型。
其中,数据库标识用于区别不同的数据库。数据库标识可以包括文字、字母、数字中的至少一项。例如,数据库标识为:数据库A。
示例性的,数据同步服务器内存储有:数据库A(数据库标识)与MySQL数据库(数据库类型)之间的对应关系。则可以通过数据库A,确定目标数据库的类型为MySQL数据库。
S203、若目标数据库的类型为MySQL数据库,则向目标数据库发送第一同步指令和第一调整指令,以使目标数据库根据第一调整指令将第一变更信息中的第一时间戳调整为预设时间戳,并根据第一同步指令存储预设时间戳和第一变更数据,得到目标数据库的第二变更信息。
在本申请实施例中,第一同步指令用于指示目标数据库同步第一变更信息。第一调整指令用于指示目标数据库将第一时间戳调整为预设时间戳。
其中,预设时间戳可以是任一固定的时间戳。示例性的,预设时间戳为2000年01月01日。
S204、从目标数据库中获取第二变更信息。
可选地,通过对目标数据库的数据日志进行监测,获取第二变更信息。相应的,本步骤具体为:监测目标数据库的数据日志,若目标数据库的数据日志发生变更,则获取数据日志发生变更的第二时间戳和第二变更数据,得到源数据库的第二变更信息。在此情况下,第二时间戳为预设时间戳,第二变更数据与第一变更数据相同。
S205、向源数据库发送第二同步指令,第二同步指令携带第二变更信息,以使源数据库根据第二变更信息中的预设时间戳,停止同步第一变更数据。
在本申请实施例中,第二同步指令用于指示源数据库同步第二变更信息。可选地,通过源数据库的同步规则,停止同步第一变更数据。示例性的,源数据库的同步规则为:若变更信息中的时间戳是预设时间戳,则停止同步变更数据;若变更信息中的时间戳不是预设时间戳,则同步变更数据。
相应的,本步骤为:向源数据库发送第二同步指令,第二同步指令携带第二变更信息,以使源数据库根据第二变更信息中的预设时间戳,按预设的同步规则,确定停止同步第一变更数据。
需要说明的是,变更信息只有经MySQL数据库同步过的,其中的时间戳才会是预设时间戳,因此,若第二变更信息中的时间戳是预设时间戳,则表示源数据库已存储第一变更数据,在此情况下,停止同步第一变更数据,即可避免两个数据库交替更新数据。
本申请提供的数据同步方法,由于通过MySQL数据库将第一时间戳调整为固定的预设时间戳,使得数据库能够根据固定时间戳,停止同步第一变更数据,避免了两个数据库交替更新数据形成无限循环的问题,因此,提高了数据同步的稳定性。
本申请实施例一提供的另一种数据同步方法,执行主体可以为源数据库。该方法包括:
S206、接收数据同步服务器发送的第二同步指令,其中第二同步指令中携带第二变更信息,第二变更信息为数据同步服务器从目标数据库中获取的,其中目标数据库接收数据同步服务器发送的第一同步指令和第一调整指令,根据第一调整指令将第一变更信息中的第一时间戳调整为预设时间戳,并根据第一同步指令存储预设时间戳和第一变更数据,得到目标数据库的第二变更信息;其中数据同步服务器获取发生变更的源数据库的第一变更信息,第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若目标数据库的类型为MySQL数据库,则向目标数据库发送第一同步指令和第一调整指令。
S207、获取第二同步指令携带的第二变更信息。
S208、根据第二变更信息中的预设时间戳,停止同步第一变更数据。
本申请提供的数据同步方法,由于根据第二变更信息中的预设时间戳,停止同步第一变更数据,避免了两个数据库交替更新数据形成无限循环的问题,因此,提高了数据同步的稳定性。
本申请实施例一提供的另一种数据同步方法,执行主体可以为数据同步服务器。该方法包括:
S209、接收数据同步服务器发送的第一同步指令和第一调整指令,其中第一同步指令和第一调整指令为数据同步服务器获取数据发生变更的源数据库的第一变更信息,第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若目标数据库的类型为MySQL数据库,则向目标数据库发送的。
S210、根据第一调整指令将第一变更信息的第一时间戳调整为预设时间戳,并根据第一同步指令存储预设时间戳和第一变更数据,得到目标数据库的第二变更信息,其中第二变更信息用于指示数据同步服务器从目标数据库获取第二变更信息,向源数据库发送第二同步指令,第二同步指令携带第二变更信息,以使源数据库根据第二变更信息中的预设时间戳,停止同步第一变更数据。
本申请提供的数据同步方法,由于根据第一调整指令将第一变更信息的第一时间戳调整为预设时间戳,使得源数据库能够根据固定时间戳,停止同步第一变更数据,避免了两个数据库交替更新数据形成无限循环的问题,因此,提高了数据同步的稳定性。
图3为本发明实施例提供的数据同步方法的流程图二。如图3所示,该数据同步方法包括:
S301、数据同步服务器获取数据发生变更的源数据库的第一变更信息,第一变更信息包括第一时间戳和第一变更数据。
步骤S301与步骤S201的方法相同,在此不再进行赘述。
S302、数据同步服务器确定待同步的目标数据库的类型。
步骤S302与步骤S202的方法相同,在此不再进行赘述。
S303、数据同步服务器若目标数据库的类型为MySQL数据库,则向目标数据库发送第一同步指令和第一调整指令。
在本申请实施例中,第一同步指令用于指示目标数据库同步第一变更信息。第一调整指令用于指示目标数据库将第一时间戳调整为预设时间戳。
S304、目标数据库根据同步服务器发送的第一调整指令将第一变更信息中的第一时间戳调整为预设时间戳,并根据同步服务器发送的第一同步指令存储预设时间戳和第一变更数据,得到目标数据库的第二变更信息。
其中,预设时间戳可以是任一固定的时间戳。示例性的,预设时间戳为2000年01月01日。
S305、数据同步服务器从目标数据库中获取第二变更信息。
步骤S305与步骤S204的方法相同,在此不再进行赘述。
S306、数据同步服务器向源数据库发送第二同步指令,第二同步指令携带第二变更信息。
在本申请实施例中,第二同步指令用于指示源数据库同步第二变更信息。第二变更信息包括预设时间戳和第一变更数据。
S307、源数据库获取数据同步服务器发送的第二同步指令携带的第二变更信息。
S308、源数据库根据第二变更信息中的预设时间戳,停止同步第一变更数据。
在本申请实施例中,源数据库可以根据同步规则,停止同步第一变更数据。可选地,源数据库的同步规则为:若变更信息中的时间戳是预设时间戳,则停止同步变更数据;若变更信息中的时间戳不是预设时间戳,则同步变更数据。相应的,本步骤为:源数据库根据第二变更信息中的预设时间戳,按预设的同步规则,确定停止同步第一变更数据。
图4为本发明实施例提供的数据同步方法的流程图三,应用于数据同步服务器。本申请实施例以源数据库为MySQL数据库,目标数据库的类型为Oracle数据库为例进行说明。
需要说明的是,数据同步服务器只能通过MySQL数据库将时间戳调整为预设时间戳。若目标数据库的类型为Oracle数据库, Oracle数据库则直接同步变更信息,之后通过源数据库将时间戳调整为预设时间戳。
如图4所示,该方法包括:
S401、获取数据发生变更的源数据库的第一变更信息,第一变更信息包括第一时间戳和第一变更数据。
步骤S401与步骤S201的方法相同,在此不再进行赘述。
S402、确定待同步的目标数据库的类型。
步骤S402与步骤S202的方法相同,在此不再进行赘述。
S403、若目标数据库的类型为Oracle数据库,则向目标数据库发送第三同步指令,第三同步指令携带第一变更信息,以使目标数据库根据第三同步指令,存储第一变更信息。
在本申请实施例中,第三同步指令用于指示目标数据库同步第一变更信息。
S404、从目标数据库获取第一变更信息,向源数据库发送第二调整指令,第二调整指令携带第一变更信息,以使源数据库根据第二调整指令将第一变更信息中的第一时间戳调整为预设时间戳,得到第三变更信息。
在本申请实施例中,第二调整指令用于指示源数据库将第一变更信息中的第一时间戳调整为预设时间戳。其中,预设时间戳可以是任一固定的时间戳。可选地,第三变更信息包括预设时间戳和第一变更数据。示例性的,预设时间戳为2000年01月01日。
需要说明的是,源数据库内已存储第一变更信息,在一种可能的实现方式中,源数据库可以直接根据第二调整指令,将第二调整指令携带的第一变更信息中的第一时间戳调整为预设时间戳,得到第三变更信息。在此情况下,源数据库可以将已存储的第一变更信息更新为第三变更信息。
在另一种可能的实现方式中,源数据库可以直接根据第二调整指令将已存储的第一变更信息中的第一时间戳调整为预设时间戳,得到第三变更信息。在此情况下,源数据库不获取第二调整指令携带的第一变更信息,或者,获取第二调整指令携带的第一变更信息,并将该第一变更信息更新为第三变更信息。
S405、从源数据库中获取第三变更信息,向目标数据库发送第四同步指令,第四同步指令携带第三变更信息,以使目标数据库根据第三变更信息中的预设时间戳,停止同步第一变更数据。
在本申请实施例中,第四同步指令用于指示目标数据库同步第三变更信息。可选地,通过目标数据库的同步规则,停止同步第一变更数据。示例性的,目标数据库的同步规则为:若变更信息中的时间戳是预设时间戳,则停止同步变更数据;若变更信息中的时间戳不是预设时间戳,则同步变更数据。
相应的,本步骤为:向目标数据库发送第四同步指令,第四同步指令携带第三变更信息,以使目标数据库根据第三变更信息中的预设时间戳,按预设的同步规则,确定停止同步第一变更数据。
本申请提供的数据同步方法,通过类型是MySQL数据库的源数据库,将第一时间戳调整为固定的预设时间戳,使得目标数据库能够根据固定时间戳,停止同步第一变更数据,避免了两个数据库交替更新数据形成无限循环的问题,因此,提高了数据同步的稳定性。
图5为本发明实施例提供的数据同步装置的结构示意图,应用于数据同步服务器;该装置包括:
第一获取模块501,用于获取数据发生变更的源数据库的第一变更信息,第一变更信息包括第一时间戳和第一变更数据;
确定模块502,用于确定待同步的目标数据库的类型;
发送模块503,用于若目标数据库的类型为MySQL数据库,则向目标数据库发送第一同步指令和第一调整指令,以使目标数据库根据第一调整指令将第一时间戳调整为预设时间戳,并根据第一同步指令存储预设时间戳和第一变更数据,得到目标数据库的第二变更信息;
第一获取模块501,还用于从目标数据库中获取第二变更信息;
发送模块503,还用于向源数据库发送第二同步指令,第二同步指令携带第二变更信息,以使源数据库根据第二变更信息中的预设时间戳,停止同步第一变更数据。
在一种可能的设计中,第一获取模块501获取数据发生变更的源数据库的第一变更信息,具体包括:监测各个数据库的数据日志,若任一数据库的数据日志发生变更,则获取数据日志发生变更的第一时间戳和第一变更数据,得到源数据库的第一变更信息。
在一种可能的设计中,源数据库为MySQL数据库或Oracle数据库。
在一种可能的设计中,源数据库为MySQL数据库;第一获取模块501,还用于若目标数据库的类型为Oracle数据库,则向目标数据库发送第三同步指令,第三同步指令携带第一变更信息,以使目标数据库根据第三同步指令,存储第一变更信息;
发送模块503,还用于从目标数据库获取第一变更信息,向源数据库发送第二调整指令,第二调整指令携带第一变更信息,以使源数据库根据第二调整指令将第一变更信息中的第一时间戳调整为预设时间戳,得到第三变更信息;
发送模块503,还用于从源数据库中获取第三变更信息,向目标数据库发送第四同步指令,第四同步指令携带第三变更信息,以使目标数据库根据第三变更信息中的预设时间戳,停止同步第一变更数据。
在一种可能的设计中,第一变更数据包括新增数据、调整数据和删除数据中的任一项。
本申请实施例提供的数据同步装置,应用于源数据库,包括:
第一接收模块,用于接收数据同步服务器发送的第二同步指令,其中所述第二同步指令中携带第二变更信息,所述第二变更信息为所述数据同步服务器从目标数据库中获取的,其中所述目标数据库接收所述数据同步服务器发送的第一同步指令和第一调整指令,根据所述第一调整指令将第一变更信息中的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和第一变更数据,得到所述目标数据库的第二变更信息;其中数据同步服务器获取发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送第一同步指令和第一调整指令;
第二获取模块,用于获取所述第二同步指令携带的所述第二变更信息;
停止模块,用于根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
本申请实施例提供的数据同步装置,应用于目标数据库,包括:
第三接收模块,用于接收数据同步服务器发送的第一同步指令和第一调整指令,其中所述第一同步指令和所述第一调整指令为所述数据同步服务器获取数据发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送的;
调整模块,用于根据所述第一调整指令将所述第一变更信息的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和所述第一变更数据,得到所述目标数据库的第二变更信息,其中所述第二变更信息用于指示所述数据同步服务器从所述目标数据库获取所述第二变更信息,向所述源数据库发送第二同步指令,所述第二同步指令携带所述第二变更信息,以使所述源数据库根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
为了实现上述实施例,本申请实施例还提供了一种电子设备,包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得处理器执行如上述任一实施例的数据同步方法。
图6为本发明实施例提供的电子设备的结构示意图,如图6所示,该电子设备600可以为服务器、源数据库或目标数据库。其中,服务器可以为数据同步服务器。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(Read Only Memory ,简称ROM)602中的程序或者从存储装置608加载到随机访问存储器(Random Access Memory ,简称RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(Liquid CrystalDisplay ,简称LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本申请实施例的方法中限定的上述功能。
本申请又一实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上述任一实施例所述的数据同步方法。
本申请又一实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一实施例所述的数据同步方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (12)
1.一种数据同步方法,其特征在于,应用于数据同步服务器,包括:
获取数据发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;
确定待同步的目标数据库的类型;
若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送第一同步指令和第一调整指令,以使所述目标数据库根据所述第一调整指令将所述第一变更信息中的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和所述第一变更数据,得到所述目标数据库的第二变更信息;
从所述目标数据库中获取所述第二变更信息;
向所述源数据库发送第二同步指令,所述第二同步指令携带所述第二变更信息,以使所述源数据库根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
2.根据权利要求1所述的方法,其特征在于,所述获取数据发生变更的源数据库的第一变更信息,包括:
监测各个数据库的数据日志,若任一数据库的数据日志发生变更,则获取所述数据日志发生变更的第一时间戳和第一变更数据,得到所述源数据库的第一变更信息。
3.根据权利要求1所述的方法,其特征在于,所述源数据库为MySQL数据库或Oracle数据库。
4.根据权利要求1所述的方法,其特征在于,所述源数据库为MySQL数据库;所述方法还包括:
若所述目标数据库的类型为Oracle数据库,则向所述目标数据库发送第三同步指令,所述第三同步指令携带所述第一变更信息,以使所述目标数据库根据所述第三同步指令,存储所述第一变更信息;
从所述目标数据库获取所述第一变更信息,向所述源数据库发送第二调整指令,所述第二调整指令携带所述第一变更信息,以使所述源数据库根据所述第二调整指令将所述第一变更信息中的第一时间戳调整为预设时间戳,得到第三变更信息;
从所述源数据库中获取所述第三变更信息,向所述目标数据库发送第四同步指令,所述第四同步指令携带所述第三变更信息,以使所述目标数据库根据所述第三变更信息中的预设时间戳,停止同步所述第一变更数据。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述第一变更数据包括新增数据、调整数据和删除数据中的任一项。
6.一种数据同步方法,其特征在于,应用于源数据库,包括:
接收数据同步服务器发送的第二同步指令,其中所述第二同步指令中携带第二变更信息,所述第二变更信息为所述数据同步服务器从目标数据库中获取的,其中所述目标数据库接收所述数据同步服务器发送的第一同步指令和第一调整指令,根据所述第一调整指令将第一变更信息中的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和第一变更数据,得到所述目标数据库的第二变更信息;其中数据同步服务器获取发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送第一同步指令和第一调整指令;
获取所述第二同步指令携带的所述第二变更信息;
根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
7.一种数据同步方法,其特征在于,应用于目标数据库,包括:
接收数据同步服务器发送的第一同步指令和第一调整指令,其中所述第一同步指令和所述第一调整指令为所述数据同步服务器获取数据发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送的;
根据所述第一调整指令将所述第一变更信息的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和所述第一变更数据,得到所述目标数据库的第二变更信息,其中所述第二变更信息用于指示所述数据同步服务器从所述目标数据库获取所述第二变更信息,向所述源数据库发送第二同步指令,所述第二同步指令携带所述第二变更信息,以使所述源数据库根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
8.一种数据同步装置,其特征在于,应用于数据同步服务器,包括:
第一获取模块,用于获取数据发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;
确定模块,用于确定待同步的目标数据库的类型;
发送模块,用于若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送第一同步指令和第一调整指令,以使所述目标数据库根据所述第一调整指令将所述第一变更信息中的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和所述第一变更数据,得到所述目标数据库的第二变更信息;
所述第一获取模块,还用于从所述目标数据库中获取所述第二变更信息;
所述发送模块,还用于向所述源数据库发送第二同步指令,所述第二同步指令携带所述第二变更信息,以使所述源数据库根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
9.一种数据同步装置,其特征在于,应用于源数据库,包括:
第一接收模块,用于接收数据同步服务器发送的第二同步指令,其中所述第二同步指令中携带第二变更信息,所述第二变更信息为所述数据同步服务器从目标数据库中获取的,其中所述目标数据库接收所述数据同步服务器发送的第一同步指令和第一调整指令,根据所述第一调整指令将第一变更信息中的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和第一变更数据,得到所述目标数据库的第二变更信息;其中数据同步服务器获取发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送第一同步指令和第一调整指令;
第二获取模块,用于获取所述第二同步指令携带的所述第二变更信息;
停止模块,用于根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
10.一种数据同步装置,其特征在于,应用于目标数据库,包括:
第三接收模块,用于接收数据同步服务器发送的第一同步指令和第一调整指令,其中所述第一同步指令和所述第一调整指令为所述数据同步服务器获取数据发生变更的源数据库的第一变更信息,所述第一变更信息包括第一时间戳和第一变更数据;确定待同步的目标数据库的类型;若所述目标数据库的类型为MySQL数据库,则向所述目标数据库发送的;
调整模块,用于根据所述第一调整指令将所述第一变更信息的第一时间戳调整为预设时间戳,并根据所述第一同步指令存储所述预设时间戳和所述第一变更数据,得到所述目标数据库的第二变更信息,其中所述第二变更信息用于指示所述数据同步服务器从所述目标数据库获取所述第二变更信息,向所述源数据库发送第二同步指令,所述第二同步指令携带所述第二变更信息,以使所述源数据库根据所述第二变更信息中的预设时间戳,停止同步所述第一变更数据。
11.一种电子设备,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器用于调用所述存储器中的程序指令执行如权利要求1-5任一项所述的数据同步方法,或如权利要求6所述的数据同步方法,或如权利要求7所述的数据同步方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-5任一项所述的数据同步方法,或如权利要求6所述的数据同步方法,或如权利要求7所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310403177.5A CN116126882A (zh) | 2023-04-17 | 2023-04-17 | 数据同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310403177.5A CN116126882A (zh) | 2023-04-17 | 2023-04-17 | 数据同步方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126882A true CN116126882A (zh) | 2023-05-16 |
Family
ID=86299458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310403177.5A Pending CN116126882A (zh) | 2023-04-17 | 2023-04-17 | 数据同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126882A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101500208A (zh) * | 2008-01-31 | 2009-08-05 | 三星电子株式会社 | 设备间数据同步的方法和系统 |
CN104376017A (zh) * | 2013-08-15 | 2015-02-25 | 阿里巴巴集团控股有限公司 | 在数据库之间进行数据同步的方法及系统 |
CN111291008A (zh) * | 2020-01-22 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、系统、电子设备及计算机存储介质 |
CN112084254A (zh) * | 2019-06-14 | 2020-12-15 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和系统 |
CN112199447A (zh) * | 2020-12-03 | 2021-01-08 | 深圳市易博天下科技有限公司 | 数据库的同步方法、装置、系统及电子设备 |
CN114579662A (zh) * | 2020-11-30 | 2022-06-03 | 中移动信息技术有限公司 | 内存数据库同步方法、系统、设备及存储介质 |
CN114741416A (zh) * | 2021-01-07 | 2022-07-12 | 小红书科技有限公司 | 一种双活系统及同步方法 |
-
2023
- 2023-04-17 CN CN202310403177.5A patent/CN116126882A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101500208A (zh) * | 2008-01-31 | 2009-08-05 | 三星电子株式会社 | 设备间数据同步的方法和系统 |
US20090198772A1 (en) * | 2008-01-31 | 2009-08-06 | Samsung Electronics Co. Ltd. | Data synchronization method and system between devices |
CN104376017A (zh) * | 2013-08-15 | 2015-02-25 | 阿里巴巴集团控股有限公司 | 在数据库之间进行数据同步的方法及系统 |
CN112084254A (zh) * | 2019-06-14 | 2020-12-15 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和系统 |
CN111291008A (zh) * | 2020-01-22 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、系统、电子设备及计算机存储介质 |
CN114579662A (zh) * | 2020-11-30 | 2022-06-03 | 中移动信息技术有限公司 | 内存数据库同步方法、系统、设备及存储介质 |
CN112199447A (zh) * | 2020-12-03 | 2021-01-08 | 深圳市易博天下科技有限公司 | 数据库的同步方法、装置、系统及电子设备 |
CN114741416A (zh) * | 2021-01-07 | 2022-07-12 | 小红书科技有限公司 | 一种双活系统及同步方法 |
Non-Patent Citations (1)
Title |
---|
李宁;: "一种异构关系型数据库间的数据同步方案", 福建电脑, no. 10 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271450B (zh) | 数据库同步方法、装置、服务器和存储介质 | |
CN109739936A (zh) | 数据同步方法、系统、服务器及计算机可读存储介质 | |
US10311077B2 (en) | Database table conversion | |
US8280847B2 (en) | Apparatus, method, and computer program product for synchronizing data sources | |
CN110874383A (zh) | 数据处理方法、装置及电子设备 | |
US12093146B2 (en) | Method and apparatus for generating log data having increased filterability | |
US10394844B2 (en) | Integrating co-deployed databases for data analytics | |
CN115757612A (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN116303798A (zh) | 数据同步方法、装置、设备及存储介质 | |
US7739232B2 (en) | Programming system for occasionally-connected mobile business applications | |
CN110704773B (zh) | 基于频繁行为序列模式的异常行为检测方法及系统 | |
US20170199921A1 (en) | Bloom filter driven data synchronization | |
EP3916578B1 (en) | System for implementing sub-database replication | |
US11797218B2 (en) | Method and device for detecting slow node and computer-readable storage medium | |
CN116126882A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN115113989B (zh) | 事务执行方法、装置、计算设备及存储介质 | |
WO2018231450A1 (en) | Action undo service based on cloud platform | |
CN114328464A (zh) | 分布式存储设备的数据维护方法、装置、设备和可读介质 | |
CN116841794A (zh) | 一种数据的校验方法、装置以及存储介质 | |
CN116303796A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN112989773B (zh) | 用于同步更新数据的方法、装置、设备和计算机可读介质 | |
CN113220760B (zh) | 一种数据处理方法、装置、服务器及存储介质 | |
EP4131017A2 (en) | Distributed data storage | |
CN110019513A (zh) | 增量数据的同步方法、装置、系统及电子设备 | |
CN118503319A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230516 |