掌桥专利:专业的专利平台
掌桥专利
首页

数据同步方法、装置、服务器及存储介质

文献发布时间:2023-06-19 13:45:04


数据同步方法、装置、服务器及存储介质

技术领域

本申请涉及人工智能技术领域,尤其涉及一种数据同步方法、装置、服务器及存储介质。

背景技术

随着大数据时代的来临,数据处理量的激增带动了数据库的发展,一般采用主数据库以及从数据库共同保障数据库的高可靠性,为保障数据安全不丢失,往往数据库的主数据库与从数据库之间采用同步模式进行数据备份,其中,主从数据库同步过程中需要将主数据库的数据更改同步至从数据库。

相关技术中,在从数据库出现故障重启后,通常需要对从数据库中的备份数据进行全同步,这将消耗较多的时间将主数据库上的数据同步至从数据库中,导致降低了数据同步效率。

发明内容

有鉴于此,本申请实施例提供了一种数据同步方法、装置、服务器及存储介质,以解决相关技术中,在从数据库出现故障重启后,通常需要对从数据库中的备份数据进行全同步,这将消耗较多的时间将主数据库上的数据同步至从数据库中,导致降低了数据同步效率的问题。

本申请实施例的第一方面提供了一种数据同步方法,包括:

接收通信连接的从数据库发送的、包括目标操作日志的日志索引标识的数据同步请求,其中,数据同步请求为从数据库基于第一日志文件中的、对应于目标操作日志的日志索引标识生成,第一日志文件用于写入从数据库执行过的操作日志;

从主数据库的第二日志文件中,查找日志索引标识对应的目标操作日志,第二日志文件用于写入主数据库的操作日志;

将第二日志文件中的、目标操作日志及对应执行时间在目标操作日志之后的操作日志发送至从数据库,以使从数据库基于所接收到的操作日志进行部分数据同步。

进一步地,方法还包括:

响应于检测到数据操作指令,执行数据操作指令指示的数据操作,将数据操作对应的目标数据存储至第一存储设备;

针对数据操作对应的操作日志,生成日志索引标识,将日志索引标识和操作日志对应写入第二日志文件;

将相对应的操作日志和日志索引标识向从数据库发送,以触发从数据库基于所接收的操作日志将目标数据备份至第二存储设备且将相对应的操作日志和日志索引标识写入第一日志文件。

进一步地,将数据操作对应的目标数据存储至第一存储设备,包括:

将数据操作对应的目标数据以键值对的形式存储至第一存储设备,其中,键值对的键为目标数据的数据标识和数据类型,键值对的值为目标数据的取值。

进一步地,将相对应的操作日志和日志索引标识向从数据库发送,包括:

在从数据库处于只读状态时,将相对应的操作日志和日志索引标识向从数据库发送。

进一步地,第一存储设备为固态硬盘,以及第二存储设备为固态硬盘,第二日志文件缓存于主数据库侧的固态硬盘中,第一日志文件缓存于从数据库侧的固态硬盘中。

进一步地,主数据库在将操作日志写入第二日志文件时,还将操作日志写入恢复日志;以及方法还包括:

响应于操作日志被同步至从数据库且被从数据库处理完成,将操作日志从恢复日志中删除;

响应于检测到主数据库启动,加载恢复日志,以及执行恢复日志中的操作日志对应的数据操作。

进一步地,从数据库具有多个工作线程,以及若从数据库处于非只读状态,则从数据库可用于接收用户端发送的至少一个数据操作指令,分别生成针对各数据操作指令的指令标识,以及按照指令标识将各数据操作指令分配至各工作线程并行执行。

本申请实施例的第二方面提供了一种数据同步装置,包括:

请求接收单元,用于接收通信连接的从数据库发送的、包括目标操作日志的日志索引标识的数据同步请求,其中,数据同步请求为从数据库基于第一日志文件中的、对应于目标操作日志的日志索引标识生成,第一日志文件用于写入从数据库执行过的操作日志;

日志查找单元,用于从主数据库的第二日志文件中,查找日志索引标识对应的目标操作日志,第二日志文件用于写入主数据库的操作日志;

日志发送单元,用于将第二日志文件中的、目标操作日志及对应执行时间在目标操作日志之后的操作日志发送至从数据库,以使从数据库基于所接收到的操作日志进行部分数据同步。

进一步地,装置还包括指令检测单元、日志存储单元、日志同步单元;

指令检测单元,用于响应于检测到数据操作指令,执行数据操作指令指示的数据操作,将数据操作对应的目标数据存储至第一存储设备;

日志存储单元,用于针对数据操作对应的操作日志,生成日志索引标识,将日志索引标识和操作日志对应写入第二日志文件;

日志同步单元,用于将相对应的操作日志和日志索引标识向从数据库发送,以触发从数据库基于所接收的操作日志将目标数据备份至第二存储设备且将相对应的操作日志和日志索引标识写入第一日志文件,第一日志文件用于写入从数据库的操作日志。

进一步地,指令检测单元具体用于将数据操作对应的目标数据以键值对的形式存储至第一存储设备,其中,键值对的键为目标数据的数据标识和数据类型,键值对的值为目标数据的取值。

进一步地,日志同步单元具体用于在从数据库处于只读状态时,将相对应的操作日志和日志索引标识向从数据库发送。

进一步地,第一存储设备为固态硬盘,以及第二存储设备为固态硬盘,第二日志文件缓存于主数据库侧的固态硬盘中,第一日志文件缓存于从数据库侧的固态硬盘中。

进一步地,若主数据库在将操作日志写入第二日志文件时,还将操作日志写入恢复日志,则装置还包括日志删除单元、数据恢复单元;

日志删除单元,用于响应于操作日志被同步至从数据库且被从数据库处理完成,将操作日志从恢复日志中删除;

数据恢复单元,用于响应于检测到主数据库启动,加载恢复日志,以及执行恢复日志中的操作日志对应的数据操作。

进一步地,从数据库具有多个工作线程,以及若从数据库处于非只读状态,则从数据库可用于接收用户端发送的至少一个数据操作指令,分别生成针对各数据操作指令的指令标识,以及按照指令标识将各数据操作指令分配至各工作线程并行执行。

本申请实施例的第三方面提供了一种服务器,包括存储器、处理器以及存储在存储器中并可在服务器上运行的计算机程序,处理器执行计算机程序时实现第一方面提供的数据同步方法的各步骤。

本申请实施例的第四方面提供了一种存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时实现第一方面提供的数据同步方法的各步骤。

实施本申请实施例提供的一种数据同步方法、装置、服务器及存储介质具有以下有益效果:在从数据库出现故障重启时,从数据库可以基于从数据库侧的第一日志文件中的日志索引标识生成数据同步请求,以及将数据同步请求向主数据库发送,实现主数据库将主数据库侧的第二日志文件中的、日志索引标识对应的操作日志及对应执行时间在该操作日志之后的操作日志一并向从数据库发送,从而使得从数据库可以基于所接收到的操作日志进行部分数据同步。在从数据库出现故障重启时,从数据库仅对部分数据进行同步即可,比及对从数据库中的所有数据进行同步,有助于提高数据同步效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种数据同步方法的实现流程图;

图2是本申请实施例提供的另一种数据同步方法的实现流程图;

图3是本申请实施例提供的一种数据同步装置的结构框图;

图4是本申请实施例提供的一种服务器的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。

人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

本申请实施例中,基于人工智能技术,以实现对主从数据库之间进行数据同步。

本申请实施例所涉及的数据同步方法,可以由服务器执行。数据同步方法由服务器执行时,执行主体为服务器。

需要指出的是,上述服务器可以包括但不限于服务器、手机、平板或可穿戴智能设备等。另外,上述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

请参阅图1,图1示出了本申请实施例提供的一种数据同步方法的实现流程图,包括:

步骤101,接收通信连接的从数据库发送的、包括目标操作日志的日志索引标识的数据同步请求。

其中,数据同步请求为从数据库基于第一日志文件中的、对应于目标操作日志的日志索引标识生成,第一日志文件用于写入从数据库执行过的操作日志。实践中,从数据库可以直接采用日志索引标识生成数据同步请求,也可以采用日志索引标识和其它的信息的组合生成数据同步请求。

其中,上述数据同步请求通常是用于请求同步数据的信息,数据同步请求中可以包括目标操作日志的日志索引标识。本实施例对数据同步请求的具体形式不做限定。

另外,实践中,从数据库侧的第一日志文件中的各操作日志通常是按照执行时间从先往后的顺序被写入。

其中,上述目标操作日志可以是第一日志文件中的任一操作日志。实践中,目标操作日志通常为第一日志文件中的最后被写入的操作日志。

在本实施例中,上述数据同步方法的执行主体通常为主数据库。主数据库通常是用于存储数据的服务器。这里,从数据库可以基于从数据库侧的第一日志文件中的目标操作日志的日志索引标识,生成包括该日志索引标识的数据同步请求,然后通过网络将该数据同步请求向主数据库发送。这样,主数据库可以接收从数据库通过网络发送的该数据同步请求。

步骤102,从主数据库的第二日志文件中,查找日志索引标识对应的目标操作日志。

其中,第二日志文件用于写入主数据库的操作日志,。第二日志文件通常是用于记录主数据库的操作日志的日志文件。实践中,第二日志文件中通常是按照执行时间顺序记录主数据库产生的各条操作日志。

这里,主数据库在接收到从数据库发送的数据同步请求后,可以采用数据同步请求中的日志索引标识,从主数据库侧的第二日志文件中查找到与该日志索引标识对应的操作日志。为了便于描述,可以将该查找到的操作日志,记作目标操作日志。

实践中,第二日志文件通常缓存于主数据库侧的固态硬盘中,第一日志文件缓存于从数据库侧的固态硬盘中。需要指出的是,由于以固态硬盘的方式进行存储,可以便于对存储空间进行扩充且成本较低,第一日志文件和第二日志文件均存储于固态硬盘中,可以节约成本。

步骤103,将第二日志文件中的、目标操作日志及对应执行时间在目标操作日志之后的操作日志发送至从数据库,以使从数据库基于所接收到的操作日志进行部分数据同步。

这里,主数据库可以将第二日志文件中的目标操作日志及对应执行时间在目标操作日志之后的操作日志,都发送至从数据库。这样,从数据库可以接收到至少一个操作日志,以及基于所接收到的操作日志进行部分数据同步。

本实施例提供的方法,在从数据库出现故障重启时,从数据库可以基于从数据库侧的第一日志文件中的日志索引标识生成数据同步请求,以及将数据同步请求向主数据库发送,实现主数据库将主数据库侧的第二日志文件中的、日志索引标识对应的操作日志及对应执行时间在该操作日志之后的操作日志一并向从数据库发送,从而使得从数据库可以基于所接收到的操作日志进行部分数据同步。在从数据库出现故障重启时,从数据库仅对部分数据进行同步即可,比及对从数据库中的所有数据进行同步,有助于提高数据同步效率。

请参阅图2,图2是本申请实施例提供的数据同步方法的实现流程图。本实施例提供的数据同步方法,可以包括以下步骤:

步骤201,响应于检测到数据操作指令,执行数据操作指令指示的数据操作,将数据操作对应的目标数据存储至第一存储设备。

其中,数据操作指令通常是用于指示数据操作的指令。数据操作指令所指示的数据操作可以为数据定义语言(Data Definition Language,DDL)操作、数据操纵语言(DataManipulation Language,DML)操作等。上述目标数据通常是执行数据操作所产生的数据。

上述第一存储设备通常是用于存储主数据库对应的数据。

这里,用户可以通过用户终端向主数据库发送数据操作指令。这样,主数据库可以检测到用户终端发送的数据操作指令,然后执行数据操作指令所指示的数据操作。此外,主数据库可以将执行数据操作所产生的数据存储至第一存储设备。

步骤202,针对数据操作对应的操作日志,生成日志索引标识,将日志索引标识和操作日志对应写入第二日志文件。

这里,主数据库可以针对每个操作日志生成对应的日志索引标识。然后,将日志索引标识与操作日志对应写入第二日志文件中。

步骤203,将相对应的操作日志和日志索引标识向从数据库发送,以触发从数据库基于所接收的操作日志将目标数据备份至第二存储设备且将相对应的操作日志和日志索引标识写入第一日志文件。

其中,第一日志文件用于写入从数据库的操作日志。第一日志文件通常是用于记录从数据库的操作日志的日志文件。实践中,第一日志文件中通常是按照时间顺序记录从数据库所执行过的各操作日志。

其中,上述第二存储设备通常用于存储从数据库对应的数据。

这里,主数据库可以将相对应的操作日志和日志索引标识一并向从数据库发送。这样,从数据库可以执行操作日志指向的数据操作,以及将数据操作对应的目标数据备份存储至第二存储设备,同时,从数据库可以将相对应的操作日志和日志索引标识写入第一日志文件。

步骤204,接收通信连接的从数据库发送的、包括目标操作日志的日志索引标识的数据同步请求。

其中,数据同步请求为从数据库基于第一日志文件中的、对应于目标操作日志的日志索引标识生成,第一日志文件用于写入从数据库执行过的操作日志。

步骤205,从主数据库的第二日志文件中,查找日志索引标识对应的目标操作日志。

其中,第二日志文件用于写入主数据库的操作日志。

步骤206,将第二日志文件中的、目标操作日志及对应执行时间在目标操作日志之后的操作日志发送至从数据库,以使从数据库基于所接收到的操作日志进行部分数据同步。

在本实施例中,步骤204-206的具体操作与图1所示的实施例中步骤101-103的操作基本相同,在此不再赘述。

本实施例中,主数据库中的操作日志与日志索引标识对应写入第二日志文件,之后又将该操作日志与日志索引标识对应写入从数据库的第一日志文件,可以实现从数据库基于第一日志文件中的日志索引标识,生成包括日志索引标识的数据同步请求,以及向主数据库发送该包括日志索引标识的数据同步请求,以获取日志索引标识对应的操作日志及之后的操作日志,实现对从数据库中的部分数据进行同步。

在一些可选的实现方式中,将数据操作对应的目标数据存储至第一存储设备,可以包括:将数据操作对应的目标数据以键值对的形式存储至第一存储设备。

其中,键值对的键为目标数据的数据标识和数据类型,键值对的值为目标数据的取值。

这里,以键值对的形式对目标数据进行存储的目的在于,可以实现与Redis协议进行兼容,以及提高对数据库中的数据进行查询的效率。

在一些可选的实现方式中,第一存储设备为固态硬盘,以及第二存储设备为固态硬盘,第二日志文件缓存于主数据库侧的固态硬盘中,第一日志文件缓存于从数据库侧的固态硬盘中。

需要指出的是,以固态硬盘的方式进行存储,可以便于对存储空间进行扩充。比及相关技术中采用内存进行存储,可以极大地降低成本。

在本实施例的一些可选的实现方式中,将相对应的操作日志和日志索引标识向从数据库发送,可以包括:

在从数据库处于只读状态时,将相对应的操作日志和日志索引标识向从数据库发送。

这里,从数据库为只读状态时,表明从数据库当前处于适合数据备份的状态。此时向从数据库发送操作日志及日志索引标识,可以实现从数据库对操作日志进行有效处理。

在本申请的各个实施例的可选的实现方式中,从数据库具有多个工作线程,以及若从数据库处于非只读状态,则从数据库可用于接收用户端发送的至少一个数据操作指令,分别生成针对各数据操作指令的指令标识,以及按照指令标识将各数据操作指令分配至各工作线程并行执行。

这里,在某些情况下,如,主数据库故障时,从数据库可以处于非只读状态,此时,从数据库可以充当主数据库,接收用户端发送的数据操作指令,以及对数据操作指令进行处理。

这里,从数据库可以在需要的时候进行角色转换,转换为主数据库,有助于实现及时对用户的数据操作指令进行响应,实用性较高。另外,由于从数据库具有多个工作线程,可以实现并行对多个数据操作指令进行执行,有助于提高数据处理效率。

在本申请的各个实施例的可选的实现方式中,若主数据库在将操作日志写入第二日志文件时,还将操作日志写入恢复日志,则上述数据同步方法还可以包括如下步骤一和步骤二中的至少一项。

其中,恢复日志通常是用于记录未被备份的操作日志的日志文件。这里,在将操作日志写入第二日志文件时,主数据库可以同时将该操作日志写入恢复日志中。

步骤一,响应于操作日志被同步至从数据库且被从数据库处理完成,将操作日志从恢复日志中删除。

这里,在操作日志被从数据库处理完成时,主数据库可以将该操作日志从恢复日志中删除。恢复日志中始终记录着尚未被从数据库处理完成的操作日志。

步骤二,响应于检测到主数据库启动,加载恢复日志,以及执行恢复日志中的操作日志对应的数据操作。

这里,主数据库可以在启动时,自动加载恢复日志,以及逐条执行恢复日志中的操作日志对应的数据操作。

需要指出的是,主数据库在重启时,只需加载恢复日志并对恢复日志中记录的少量操作日志进行处理即可,所需消耗的时间较短,比及主数据库采用整个第二日志文件进行数据恢复,可以极大地提高主数据库的数据恢复效率。

在一些可选的实现方式中,上述数据同步方法还可以包括如下步骤三。

步骤三,若主数据库为新切换的主数据库,则将主数据库对应的第二日志文件的偏移量发送至从数据库,以使从数据库基于接收到的偏移量进行部分数据同步。

这里,主数据库变更后,原来的主数据库的第二日志文件直接用于记录新主数据库的操作日志。在该主数据库为新切换得到的主数据库时,新切换的主数据库可以采用原第二日志文件中的操作日志的偏移量与从数据库之间进行一次部分数据同步。

这里,从数据库可以基于接收到的偏移量进行部分数据同步,可以进一步提高主数据库与从数据库之间的数据同步效率。

需要指出的是,若从数据库与主数据库都发生变更,则主数据库与从数据库之间需要进行数据全同步。

请参阅图3,图3是本申请实施例提供的一种数据同步装置300的结构框图。本实施例中该数据同步装置包括的各单元用于执行图1-图2对应的实施例中的各步骤。具体请参阅图1-图2以及图1-图2所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图3,数据同步装置300包括:

请求接收单元301,用于接收通信连接的从数据库发送的、包括目标操作日志的日志索引标识的数据同步请求,其中,数据同步请求为从数据库基于第一日志文件中的、对应于目标操作日志的日志索引标识生成,第一日志文件用于写入从数据库执行过的操作日志;

日志查找单元302,用于从主数据库的第二日志文件中,查找日志索引标识对应的目标操作日志,第二日志文件用于写入主数据库的操作日志;

日志发送单元303,用于将第二日志文件中的、目标操作日志及对应执行时间在目标操作日志之后的操作日志发送至从数据库,以使从数据库基于所接收到的操作日志进行部分数据同步。

这里,从数据库可以基于从数据库侧的第一日志文件中的目标操作日志的日志索引标识,生成包括该日志索引标识的数据同步请求,然后,通过网络将该数据同步请求向主数据库发送。这样,主数据库可以接收从数据库通过网络发送的数据同步请求。然后,主数据库可以采用数据同步请求中的日志索引标识,从第二日志文件中查找到与该日志索引标识对应的操作日志。为了便于描述,可以将该查找到的操作日志,记作目标操作日志。主数据库可以将第二日志文件中的目标操作日志及对应执行时间在目标操作日志之后的操作日志,都发送至从数据库。这样,从数据库可以接收到至少一个操作日志,以及基于所接收到的操作日志进行部分数据同步。

作为本申请一实施例,装置还包括指令检测单元、日志存储单元、日志同步单元(图中未示出)。其中,

指令检测单元,用于响应于检测到数据操作指令,执行数据操作指令指示的数据操作,将数据操作对应的目标数据存储至第一存储设备;

日志存储单元,用于针对数据操作对应的操作日志,生成日志索引标识,将日志索引标识和操作日志对应写入第二日志文件;

日志同步单元,用于将相对应的操作日志和日志索引标识向从数据库发送,以触发从数据库基于所接收的操作日志将目标数据备份至第二存储设备且将相对应的操作日志和日志索引标识写入第一日志文件。

这里,用户可以通过用户终端向主数据库发送数据操作指令。这样,主数据库可以检测到用户终端发送的数据操作指令,然后执行数据操作指令所指示的数据操作。此外,主数据库可以将执行数据操作所产生的数据存储至第一存储设备。之后,主数据库可以针对每个操作日志生成对应的日志索引标识。然后,将日志索引标识与操作日志对应写入第二日志文件中。最后,主数据库可以将相对应的操作日志和日志索引标识一并向从数据库发送。这样,从数据库可以执行操作日志指向的数据操作,以及将数据操作对应的目标数据备份存储至第二存储设备,同时,从数据库可以将相对应的操作日志和日志索引标识写入第一日志文件。

作为本申请一实施例,指令检测单元具体用于将数据操作对应的目标数据以键值对的形式存储至第一存储设备,其中,键值对的键为目标数据的数据标识和数据类型,键值对的值为目标数据的取值。

这里,以键值对的形式对目标数据进行存储的目的在于,可以实现与Redis协议进行兼容,以及提高对数据库中的数据进行查询的效率。

作为本申请一实施例,日志同步单元具体用于在从数据库处于只读状态时,将相对应的操作日志和日志索引标识向从数据库发送。

这里,从数据库为只读状态时,表明从数据库当前处于适合数据备份的状态。此时向从数据库发送操作日志及日志索引标识,可以实现从数据库对操作日志进行有效处理。

作为本申请一实施例,第一存储设备为固态硬盘,以及第二存储设备为固态硬盘,第二日志文件缓存于主数据库侧的固态硬盘中,第一日志文件缓存于从数据库侧的固态硬盘中。

这里,以固态硬盘的方式进行存储,可以便于对存储空间进行扩充。比及相关技术中采用内存进行存储,可以极大地降低成本。

作为本申请一实施例,若主数据库在将操作日志写入第二日志文件时,还将操作日志写入恢复日志,则装置还包括日志删除单元、数据恢复单元(图中未示出)。其中,

日志删除单元,用于响应于操作日志被同步至从数据库且被从数据库处理完成,将操作日志从恢复日志中删除;

数据恢复单元,用于响应于检测到主数据库启动,加载恢复日志,以及执行恢复日志中的操作日志对应的数据操作。

这里,在操作日志被从数据库处理完成时,主数据库可以将该操作日志从恢复日志中删除。恢复日志中始终记录着尚未被从数据库处理完成的操作日志。然后,这里,主数据库可以在启动时,自动加载恢复日志,以及逐条执行恢复日志中的操作日志对应的数据操作。需要指出的是,主数据库在重启时,只需加载恢复日志并对恢复日志中记录的少量操作日志进行处理即可,所需消耗的时间较短,比及主数据库采用整个第二日志文件进行数据恢复,可以极大地提高主数据库的数据恢复效率。

作为本申请一实施例,从数据库具有多个工作线程,以及若从数据库处于非只读状态,则从数据库可用于接收用户端发送的至少一个数据操作指令,分别生成针对各数据操作指令的指令标识,以及按照指令标识将各数据操作指令分配至各工作线程并行执行。

这里,在某些情况下,如,主数据库故障时,从数据库可以处于非只读状态,此时,从数据库可以充当主数据库,接收用户端发送的数据操作指令,以及对数据操作指令进行处理。从数据库可以在需要的时候进行角色转换,转换为主数据库,有助于实现及时对用户的数据操作指令进行响应,实用性较高。另外,由于从数据库具有多个工作线程,可以实现并行对多个数据操作指令进行执行,有助于提高数据处理效率。

作为本申请一实施例,装置还包括偏移同步单元(图中未示出)。其中,偏移同步单元用于:若主数据库为新切换的主数据库,则将主数据库对应的第二日志文件的偏移量发送至从数据库,以使从数据库基于接收到的偏移量进行部分数据同步。

这里,主数据库变更后,原来的主数据库的第二日志文件直接用于记录新主数据库的操作日志。在该主数据库为新切换得到的主数据库时,新切换的主数据库可以采用原第二日志文件中的操作日志的偏移量与从数据库之间进行一次部分数据同步。从数据库可以基于接收到的偏移量进行部分数据同步,可以进一步提高主数据库与从数据库之间的数据同步效率。需要指出的是,若从数据库与主数据库都发生变更,则主数据库与从数据库之间需要进行数据全同步。

本实施例提供的装置,在从数据库出现故障重启时,从数据库可以基于从数据库侧的第一日志文件中的日志索引标识生成数据同步请求,以及将数据同步请求向主数据库发送,实现主数据库将主数据库侧的第二日志文件中的、日志索引标识对应的操作日志及对应执行时间在该操作日志之后的操作日志一并向从数据库发送,从而使得从数据库可以基于所接收到的操作日志进行部分数据同步。在从数据库出现故障重启时,从数据库仅对部分数据进行同步即可,比及对从数据库中的所有数据进行同步,有助于提高数据同步效率。

应当理解的是,图3示出的数据同步装置的结构框图中,各单元用于执行图1-图2对应的实施例中的各步骤,而对于图1-图2对应的实施例中的各步骤已在上述实施例中进行详细解释,具体请参阅图1-图2以及图1-图2所对应的实施例中的相关描述,此处不再赘述。

图4是本申请另一实施例提供的一种服务器的结构框图。如图4所示,该实施例的服务器400包括:处理器401、存储器402以及存储在存储器402中并可在处理器401上运行的计算机程序403,例如数据同步方法的程序。处理器401执行计算机程序403时实现上述各个数据同步方法各实施例中的步骤,例如图1所示的步骤101至步骤103,或者图2所示的步骤201至步骤206。或者,处理器401执行计算机程序403时实现上述图3对应的实施例中各单元的功能,例如,图3所示的单元301至303的功能,具体请参阅图3对应的实施例中的相关描述,此处不赘述。

示例性的,计算机程序403可以被分割成一个或多个单元,一个或者多个单元被存储在存储器402中,并由处理器401执行,以完成本申请。一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序403在服务器400中的执行过程。例如,计算机程序403可以被分割成请求接收单元,日志查找单元,日志发送单元,各单元具体功能如上。

服务器可以包括,但不仅限于,处理器401、存储器402。本领域技术人员可以理解,图4仅仅是服务器400的示例,并不构成对服务器400的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如转台设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器401可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器402可以是服务器400的内部存储单元,例如服务器400的硬盘或内存。存储器402也可以是服务器400的外部存储设备,例如服务器400上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器402还可以既包括服务器400的内部存储单元也包括外部存储设备。存储器402用于存储计算机程序以及转台设备所需的其他程序和数据。存储器402还可以用于暂时地存储已经输出或者将要输出的数据。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。其中,计算机可读存储介质可以是非易失性的,也可以是易失性的。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。

以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

相关技术
  • 多数据源数据同步方法、应用服务器及计算机可读存储介质
  • 数据库的数据同步方法、服务器、电子设备、存储介质
技术分类

06120113792854