CN114064795A - 数据同步方法、装置、电子设备和存储介质 - Google Patents
数据同步方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114064795A CN114064795A CN202010749698.2A CN202010749698A CN114064795A CN 114064795 A CN114064795 A CN 114064795A CN 202010749698 A CN202010749698 A CN 202010749698A CN 114064795 A CN114064795 A CN 114064795A
- Authority
- CN
- China
- Prior art keywords
- database
- standby
- global transaction
- data
- value
- 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
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1492—Generic software techniques for error detection or fault masking by run-time replication performed by the application software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请提出一种数据同步方法、装置、电子设备和存储介质,其中,方法包括:在主数据库故障时,发送查询延迟命令,分别获取第一备数据库相对于主数据库的第一时间延迟值,以及第二备数据库相对于主数据库的第二时间延迟值;在第一时间延迟值和第二时间延迟值都为零的情况下,发送全局事务标识获取指令;获取第一备数据库中主数据库所对应的第一全局事务标识数值,以及获取第二备数据库中主数据库所对应的第二全局事务标识数值;根据第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理。由此,解决了主数据库故障时,影响交易以及数据丢失或数据同步失败的技术问题,确保数据一致性,保证数据实时处理不受影响。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据同步方法、装置、电子设备和存储介质。
背景技术
在金融系统领域,常常基于mysql(一种开放源代码的关系型数据库管理系统)数据库实现金融数据库的分布式架构。在部署数据中心时,可以对每个数据中心进行分库设计,例如,部署本地两台服务器、一台同城市的备服务器、以及一台异地城市的备服务器,由4台服务器组成一套数据库,来承接交易业务。
具体地,每个数据中心由多套库组成,每套数据库进一步包括本地主数据库、本地备数据库、同城备数据库和异地备数据库。相关技术中,如图1所示的一套数据库,在主数据库故障时,可以将数据处理切换到本地备数据库,在本地备数据库同步数据与主数据库的数据不一致的情况下,会造成数据丢失或数据同步失败等情况。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请提出一种数据同步方法,解决了现有技术中主数据库故障时,影响交易以及数据丢失或数据同步失败的技术问题,通过第一备数据库和第二备数据库的全局事务标识数值比较,对差异处理数据进行补偿存储,确保数据的一致性,保证数据实时处理不受影响。
本申请提出一种数据同步装置。
本申请提出一种电子设备。
本申请提出一种计算机可读存储介质。
本申请一方面实施例提出了一种数据同步方法,应用于同步仲裁装置,其中,所述同步仲裁装置用于对主数据库、第一备数据库和第二备数据库的数据同步过程进行仲裁,所述方法包括:
在所述主数据库故障时,发送查询延迟命令,分别获取所述第一备数据库相对于所述主数据库的第一时间延迟值,以及所述第二备数据库相对于所述主数据库的第二时间延迟值;
在所述第一时间延迟值和所述第二时间延迟值都为零的情况下,发送全局事务标识获取指令;
获取所述第一备数据库中所述主数据库所对应的第一全局事务标识数值,以及获取所述第二备数据库中所述主数据库所对应的第二全局事务标识数值;
根据所述第一全局事务标识数值和所述第二全局事务标识数值,进行数据同步处理。
在本申请的一个实施中,所述主数据库和所述第二备数据库的连接方式为虚拟地址连接,所述根据所述第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理,包括:若所述第一全局事务标识数值小于所述第二全局事务标识数值,则获取所述第一全局事务标识数值和所述第二全局事务标识数值的差值;获取所述差值对应的处理数据,并将所述处理数据存储到所述第一备数据库,以及切换到所述第一备数据库进行数据同步,以及所述第二备数据库通过虚拟地址连接切换到所述第一备数据库。
在本申请的一个实施中,所述的数据同步方法,还包括:若所述第一全局事务标识数值大于等于所述第二全局事务标识数值,则切换到所述第一备数据库进行数据处理,以及所述第二备数据库通过虚拟地址连接切换到所述第一备数据库。
在本申请的一个实施中,所述主数据库分别与所述第一备数据库和所述第二备数据库采用半同步配置,还包括:在所述主数据库正常且所述第一备数据库发生故障的情况下,若所述主数据库接收到所述第二备数据库发送的确认报文,则继续进行数据处理,并将所述主数据库的数据半同步到所述第二备数据库。
在本申请的一个实施中,所述主数据库分别与所述第一备数据库和所述第二备数据库采用半同步配置,还包括:在所述主数据库正常且所述第二备数据库发生故障的情况下,若所述主数据库接收到所述第一备数据库发送的确认报文,则继续进行数据处理,并将所述主数据库的数据半同步到所述第一备数据库。
在本申请的一个实施中,所述的数据同步方法,还包括以下至少一项:在所述第一时间延迟值不为零的情况下,控制所述第一备数据库向所述主数据库进行时间同步;在所述第二时间延迟值不为零的情况下,控制所述第二备数据库向所述主数据库进行时间同步。
在本申请的一个实施中,所述的数据同步方法,其特征在于,还包括:发送参数设置指令,控制所述主数据库的目标参数设置为预设数值,以使所述主数据库在接收所述预设数值的确认报文后,继续进行数据处理。
本申请另一方面实施例提出了一种数据同步装置,包括:
第一获取模块,用于在所述主数据库故障时,发送查询延迟命令,分别获取所述第一备数据库相对于所述主数据库的第一时间延迟值,以及所述第二备数据库相对于所述主数据库的第二时间延迟值;
发送模块,用于在所述第一时间延迟值和所述第二时间延迟值都为零的情况下,发送全局事务标识获取指令;
第二获取模块,用于获取所述第一备数据库中所述主数据库所对应的第一全局事务标识数值,以及获取所述第二备数据库中所述主数据库所对应的第二全局事务标识数值;
处理模块,用于根据所述第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理。
本申请又一方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如前述一方面实施例所述的数据同步方法。
本申请又一方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现前述方法实施例所述的数据同步方法。
本申请又一方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,使得服务器能够执行实现前述方法实施例所述的数据同步方法。
本申请实施例所提供的技术方案可以包含如下的有益效果:
在主数据库故障时,发送查询延迟命令,分别获取第一备数据库相对于主数据库的第一时间延迟值,以及第二备数据库相对于主数据库的第二时间延迟值;在第一时间延迟值和第二时间延迟值都为零的情况下,发送全局事务标识获取指令;获取第一备数据库中主数据库所对应的第一全局事务标识数值,以及获取第二备数据库中主数据库所对应的第二全局事务标识数值;根据第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理。由此,解决了主数据库故障时,影响交易以及数据丢失或数据同步失败的技术问题,通过第一备数据库和第二备数据库的全局事务标识数值比较,对差异处理数据进行补偿存储,确保数据的一致性,保证数据实时处理不受影响。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的数据库连接的示例图;
图2为本申请实施例所提供的一种数据同步方法的流程示意图;
图3为本申请实施例所提供的数据库连接的示例图;
图4为本申请实施例所提供的数据库连接的示例图;
图5为本申请实施例所提供的数据库连接的示例图;
图6为本申请实施例提供的又一种数据同步装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的数据同步方法、装置、电子设备和存储介质。
具体地,如图1所示,包括:本地数据库主库、本地数据库备库、同城数据库备库和异地数据库备库,其中,本地数据库主库和本地数据库备库为半同步配置,本地数据库备库与同城数据库备库为异步配置,以及同城数据库备库与异地数据库备库为异步配置,其中,异步配置是相对于半同步配置或者全同步配置而言的一种复制方式,比如本地数据库备库发送的处理数据不需要等待同城数据库备库的任何反馈,直接提交,复制的数据安全性较低。
因此,在本地数据库主库故障时,将数据处理切换到本地备数据库,如果本地数据库备库的数据与本地数据库主库的数据不一致,则无法解决,会造成数据丢失或数据同步失败等情况。
为了解决现有技术中主数据库故障时,影响交易以及数据丢失或数据同步失败的技术问题,本申请提出了一种数据同步方法,在主数据库故障时,发送查询延迟命令,分别获取第一备数据库相对于主数据库的第一时间延迟值,以及第二备数据库相对于主数据库的第二时间延迟值;在第一时间延迟值和第二时间延迟值都为零的情况下,发送全局事务标识获取指令;获取第一备数据库中主数据库所对应的第一全局事务标识数值,以及获取第二备数据库中主数据库所对应的第二全局事务标识数值;根据第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理。由此,解决了主数据库故障时,影响交易以及数据丢失或数据同步失败的技术问题,通过第一备数据库和第二备数据库的全局事务标识数值比较,对差异处理数据进行补偿存储,确保数据的一致性,保证数据实时处理不受影响。
首先,为了本领域人员更加清楚本申请实施例描述的数据同步方法,针对涉及的半同步、全局事务标识和业务自动隔离程序进行解释说明如下:
半同步,主数据库分别与第一备数据库和第二备数据库采用半同步配置,为了保证在任何时刻主备数据库数据一致的问题。相对于异步复制,半同步复制要求执行的每一个事务,都要求至少有一个备数据库成功接收后,才返回给用户。在半同步复制中,主数据库发送事务默认至少有一个备数据库得到响应才能继续下一个事务。可以设置应答的备数据库数量,表示主数据库接收到几个备数据库应答后才继续进行下一步处理,在多备数据库的环境下,设置大于1可以提高数据的可靠性。
全局事务标识(Global Transaction Identifier,简称GTID),由主数据库上生成的与事务绑定的唯一标识,全局事务标识不仅在主数据库上是唯一的,在数据库集群内也是唯一的。GTID可以分成两部分,一部分是UUID(Universally Unique Identifier,通用唯一识别码)保存在数据库的数据目录的目标文件中,不能删除也不会变,另外一部分就是事务标识了,随着事务的增加,值依次递增。
业务自动隔离程序(简称Tdb)是一套独立的脚本,是部署在主备数据库,来互相判断对方的端口存活状态,如果发现端口不通将触发脚本执行,将对数据库的交易进行隔离。
图2为本申请实施例所提供的一种数据同步方法的流程示意图。
如图2所示,该方法应用于同步仲裁装置,其中,同步仲裁装置用于对主数据库、第一备数据库和第二备数据库的数据同步过程进行仲裁,一个同步仲裁装置可以管理多套数据库(一套数据库包括主数据库、第一备数据库和第二备数据库等),通常独立部署在仲裁服务器上。
也就是说,在同步仲裁装置中有可运行的仲裁程序,主数据库、第一备数据库和第二备数据库中都有指向同步仲裁装置的地址配置,具体包括以下步骤:
步骤101,在主数据库故障时,发送查询延迟命令,分别获取第一备数据库相对于主数据库的第一时间延迟值,以及第二备数据库相对于主数据库的第二时间延迟值。
步骤103,在第一时间延迟值和第二时间延迟值都为零的情况下,发送全局事务标识获取指令。
在本申请实施例中,主数据库分别与第一备数据库和第二备数据库采用半同步配置,主数据库和第二备数据库为虚拟地址连接。
作为一种可能实现方式,本申请的数据库连接方式如图3所示,主数据库与第一备数据库(比如本地数据库备库)连接,主数据库与第二备数据库(比如同城数据库备库)连接,以及采用半同步配置,即主数据库执行的每一个事务,都要求至少有一个备数据库(第一备数据库或者第二备数据库)成功接收后,才返回给终端(即用户)。
在本申请实施例中,主数据库发生故障,在发生故障的3-6秒,业务隔离程序已经将实时业务切走,负责故障切换的要实现虚拟地址连接的漂移,因为有两个半同步的备库(第一备数据库和第二备数据库),需要增加判断第一备数据库和第二备数据库的数据同步情况。
在本申请实施例中,首先要确保时间同步,即发送查询延迟命令,获取第一备数据库相对于主数据库的第一时间延迟值,以及第二备数据库相对于主数据库的第二时间延迟值。
进一步地,在第一时间延迟值和第二时间延迟值都为零的情况下,即表示第一备数据库和第二备数据库都与主数据库时间同步,可以进一步发送全局事务标识获取指令。
需要说明的是,在第一时间延迟值不为零的情况下,控制第一备数据库向主数据库进行时间同步,在第二时间延迟值不为零的情况下,控制第二备数据库向主数据库进行时间同步。
具体地,通过编写脚本(包括查询延迟命令和全局事务标识获取指令等脚本),脚本可以部署到主数据库和备数据库上,在探测到主数据库故障,启动切换后,触发脚本的执行,同时连接到第一备数据库和第二备数据发送查询延迟命令,首先对第一备数据库和第二备数据,比如通过数据库命令“show master status”中获取查询延迟命令“Seconds_Behind_Master”,确保都为0,确保第一备数据库和第二备数据没有时间延迟,如果有延迟,需要等到延迟追上后,再进行切换。
步骤105,获取第一备数据库中主数据库所对应的第一全局事务标识数值,以及获取第二备数据库中主数据库所对应的第二全局事务标识数值。
步骤107,根据第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理。
在本申请实施例中,每套库都只有一个全局事务标识,都是主数据库所对应的全局事务标识,在没有切换到备数据库时,获取数据库中的全局事务标识指的都是主数据库所对应的全局事务标识,在主数据库故障后,切换到备数据库进行数据处理,备数据库就会开始写自己的全局事务标识,主数据库所对应的全局事务标识就不会再发生变化。
在本申请实施例中,在第一备数据库和第二备数据库上,第一备数据库通过数据库命令“show master status”中获取全局事务标识获取指令“Executed_gtid_set”,获取主数据库对应的第一全局事务标识数值,标记为A;第二备数据库通过数据库命令“showmaster status”中获取全局事务标识获取指令“Executed_gtid_set”中获取主数据库对应的第二全局事务标识数值,标记为B;比如B为5ad9cb8e-2092-11e7-ac95-000c29bf823d:1-1000,5ad9cb8e-2092-11e7-ac95-000c29bf823d为主库的全局事务标识信息,要比较的是-后的数值。
进一步地,根据第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理的方式有很多种,作为一种可能实现方式,主数据库、第一备数据库和第二备数据库的连接方式如图3所示,都是半同步配置,以及主数据库和第二备数据库的连接方式为虚拟地址连接,从而若第一全局事务标识数值小于第二全局事务标识数值,则获取第一全局事务标识数值和第二全局事务标识数值的差值,获取差值对应的处理数据,并将处理数据存储到第一备数据库,以及切换到第一备数据库进行数据处理,以及第二备数据库通过虚拟地址连接切换到第一备数据库,链路不用进行改变,直接可以同步第一备数据库的数据。
在本申请实施例中,若第一全局事务标识数值大于等于第二全局事务标识数值,则切换到第一备数据库进行数据处理,以及第二备数据库通过虚拟地址连接切换到第一备数据库。
举例说明如下:具体地,第一全局事务标识数值为:
5ad9cb8e-2092-11e7-ac95-000c29bf823d:1-1000,A的值为1000。
具体地,第二全局事务标识数值为:
5ad9cb8e-2092-11e7-ac95-000c29bf823d:1-999,B的值为999。
因此,如果A>=B,说明第一备数据库上的数据是最新的,可以切换到第一备数据库进行数据处理,第二备数据库缺少的数据会通过全局事务标识从第一备数据库上进行拉取;如果A<B,将从第二备数据库上解析B与A之间差值的处理数据,在第一备数据库上进行补偿,即将处理数据存储到第一备数据库,确保两台数据库的一致性,由于瞬间差异的数据量较小,速度很快,如果有差异,能够在2-5s内完成数据补偿,由于第二备数据库同步的是通过虚拟地址连接,主数据库故障后,虚拟地址连接切换到第一备数据库,不需要人工干预,链路可以继续保持同步。
具体地,如图4所示,主数据库与第一备数据库(比如本地数据库备库)连接,主数据库与第二备数据库(比如同城数据库备库)连接,都是半同步配置,以及主数据库和第二备数据库的连接方式为虚拟地址连接,第二备数据库通过虚拟地址连接切换到第一备数据库,链路不用进行改变,直接可以同步第一备数据库的数据。
在本申请实施例中,根据第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理的方式有很多种,作为另一种可能实现方式,如果第一全局事务标识数值大于第二全局事务标识数值,则切换到第一备数据库进行数据处理,如果第二全局事务标识数值大于第一全局事务标识数值,则切换到第二备数据库进行数据处理,如果两者数值相同,可以随机或者根据数据库距离等因素选择,切换到对应备数据库进行数据处理。
本申请实施例的数据同步方法中,通过在主数据库故障时,发送查询延迟命令,分别获取第一备数据库相对于主数据库的第一时间延迟值,以及第二备数据库相对于主数据库的第二时间延迟值;在第一时间延迟值和第二时间延迟值都为零的情况下,发送全局事务标识获取指令;获取第一备数据库中主数据库所对应的第一全局事务标识数值,以及获取第二备数据库中主数据库所对应的第二全局事务标识数值;根据第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理。由此,解决了主数据库故障时,影响交易以及数据丢失或数据同步失败的技术问题,通过第一备数据库和第二备数据库的全局事务标识数值比较,对差异处理数据进行补偿存储,确保数据的一致性,保证数据实时处理不受影响。
基于上述实施例的描述,还可以理解的是,在主数据库正常且第一备数据库发生故障的情况下,若主数据库接收到第二备数据库发送的确认报文,则继续进行数据同步,并将主数据库的数据半同步到第二备数据库,以及在主数据库正常且第二备数据库发生故障的情况下,若主数据库接收到第一备数据库发送的确认字符,则继续进行数据同步,并将主数据库的数据半同步到第一备数据库。
在本申请的一个实施例中,发送参数设置指令,控制主数据库的目标参数设置为预设数值,以使主数据库在接收预设数值的确认报文后,继续进行数据处理,也就是说,通过对目标参数的设置可以设置应答的备数据库数量,表示主数据库接收到几个备数据库应答后才继续进行下一步处理,在多备数据库的环境下,设置大于1可以提高数据的可靠性。
具体地,主数据库上的“rpl_semi_sync_master_wait_for_slave_count”设置为1,只要第一备数据库或者第二备数据,有1个确认报文收到回应,主数据库就会继续操作,一般来说,第一备数据库网络限制相比第二备数据库更小,收到的也是最快。
当第一备数据库故障后,业务自动隔离程序进行业务隔离,由于半同步机制,第二备数据库进行确认报文返回,业务隔离期间的3-6秒,交易可以继续进行,可以实现备库故障的情况下,无损的隔离业务,如图5所示,主数据库与第一备数据库(比如本地备数据库)连接,主数据库与第二备数据库(比如同城备数据库)连接,第一备数据故障后,第二备数据库是通过虚拟地址连接到主数据库,链路不用进行改变,直接可以同步主数据库的数据。
由此,实现第一备数据库故障不影响实时交易,使得原来主或者备故障都影响实时交易,影响率减少,2、链路复制架构不需要自动化或者人工介入,链路保持同步关系不变,保证数据安全。
为了实现上述实施例,本申请还提出一种数据同步装置
图6为本申请实施例提供的一种数据同步装置的结构示意图。
如图6所示,该装置包括:第一获取模块601、发送模块603、第二获取模块605、和处理模块607。
其中,主数据库分别与第一备数据库和第二备数据库采用半同步配置,所述主数据库和所述第二备数据库为虚拟地址连接。
第一获取模块601,用于在主数据库故障时,发送查询延迟命令,分别获取第一备数据库相对于主数据库的第一时间延迟值,以及第二备数据库相对于主数据库的第二时间延迟值。
发送模块603,用于在第一时间延迟值和第二时间延迟值都为零的情况下,发送全局事务标识获取指令。
第二获取模块605,用于获取第一备数据库中主数据库所对应的第一全局事务标识数值,以及获取第二备数据库中主数据库所对应的第二全局事务标识数值。
处理模块607,用于根据第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理。
进一步地,在本申请实施例的一种可能的实现方式中,主数据库和第二备数据库的连接方式为虚拟地址连接,处理模块607,具体用于若所述第一全局事务标识数值小于所述第二全局事务标识数值,则获取所述第一全局事务标识数值和所述第二全局事务标识数值的差值;获取所述差值对应的处理数据,并将所述处理数据存储到所述第一备数据库,以及切换到所述第一备数据库进行数据处理,以及所述第二备数据库通过虚拟地址连接切换到所述第一备数据库。
进一步地,在本申请实施例的一种可能的实现方式中,处理模块607,具体用于若所述第一全局事务标识数值大于等于所述第二全局事务标识数值,则切换到所述第一备数据库进行数据处理,以及所述第二备数据库通过虚拟地址连接切换到所述第一备数据库。
进一步地,在本申请实施例的一种可能的实现方式中,主数据库分别与第一备数据库和所述第二备数据库采用半同步配置,还包括:在主数据库正常且第一备数据库发生故障的情况下,若主数据库接收到第二备数据库发送的确认报文,则继续进行数据处理,并将主数据库的数据半同步到第二备数据库。
进一步地,在本申请实施例的一种可能的实现方式中,主数据库分别与第一备数据库和第二备数据库采用半同步配置,还包括:在主数据库正常且第二备数据库发生故障的情况下,若主数据库接收到第一备数据库发送的确认报文,则继续进行数据处理,并将主数据库的数据半同步到第一备数据库。
进一步地,在本申请实施例的一种可能的实现方式中,在所述第一时间延迟值不为零的情况下,控制所述第一备数据库向所述主数据库进行时间同步;在所述第二时间延迟值不为零的情况下,控制所述第二备数据库向所述主数据库进行时间同步。
进一步地,在本申请实施例的一种可能的实现方式中,发送参数设置指令,控制所述主数据库的目标参数设置为预设数值,以使所述主数据库在接收所述预设数值的确认报文后,继续进行数据处理。
需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。
本申请实施例的数据同步装置中,通过在主数据库故障时,发送查询延迟命令,分别获取第一备数据库相对于主数据库的第一时间延迟值,以及第二备数据库相对于主数据库的第二时间延迟值;在第一时间延迟值和第二时间延迟值都为零的情况下,发送全局事务标识获取指令;获取第一备数据库中主数据库所对应的第一全局事务标识数值,以及获取第二备数据库中主数据库所对应的第二全局事务标识数值;根据第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理。由此,解决了主数据库故障时,影响交易以及数据丢失或数据同步失败的技术问题,通过第一备数据库和第二备数据库的全局事务标识数值比较,对差异处理数据进行补偿存储,确保数据的一致性,保证数据实时处理不受影响。
为了实现上述实施例,本申请实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如前述终端设备执行方法实施例所述的数据同步方法。
为了实现上述实施例,本申请实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现前述方法实施例所述的数据同步方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种数据同步方法,应用于同步仲裁装置,其中,所述同步仲裁装置用于对主数据库、第一备数据库和第二备数据库的数据同步过程进行仲裁,所述方法包括:
在所述主数据库故障时,发送查询延迟命令,分别获取所述第一备数据库相对于所述主数据库的第一时间延迟值,以及所述第二备数据库相对于所述主数据库的第二时间延迟值;
在所述第一时间延迟值和所述第二时间延迟值都为零的情况下,发送全局事务标识获取指令;
获取所述第一备数据库中所述主数据库所对应的第一全局事务标识数值,以及获取所述第二备数据库中所述主数据库所对应的第二全局事务标识数值;
根据所述第一全局事务标识数值和所述第二全局事务标识数值,进行数据同步处理。
2.如权利要求1所述的数据同步方法,其特征在于,所述主数据库和所述第二备数据库的连接方式为虚拟地址连接,所述根据所述第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理,包括:
若所述第一全局事务标识数值小于所述第二全局事务标识数值,则获取所述第一全局事务标识数值和所述第二全局事务标识数值的差值;
获取所述差值对应的处理数据,并将所述处理数据存储到所述第一备数据库,以及切换到所述第一备数据库进行数据处理,以及所述第二备数据库通过虚拟地址连接切换到所述第一备数据库。
3.如权利要求2所述的数据同步方法,其特征在于,还包括:
若所述第一全局事务标识数值大于等于所述第二全局事务标识数值,则切换到所述第一备数据库进行数据处理,以及所述第二备数据库通过虚拟地址连接切换到所述第一备数据库。
4.如权利要求1所述的数据同步方法,其特征在于,所述主数据库分别与所述第一备数据库和所述第二备数据库采用半同步配置,还包括:
在所述主数据库正常且所述第一备数据库发生故障的情况下,若所述主数据库接收到所述第二备数据库发送的确认报文,则继续进行数据处理,并将所述主数据库的数据半同步到所述第二备数据库。
5.如权利要求1所述的数据同步方法,其特征在于,所述主数据库分别与所述第一备数据库和所述第二备数据库采用半同步配置,还包括:
在所述主数据库正常且所述第二备数据库发生故障的情况下,若所述主数据库接收到所述第一备数据库发送的确认报文,则继续进行数据处理,并将所述主数据库的数据半同步到所述第一备数据库。
6.如权利要求1所述的数据同步方法,其特征在于,还包括以下至少一项:
在所述第一时间延迟值不为零的情况下,控制所述第一备数据库向所述主数据库进行时间同步;
在所述第二时间延迟值不为零的情况下,控制所述第二备数据库向所述主数据库进行时间同步。
7.如权利要求1所述的数据同步方法,其特征在于,还包括:
发送参数设置指令,控制所述主数据库的目标参数设置为预设数值,以使所述主数据库在接收所述预设数值的确认报文后,继续进行数据处理。
8.一种数据同步装置,其特征在于,所述装置,包括:
第一获取模块,用于在所述主数据库故障时,发送查询延迟命令,分别获取所述第一备数据库相对于所述主数据库的第一时间延迟值,以及所述第二备数据库相对于所述主数据库的第二时间延迟值;
发送模块,用于在所述第一时间延迟值和所述第二时间延迟值都为零的情况下,发送全局事务标识获取指令;
第二获取模块,用于获取所述第一备数据库中所述主数据库所对应的第一全局事务标识数值,以及获取所述第二备数据库中所述主数据库所对应的第二全局事务标识数值;
处理模块,用于根据所述第一全局事务标识数值和第二全局事务标识数值,进行数据同步处理。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-7任一项所述的数据同步方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010749698.2A CN114064795A (zh) | 2020-07-30 | 2020-07-30 | 数据同步方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010749698.2A CN114064795A (zh) | 2020-07-30 | 2020-07-30 | 数据同步方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064795A true CN114064795A (zh) | 2022-02-18 |
Family
ID=80227233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010749698.2A Pending CN114064795A (zh) | 2020-07-30 | 2020-07-30 | 数据同步方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064795A (zh) |
-
2020
- 2020-07-30 CN CN202010749698.2A patent/CN114064795A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853263B2 (en) | Geographically-distributed file system using coordinated namespace replication over a wide area network | |
US9495381B2 (en) | Geographically-distributed file system using coordinated namespace replication over a wide area network | |
CN106843749B (zh) | 写入请求处理方法、装置及设备 | |
EP1291779B1 (en) | Control method for a data storage system | |
US20160070625A1 (en) | Providing boot data in a cluster network environment | |
EP2434729A2 (en) | Method for providing access to data items from a distributed storage system | |
CN106062717A (zh) | 一种分布式存储复制系统和方法 | |
CN106960060B (zh) | 一种数据库集群的管理方法及装置 | |
CN111049928B (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
US20130346790A1 (en) | Non-disruptive controller replacement in network storage systems | |
CN106325768B (zh) | 一种双机存储系统及方法 | |
CN112486740B (zh) | 一种多控制器之间的主从关系确认方法、系统及相关装置 | |
CN115794499B (zh) | 一种用于分布式块存储集群间双活复制数据的方法和系统 | |
CN106855869B (zh) | 一种实现数据库高可用的方法、装置和系统 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN112015595B (zh) | 主从数据库的切换方法、计算设备及存储介质 | |
US7194675B2 (en) | Backup method, backup system, disk controller and backup program | |
CN114064795A (zh) | 数据同步方法、装置、电子设备和存储介质 | |
CN112751693A (zh) | 分布式存储系统的数据处理方法、装置及电子设备 | |
JP7179810B2 (ja) | クラスタシステム、クラスタシステムのフェイルオーバー制御方法 | |
JP2001346181A (ja) | データ記憶部共有装置およびプログラム記録媒体 | |
CN111510336B (zh) | 一种网络设备状态管理方法及装置 | |
US20210240351A1 (en) | Remote copy system and remote copy management method | |
CN111367885A (zh) | 数据库管理系统、方法、存储介质及电子设备 | |
CN113032477A (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 |
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 |