CN109656936A - 数据同步方法、装置、计算机设备和存储介质 - Google Patents
数据同步方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109656936A CN109656936A CN201811451848.0A CN201811451848A CN109656936A CN 109656936 A CN109656936 A CN 109656936A CN 201811451848 A CN201811451848 A CN 201811451848A CN 109656936 A CN109656936 A CN 109656936A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- new information
- information
- new
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据同步方法、装置、计算机设备和存储介质。该方法包括:获取mysql数据库的数据更新信息,将数据更新信息推送至异构数据库,以指示异构数据库根据数据更新信息进行数据更新,收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。采用该方法,能够使得mysql数据库数据更新和异构数据库更新在一个完整事务里,从而达到按需数据的一致性,大大提高了数据同步的准确性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据同步方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展和日渐便利的信息传递,人们对于数据库的访问的需求量越来越大,数据库访问的要求也越来越高。
例如,在日常的生活和工作中,常常需要用户所访问的数据库能够支持高并发访问,以满足用户的访问需要。但是常用的mysql数据库无法满足高并发访问的需求,因此常见的做法是将mysql数据库同步至其他数据库中以支撑用户的高并发访问。传统技术中,采用异步推送模式,通过使用第三方工具解析mysql数据库的日志得到mysql数据库的更新数据,并将mysql数据库的更新数据通过异构数据库的访问接口推送至异构数据库进行更新,以实现异构数据库与mysal数据库的数据同步。
然而,传统的数据同步方法采用了异步推送模式,常常导致数据更新不及时,从而使得mysal数据库与异构数据库的数据存在不一致的情况。
发明内容
基于此,有必要针对上述技术问题,提供一种能够保证数据同步一致性的数据同步方法、装置、计算机设备和存储介质。
第一方面,本申请实施例提供一种数据同步方法,所述方法包括:
获取mysql数据库的数据更新信息;
将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新;
接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
在其中一个实施例中,所述获取mysql数据库的数据更新信息,包括:
获取mysql数据库的日志数据;
根据所述日志数据确定所述数据更新信息。
在其中一个实施例中,所述将所述数据更新信息推送至异构数据库,包括:
获取数据更新间隔时间,所述数据更新间隔时间用于表征当前时刻与上一次数据更新的时刻之间的间隔时长;
根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库。
在其中一个实施例中,所述根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库,包括:
若所述数据更新间隔时间小于或等于所述时间阈值,则将所述数据更新信息推送至所述异构数据库。
在其中一个实施例中,所述根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库,还包括:
若所述数据更新间隔时间大于所述时间阈值,则将当前处理的数据更新信息进行缓存处理,作为待更新数据信息;
获取所述异构数据库的当前更新状态;
若所述异构数据库的当前更新状态为空闲状态,则将所述待更新数据信息推送至所述异构数据库以进行更新;
若所述异构数据库的当前更新状态为处理中,则中止将所述待更新数据信息推送至所述异构数据库。
在其中一个实施例中,所述将所述数据更新信息推送至异构数据库,包括:
获取数据更新记录;所述数据更新记录用于标记所述数据更新信息是否已被处理;
根据所述数据更新记录将所述数据更新信息推送至所述异构数据库。
在其中一个实施例中,所述根据所述数据更新记录将所述数据更新信息推送至所述异构数据库,包括:
若所述数据更新记录中不存在所述数据更新信息的处理记录,则将所述数据更新信息推送至所述异构数据库。
第二方面,本申请实施例提供一种数据同步装置,所述装置包括:获取模块、发送模块和接收模块;
所述获取模块,用于获取mysql数据库的数据更新信息;
所述发送模块,用于将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新;
所述接收模块,用于接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
第三方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取mysql数据库的数据更新信息;
将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新;
接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取mysql数据库的数据更新信息;
将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新;
接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
上述数据同步方法、装置、计算机设备和存储介质,通过计算机设备首先获取mysql数据库的数据更新信息,并将数据更新信息推送至异构数据库,以指示异构数据库根据数据更新信息进行数据更新,并在异构数据库完成数据更新之后,接收异构数据库返回的更新成功信息,从而将更新成功信息推送给mysql数据库,以使得mysql数据库提交数据同步事务,从而完成数据同步。采用本申请实施例的方法,由于计算机设备是在异构数据库返回更新成功信息之后,才使得mysql数据库提交数据同步事务,其能够避免mysql数据库的数据同步和异构数据库的同步不在一个完整的事务中,所导致的数据同步不及时和数据同步不统一的情况,其能够使得mysql数据库数据更新和异构数据库更新在一个完整事务里,从而达到按需数据的一致性,大大提高了数据同步的准确性。
附图说明
图1为一个实施例中计算机设备的内部结构图;
图2为一个实施例提供的数据同步方法的流程示意图;
图3为另一个实施例提供的数据同步方法的流程示意图;
图4为又一个实施例提供的数据同步方法的流程示意图;
图5为又一个实施例提供的数据同步方法的流程示意图;
图6为一个实施例提供的数据同步装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据同步方法,可以适用于图1所示的计算机设备,该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储下述实施例中所涉及的mysql数据库的信息和异构数据库的信息,可选地,还可以存储数据库的日志数据,有关各个数据库的描述可以参照下述方法实施例的内容。该计算机设备的网络接口可以用于与外部的其他设备通过网络连接通信。可选的,该计算机设备可以是服务器,可以是PC,可以是个人数字助理,还可以是其他的终端设备,例如PAD、手机等等,还可以是云端或者远程服务器,本实施例对计算机设备的具体形式并不做限定。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。当然,输入装置和显示屏也可以不属于计算机设备的一部分,可以是计算机设备的外接设备。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
随着计算机技术的发展和日渐便利的信息传递,人们对于数据库的访问的需求量越来越大,数据库访问的要求也越来越高。通常人们在将mysql数据库同步至其他数据库中时,采用异步推送模式,通过使用第三方工具解析mysql数据库的日志得到mysql数据库的更新数据,并将mysql数据库的更新数据通过异构数据库的访问接口推送至异构数据库进行更新,以实现异构数据库与mysal数据库的数据同步。然而,传统的异步推送模式的数据同步方法,常常导致数据更新不及时,从而使得mysal数据库与异构数据库的数据存在不一致的情况。
本申请实施例所采用的数据同步方法,装置、计算机设备和可读存储介质,通过计算机设备将mysql数据库的更新数据推送至异构数据库,并根据异构数据库返回的更新成功信息指示mysql数据库提交事务已完成数据更新,从而确保了数据同步的准确性。
下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
需要说明的是,下述方法实施例的执行主体可以是数据同步装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为上述计算机设备的部分或者全部。下述方法实施例以执行主体为计算机设备为例进行说明。
图2为一个实施例提供的数据同步方法的流程示意图。本实施例涉及的是计算机设备根据异构数据库返回的更新成功信息指示mysql数据库提交数据同步事务,已完成数据同步的具体过程。如图2所示,该方法包括:
S101、获取mysql数据库的数据更新信息。
具体的,当mysql数据库发生更新时,计算机设备可以通过读取mysql数据库的数据更新信息,或者通过其他第三方工具接收mysql数据库的数据更新信息。其中,该数据更新信息能够表征mysql数据库的数据更新情况,包括数据更新内容和数据更新时间。
需要说明的是,执行本申请实施例的前提是,mysql数据库需要开启半同步功能。
S102、将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新。
具体的,计算机设备将所获取到的数据更新信息发送至异构数据库,当异构数据库接收到该数据更新信息之后,则根据该数据更新信息对异构数据库的数据进行更新,以使得异构数据库与mysql数据库的数据更新保持一致。
需要说明的是,上述异构数据库为与mysql数据库具有不同的站点、不同的模式和不同的数据库管理***的软件,例如elasticsearch,mongodb。
S103、接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
具体的,当异构数据库依据上述数据更新信息完成数据更新之后,其可以发送用于表征异构数据库的数据更新成功的更新成功信息。当计算机设备接收到异构数据库返回的这个更新成功信息时,将该更新成功信息发送至mysql数据库,因此mysql数据库接就可以根据接收到该异构数据库返回的更新成功信息,确认异构数据库中的数据已经与自身保持相同的数据更新状态,因此mysql数据库提交数据同步事务,从而完成完整的数据同步操作。
需要说明的是,本申请实施例的执行主体可以是单独的计算机设备,也可以是存储mysql数据库和/或异构数据库的计算机设备,对此本申请实施例并不做限定。
本实施例中,计算机设备首先获取mysql数据库的数据更新信息,并将数据更新信息推送至异构数据库,以指示异构数据库根据数据更新信息进行数据更新,并在异构数据库完成数据更新之后,接收异构数据库返回的更新成功信息,从而将更新成功信息推送给mysql数据库,以使得mysql数据库提交数据同步事务,从而完成数据同步。采用该方法,由于计算机设备是在异构数据库返回更新成功信息之后,才使得mysql数据库提交数据同步事务,其能够避免mysql数据库的数据同步和异构数据库的同步不在一个完整的事务中,所导致的数据同步不及时和数据同步不统一的情况,其能够使得mysql数据库数据更新和异构数据库更新在一个完整事务里,从而达到按需数据的一致性,大大提高了数据同步的准确性。
可选地,在上述图2所示的实施例基础上,上述步骤S101具体可以包括:获取mysql数据库的日志数据,根据所述日志数据确定所述数据更新信息。
具体的,计算机设备可以读取mysql数据库的日志数据,即binlog日志数据,并将该binlog日志数据进行解析,从而确定mysql数据库的数据更新信息。需要说明的是,binlo日志数据是用来记录mysql内部增、删、改、查等对mysql数据库有内容变更的记录,即mysql数据库的改动,而对mysql数据库的查询select或show等则不会被binlog日志所记录。本实施例中,计算机设备通过获取mysql数据库的日志数据,并对该日志数据进行解析从而确定数据更新信息,进而实现了在不侵入当前程序代码的基础上,就能够通过日志数据确定出数据更新信息,使得异构数据库的数据同步不会影响mysql数据库的运行,因此无需占用额外的***资源即可以确定数据更新信息,节约了***的开销。
图3为又另一个实施例提供的数据同步方法的流程示意图。本实施例涉及的是计算机设备将所述数据更新信息推送至异构数据库的一种实现过程。可选地,如图3所示,在上述各实施例的基础上,步骤S102具体可以包括:
S201、获取数据更新间隔时间,所述数据更新间隔时间用于表征当前时刻与上一次数据更新的时刻之间的间隔时长。
具体的,计算机设备能够获取数据更新间隔时间,该数据更新间隔时间用于表征当前时刻与上一次数据更新的时刻之间的间隔时长。例如,计算机设备可以获取数据更新信息,由于该数据更新信息中包括数据更新内容和数据更新时间,因此计算机设备能够根据最晚的一条数据更新信息中的更新时间和当前时刻,确定出数据更新间隔时间。
S202、根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库。
具体的,计算机设备根据所获取的更新间隔时间和预设的时间阈值,将数据更新信息推送至所述异构数据库,以实现数据更新。
可选地,该步骤S202的一种可能的实现方式可以下述如图4所示,具体可以包括:
S301、判断所述数据更新间隔时间是否小于或等于预设的时间阈值。
具体的,计算机设备首先将上述数据更新间隔时间和预设的时间阈值进行对比,并判断该数据更新间隔时间是否小于或等于该上述时间阈值。需要说明的是,该时间阈值为预设的时间阈值,其可以为自定义的数值,也可以为根据经验确定的,对此本实施例不做限定。
S302、若是,则确定将该数据更新信息推送至所述异构数据;若否,则将当前处理的数据更新信息进行缓存处理,作为待更新数据信息。
具体的,若数据更新间隔时间小于或者等于上述时间阈值,即当前时刻与上一次数据更新时间的时间间隔小于或等于上述时间阈值,则确认当前的数据更新为正常状态,因此将当前处理的数据更新信息继续推送至异构数据库以进行数据更新;若数据更新间隔时间大于上述时间阈值,即当前时刻与上一次数据更新时间的时间间隔大于上述时间阈值,则确认当前的数据更新为异常状态,例如肯能发生宕机,无法正常更新数据,此时,计算机设备将将当前处理的数据更新信息,进行缓存处理,作为待更新数据信息以备再次更新时使用。此时通常***会重置,当***重置之后,计算机设备会首先对上述缓存处理的数据更新信息进行操作。
S303、获取所述异构数据库的当前更新状态,若所述异构数据库的当前更新状态为空闲状态,则将所述待更新数据信息推送至所述异构数据库以进行更新;若所述异构数据库的当前更新状态为处理中,则中止将所述待更新数据信息推送至所述异构数据库。
具体的,计算机设备可以获取通过预设的接口获取异构数据库的当前更新状态,若异构数据库处于空闲状态,即没有正在处理的更新数据,则计算机设备可以将上述存储在缓存中的待更新数据信息推送至异构数据库,以使得异构数据库进行数据更新。若异构数据库的当前更新状态为处理中,即异构数据库中正在进行数据更新,例如计算机设备正在处理上一条数据更新信息,则向该计算机设备反馈其当前更新状态为处理中,因此,计算机设备则终止将其待更新数据信息推送至异构数据库。可选地,其可以等待预设的时间之后再次获取异构数据库的当前更新状态,直至异构数据库处于空闲状态时,将待更新数据信息推送至异构数据库,以完成异构数据库的数据更新为止。
上述S301-S303所示的实现方式中,计算机设备能够通过判断数据更新间隔时间是否小于或等于预设的时间阈值,并且当数据更新间隔时间小于或等于时间阈值时,则确定将该数据更新信息推送至异构数据;当数据更新间隔时间大于时间阈值时,则确将当前处理的数据更新信息进行缓存处理,作为待更新数据信息,从而能够使得在异构数据库发生异常的情况下,避免数据丢失,进而确保了数据同步的准确性;并且计算机还能获取异构数据库的当前更新状态,在异构数据库的当前更新状态为空闲状态的情况下,将待更新数据信息推送至异构数据库以进行更新以及在异构数据库的当前更新状态为处理中的情况下,将中止将待更新数据信息推送至异构数据库,并且可以通过多次获取异构数据库的当前更新状态,直至当前更新状态为空闲状态时将待更新数据信息推送至异构数据库以完成数据更新,从而能够避免异构数据库在数据更新时由于数据库繁忙所导致的更新异常,因此进一步确保了数据同步的准确性。
上述图3所示的实施例中,计算机设备能够获取数据更新间隔时间,并根据数据更新间隔时间和预设的时间阈值,将数据更新信息推送至异构数据库,其中,数据更新间隔时间用于表征当前时刻与上一次数据更新的时刻之间的间隔时长。本实施例所采用的方法,通过数据更新间隔时间和预设的时间阈值,将数据更新信息推送至异构数据库,因此同时确保了异构数据库的数据更新的及时性以及准确性。
图5为又一个实施例提供的数据同步方法的流程示意图。本实施例涉及的是计算机设备将所述数据更新信息推送至异构数据库的另一种可能的实现过程。可选地,如图5所示,在上述各实施例的基础上,步骤S102具体可以包括:
S401、获取数据更新记录;所述数据更新记录用于标记所述数据更新信息是否已被处理。
具体的,计算机设备在每完成一次数据同步之后,将其已经更新过的数据更新信息标记为已被处理,而已经被读取进行数据更新,但是并未完成完整的数据同步事务的数据更新信息则不会被标记已被处理,也就不会存在与数据更新记录中。
S402、根据所述数据更新记录将所述数据更新信息推送至所述异构数据库。
具体的,计算机设备根据该数据更新记录,将数据更新信息推送至异构数据库,以使得异构数据库能够根据所推送的数据更新信息进行数据更新。
可选地,本步骤S402的一种可能的实现方式为:计算机设备判断上述数据更新记录中是否存在该数据更新信息,若存在,则计算机设备确定本条数据更新信息已经实现数据同步,因此不会对该数据更新信息做重复的数据更新;若不存在,则计算机设备确定该数据更新信息在异构数据库中还未完成数据更新,即本条数据更新信息没有完成数据同步,例如,在发生故障时,该条数据更新信息虽然已经被读取,但是有可能未完成相应的数据更新,则该条数据更新信息则会被存储在缓存中,此时,计算机设备在重新启动时首先处理该存储在缓存中的数据更新信息,并通过判断数据更新记录中是否存在该数据更新信息,确定是否对该数据更新信息推送至异构数据库,以实现数据更新。该实现方式中,计算机设备通过判断数据更新记录中是否存在该数据更新信息,从而在数据更新记录中不存在该数据更新信息时,确定出该数据更新信息还没有完成相应的数据同步,因此再将该数据更新信息推送至异构数据库以完成异构数据库的数据更新,进一步提高了数据同步的准确性;而在数据更新记录中存在该数据更新信息时,确定出该数据更新信息已经完成相应的数据同步,因此无需在重复执行该数据更新信息的数据更新操作,进而确保数据同步的准确的同时,进一步节约了***开销。
在上述图5所示的实施例中,计算机设备获取数据更新记录,并根据数据更新记录将数据更新信息推送至异构数据库。其中,数据更新记录用于标记数据更新信息是否已被处理。由于上述数据数据更新记录用于标记数据更新信息是否已被处理,因此,计算机设备根据数据更新记录将数据更新信息推送至异构数据库,其能够保证mysql数据库的数据更新信息能够完整的、不被遗漏得更新至异构数据库的同时,还可以最大程度的避免***资源的浪费,从而节约了***的开销。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图6为一个实施例提供的数据同步装置的结构示意图。该装置包括:获取模块11、发送模块12和接收模块13。
具体的,获取模块11,用于获取mysql数据库的数据更新信息。
发送模块12,用于将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新。
接收模块13,用于接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
在一个实施例中,获取模块11,具体用于获取mysql数据库的日志数据,并根据所述日志数据确定所述数据更新信息。
在一个实施例中,发送模块12,具体可以用于获取数据更新间隔时间,所述数据更新间隔时间用于表征当前时刻与上一次数据更新的时刻之间的间隔时长;根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库。
在一个实施例中,发送模块12,具体可以用于当所述数据更新间隔时间小于或等于所述时间阈值时,则将所述数据更新信息推送至所述异构数据库。当所述数据更新间隔时间大于所述时间阈值时,则将当前处理的数据更新信息进行缓存处理,作为待更新数据信息;并获取所述异构数据库的当前更新状态,在所述异构数据库的当前更新状态为空闲状态时,则将所述待更新数据信息推送至所述异构数据库以进行更新;在所述异构数据库的当前更新状态为处理中,则中止将所述待更新数据信息推送至所述异构数据库。
在一个实施例中,发送模块12,具体可以用于获取数据更新记录;所述数据更新记录用于标记所述数据更新信息是否已被处理;根据所述数据更新记录将所述数据更新信息推送至所述异构数据库。
在一个实施例中,发送模块12,具体可以用于若所述数据更新记录中不存在所述数据更新信息的处理记录,则将所述数据更新信息推送至所述异构数据库。
上述实施例提供的数据同步装置,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,本申请实施例还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取mysql数据库的数据更新信息;将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新;接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取mysql数据库的日志数据;根据所述日志数据确定所述数据更新信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取数据更新间隔时间,所述数据更新间隔时间用于表征当前时刻与上一次数据更新的时刻之间的间隔时长;根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若所述数据更新间隔时间小于或等于所述时间阈值,则将所述数据更新信息推送至所述异构数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若所述数据更新间隔时间大于所述时间阈值,则将当前处理的数据更新信息进行缓存处理,作为待更新数据信息;获取所述异构数据库的当前更新状态;若所述异构数据库的当前更新状态为空闲状态,则将所述待更新数据信息推送至所述异构数据库以进行更新;若所述异构数据库的当前更新状态为处理中,则中止将所述待更新数据信息推送至所述异构数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取数据更新记录;所述数据更新记录用于标记所述数据更新信息是否已被处理;根据所述数据更新记录将所述数据更新信息推送至所述异构数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若所述数据更新记录中不存在所述数据更新信息的处理记录,则将所述数据更新信息推送至所述异构数据库。
上述申请实施例中处理器执行计算机程序的过程,与上述方法中各个步骤的执行过程一致,具体可参见上文中的描述。
在一个实施例中,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的方法中的步骤。具体地,计算机程序被处理器执行时实现如下步骤:获取mysql数据库的数据更新信息;将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新;接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取mysql数据库的日志数据;根据所述日志数据确定所述数据更新信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取数据更新间隔时间,所述数据更新间隔时间用于表征当前时刻与上一次数据更新的时刻之间的间隔时长;根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若所述数据更新间隔时间小于或等于所述时间阈值,则将所述数据更新信息推送至所述异构数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若所述数据更新间隔时间大于所述时间阈值,则将当前处理的数据更新信息进行缓存处理,作为待更新数据信息;获取所述异构数据库的当前更新状态;若所述异构数据库的当前更新状态为空闲状态,则将所述待更新数据信息推送至所述异构数据库以进行更新;若所述异构数据库的当前更新状态为处理中,则中止将所述待更新数据信息推送至所述异构数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取数据更新记录;所述数据更新记录用于标记所述数据更新信息是否已被处理;根据所述数据更新记录将所述数据更新信息推送至所述异构数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若所述数据更新记录中不存在所述数据更新信息的处理记录,则将所述数据更新信息推送至所述异构数据库。
本申请实施例中处理器执行计算机程序的过程,与上述方法中各个步骤的执行过程一致,具体可参见上文中的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法包括:
获取mysql数据库的数据更新信息;
将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新;
接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
2.根据权利要求1所述的方法,其特征在于,所述获取mysql数据库的数据更新信息,包括:
获取mysql数据库的日志数据;
根据所述日志数据确定所述数据更新信息。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述数据更新信息推送至异构数据库,包括:
获取数据更新间隔时间,所述数据更新间隔时间用于表征当前时刻与上一次数据更新的时刻之间的间隔时长;
根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库,包括:
若所述数据更新间隔时间小于或等于所述时间阈值,则将所述数据更新信息推送至所述异构数据库。
5.据权利要求3所述的方法,其特征在于,所述根据所述数据更新间隔时间和预设的时间阈值,将所述数据更新信息推送至所述异构数据库,还包括:
若所述数据更新间隔时间大于所述时间阈值,则将当前处理的数据更新信息进行缓存处理,作为待更新数据信息;
获取所述异构数据库的当前更新状态;
若所述异构数据库的当前更新状态为空闲状态,则将所述待更新数据信息推送至所述异构数据库以进行更新;
若所述异构数据库的当前更新状态为处理中,则中止将所述待更新数据信息推送至所述异构数据库。
6.根据权利要求1或2所述的方法,其特征在于,所述将所述数据更新信息推送至异构数据库,包括:
获取数据更新记录;所述数据更新记录用于标记所述数据更新信息是否已被处理;
根据所述数据更新记录将所述数据更新信息推送至所述异构数据库。
7.根据权利要求6所述的方法,其特征在于,所述根据所述数据更新记录将所述数据更新信息推送至所述异构数据库,包括:
若所述数据更新记录中不存在所述数据更新信息的处理记录,则将所述数据更新信息推送至所述异构数据库。
8.一种数据同步装置,其特征在于,所述装置包括:获取模块、发送模块和接收模块;
所述获取模块,用于获取mysql数据库的数据更新信息;
所述发送模块,用于将所述数据更新信息推送至异构数据库,以指示所述异构数据库根据所述数据更新信息进行数据更新;
所述接收模块,用于接收所述异构数据库返回的更新成功信息,并将所述更新成功信息推送给所述mysql数据库,以使所述mysql数据库提交数据同步事务。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811451848.0A CN109656936A (zh) | 2018-11-30 | 2018-11-30 | 数据同步方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811451848.0A CN109656936A (zh) | 2018-11-30 | 2018-11-30 | 数据同步方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109656936A true CN109656936A (zh) | 2019-04-19 |
Family
ID=66112113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811451848.0A Pending CN109656936A (zh) | 2018-11-30 | 2018-11-30 | 数据同步方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656936A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110661820A (zh) * | 2019-12-02 | 2020-01-07 | 武汉慧联无限科技有限公司 | 一种物联网数据处理方法及装置、设备、存储介质 |
CN111752910A (zh) * | 2020-06-24 | 2020-10-09 | 上海微盟企业发展有限公司 | 一种异构平台的数据同步方法、***和相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102891849A (zh) * | 2012-09-25 | 2013-01-23 | 北京星网锐捷网络技术有限公司 | 业务数据同步方法、恢复方法及装置和网络设备 |
CN103136231A (zh) * | 2011-11-25 | 2013-06-05 | ***通信集团江苏有限公司 | 一种异构数据库间的数据同步方法及*** |
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
-
2018
- 2018-11-30 CN CN201811451848.0A patent/CN109656936A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136231A (zh) * | 2011-11-25 | 2013-06-05 | ***通信集团江苏有限公司 | 一种异构数据库间的数据同步方法及*** |
CN102891849A (zh) * | 2012-09-25 | 2013-01-23 | 北京星网锐捷网络技术有限公司 | 业务数据同步方法、恢复方法及装置和网络设备 |
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
Non-Patent Citations (2)
Title |
---|
CSD753111111: "MySQL5.7新特性半同步复制之AFTER_SYNC/AFTER_COMMIT的过程分析和总结", 《CSDN》 * |
王飞飞,崔洋,贺亚茹: "《MySQL数据库应用从入门到精通第二版》", 30 April 2014 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110661820A (zh) * | 2019-12-02 | 2020-01-07 | 武汉慧联无限科技有限公司 | 一种物联网数据处理方法及装置、设备、存储介质 |
CN111752910A (zh) * | 2020-06-24 | 2020-10-09 | 上海微盟企业发展有限公司 | 一种异构平台的数据同步方法、***和相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509501B (zh) | 一种查询处理方法、服务器及计算机可读存储介质 | |
CN109766362B (zh) | 数据处理方法及装置 | |
CN106302609B (zh) | 一种访问方法及装置 | |
CN111680008B (zh) | 日志处理方法、***、可读存储介质及智能设备 | |
CN111177112A (zh) | 基于运维管理***的数据库阻断方法、装置及电子设备 | |
EP3842955A2 (en) | File directory traversal method, apparatus, device, and medium | |
CN104298675A (zh) | 用于缓存管理的方法和装置 | |
CN112631879A (zh) | 数据采集方法、装置、计算机可读介质及电子设备 | |
CN113282580A (zh) | 用于执行定时任务的方法、存储介质及服务器 | |
CN110750443A (zh) | 网页测试的方法、装置、计算机设备及存储介质 | |
CN109656936A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN112100092B (zh) | 一种信息缓存方法、装置、设备及介质 | |
CN104424224A (zh) | 一种文件索引存储方法及装置 | |
CN107102937B (zh) | 一种用户界面测试方法和装置 | |
CN109391658B (zh) | 一种账号数据同步方法及其设备、存储介质、终端 | |
CN111522626B (zh) | 一种虚拟机列表生成方法、装置及电子设备 | |
CN108228611B (zh) | 单据信息抄写方法和装置 | |
CN111078418B (zh) | 操作同步方法、装置、电子设备及计算机可读存储介质 | |
WO2020211789A1 (zh) | 网络搜索方法、装置、设备和存储介质 | |
CN110851398B (zh) | 垃圾数据的回收处理方法、装置及电子设备 | |
CN111125168A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN114490540B (zh) | 数据存储方法、介质、装置和计算设备 | |
CN108984238A (zh) | 应用程序的手势处理方法、装置及电子设备 | |
CN114185804A (zh) | 一种接口测试方法、装置及终端设备 | |
CN113110846A (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: 20190419 |