数据处理方法、装置及设备制造方法及图纸

技术编号:21183900 阅读:41 留言:0更新日期:2019-05-22 14:49
本申请实施例提供一种数据处理方法、装置及设备。其中,方法包括如下的步骤:对从主库正在执行的事务所产生的重做日志中解析出的事务操作数据进行一次处理,以使一次处理后的所述事务操作数据不可见;将一次处理后的所述事务操作数据写入备库;所述事务执行结束时,按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,以通过二次处理决定所述事务操作数据是否可见。采用本申请实施例提供的技术方案可有效解决现有技术中备库只能在主库侧事务执行结束后才能利用重做日志所带来的诸多问题。

Data Processing Method, Device and Equipment

The embodiment of this application provides a data processing method, device and device. The method includes the following steps: processing the transaction operation data parsed from the redo log generated by the transaction being executed by the main library once to make the transaction operation data mentioned after one processing invisible; writing the transaction operation data mentioned after one processing to the standby; and writing the transaction operation data according to the execution result of the transaction at the end of the execution of the said transaction. The transaction operation data of the backup database is processed twice accordingly to determine whether the transaction operation data is visible or not through the secondary processing. The technical scheme provided by the embodiment of this application can effectively solve many problems caused by the redo log that can only be used by the standby after the execution of the main bank side transaction in the prior art.

【技术实现步骤摘要】
数据处理方法、装置及设备
本申请涉及计算机
,尤其涉及一种数据处理方法、装置及设备。
技术介绍
重做日志包含对一个事务(亦或称数据库实例)进行所有数据修改的事务操作数据,因此通过在另一个数据库实例重放重做日志,就可以重新进行事务的所有物理操作以同步数据。例如,主库在进行事务处理时,每一次对数据进行的修改均会生成相应的事务操作数据写入重做日志。备库只有在事务执行结束后再通过重放该事务对应的重做日志来实现重复对相应数据的修改操作,由此同步数据。而在实际应用中,当主库处理的事务为长事务或大事务时,备库只有在主库侧事务执行结束后才能利用重做日志进行重做操作,极易出现长事务带来的主库重做日志拥塞、大事务带来的主备延迟等问题。申请内容本申请实施例提供的一种数据处理方法、装置及设备,以解决现有技术中备库只能在主库侧事务执行结束后才能利用重做日志所带来的诸多问题。在本申请的一个实施例中,提供了一种数据处理方法。该方法包括:对从主库正在执行的事务所产生的重做日志中解析出的事务操作数据进行一次处理,以使一次处理后的所述事务操作数据不可见;将一次处理后的所述事务操作数据写入备库;所述事务执行结束时,按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,以通过二次处理决定所述事务操作数据是否可见。在本申请的另一个实施例中,提供了一种数据处理装置。该装置包括:第一处理模块,用于对从主库正在执行的事务所产生的重做日志中解析出的事务操作数据进行一次处理,以使一次处理后的所述事务操作数据不可见;写入模块,用于将一次处理后的所述事务操作数据写入备库;第二处理模块,用于在所述事务执行结束时,按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,以通过二次处理决定所述事务操作数据是否可见。在本申请的又一实施例中,提供了一种数据库设备。该数据库设备包括:存储器以及处理器;所述存储器,用于存储程序;所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:对从主库正在执行的事务所产生的重做日志中解析出的事务操作数据进行一次处理,以使一次处理后的所述事务操作数据不可见;将一次处理后的所述事务操作数据写入备库;所述事务执行结束时,按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,以通过二次处理决定所述事务操作数据是否可见。采用本申请实施例提供的技术方案,备库不需要等待主库侧事务执行结束再应用该事务的重做日志,备库在主库侧事务执行中即可将从重做日志解析出的事务操作数据进行写入,备库根据事务执行状态(如执行中、执行结束)对写入的数据进行处理,以使其不可见或可见,以避免未执行结束的事务操作数据被使用致使备库数据与主库数据不同步的问题出现。同时,由于本申请实施例提供的方案在事务执行中就在备库中进行了事务操作数据的写入,这样主库在长事务执行中即可将部分已写入备库的事务操作数据进行删除,进而解决现有技术中需一直保留长事务的重做日志不能删除而导致主库日志拥塞的问题;另外,由于在事务执行中就在备库进行了事务操作数据的写入,省去了等待主库执行完成大事务的时间,在大事务执行完成时即可根据写入的该事务的事务操作数据进行重做过程,可有效地缓解现有技术中大事务主备延迟较大的问题。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请一实施例提供的数据处理方法的流程示意图;图2为本申请另一实施例提供的数据处理方法的流程示意图;图3为本申请又一实施例提供的数据处理方法的流程示意图;图4为本申请一实施例提供的数据处理装置的结构示意图;图5为本申请一实施例提供的数据库设备的结构示意图;图6为本申请另一实施例提供的数据库设备的结构示意图。具体实施方式长事务(LongTransaction)即花费较长时间不能够结束的事务。长事务极易造成主库日志的拥塞。例如,一个长事务是10小时之前发起的,但是一直没有关闭,在10小时前到当前时间点,主库产生了100GB的重做日志。由于该长事务一直未结束,其产生的10小时内的所有事务操作数据可能出现在这100GB重做日志的任意位置,所以主库不能清除这100GB的重做日志,从而导致主库日志的拥塞。大事务即数据处理量较大的事务。大事务极易造成主备延迟较大的问题。例如,一个大事务为更新一张很大表的所有数据或插入大量数据;该大事务可能在主库产生大量的日志,比如几十GB的重做日志,而备库需要等该大事务执行结束,才能开始应用这几十GB的重做进行备库重做以达到主库和备库的数据同步。因为只有大事务执行结束后,该事务产生的重做体制才会在备库重做,致使主备延迟非常大。比如,一个大事务在主库执行1个小时,备库应用时也要执行1个小时,那么久造成了1个小时的延迟。因此,本申请实施例提供一种数据处理方法、装置及设备,通过解析主库侧未执行结束事务产生的重做日志中的事务操作数据,以对解析出的事务操作数据进行不可见处理的方式,避免未执行结束的事务操作数据被使用致使备库数据与主库数据不同步的问题出现;在主库侧事务执行结束时,再对写入备库的该事务的事务操作数据进行该事务执行结果对应的二次处理,以通过二次处理来决定该事务对应的事务操作数据是否可见;进行二次处理的目的是为了便于备库使用可见的事务操作数据进行重做操作;可见,本申请实施例提供的技术方案,备库不需要等待主库侧事务执行结束便可利用该事务的重做日志,能有效的解决现有技术中存储的长事务主库重做日志拥塞、大事务主备延迟较大等问题。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图1示出了本申请一实施例提供的数据处理方法的流程示意图。如图1所示,本实施例提供的数据处理方法包括:101、对从主库正在执行的事务所产生的重做日志中解析出的事务操作数据进行一次处理,以使一次处理后的所述事务操作数据不可见。102、将一次处理后的所述事务操作数据写入备库。103、所述事务执行结束时,按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,以通过二次处理决定所述事务操作数据是否可见。上述101中,主库在进行事务处理时,每一次对数据进行的修改均会生成相应的事务操作数据写入重做日志。对从重做日志中解析出的事务操作数据进行的一次处理的方式可包括但不限于如下所列的方式:方式一、在事务操作数据中添加标记的方式。例如,使用一个2个比特位的标记数据(如00)来表征改事务操作数据不可见。一种可实现的方式是,在事务操作数据的数据头部添加有指定的标记数据(2个比特位),如00。这样,所有头部标记有00的数据均为不可见数据。不可见数据即备库不能读取到该数据并利用其进行重做等操作。方式二、对事务操作数据按照一定的算法处理为不可见代码。其中,本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:对从主库正在执行的事务所产生的重做日志中解析出的事务操作数据进行一次处理,以使一次处理后的所述事务操作数据不可见;将一次处理后的所述事务操作数据写入备库;所述事务执行结束时,按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,以通过二次处理决定所述事务操作数据是否可见。

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:对从主库正在执行的事务所产生的重做日志中解析出的事务操作数据进行一次处理,以使一次处理后的所述事务操作数据不可见;将一次处理后的所述事务操作数据写入备库;所述事务执行结束时,按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,以通过二次处理决定所述事务操作数据是否可见。2.根据权利要求1所述的方法,其特征在于,所述事务操作数据包含有所述事务的主库事务号;以及所述对从主库正在执行的事务所产生的重做日志中解析出的事务操作数据进行一次处理,包括:为所述事务申请备库事务号;将所述事务操作数据的所述主库事务号替换为所述备库事务号;对替换后的所述事务操作数据进行不可见标记。3.根据权利要求2所述的方法,其特征在于,所述对替换后的所述事务操作数据进行不可见标记,包括:在替换后的所述事务操作数据的数据头部位置添加不可见标记符。4.根据权利要求2所述的方法,其特征在于,还包括:关联所述主库事务号和所述备库事务号。5.根据权利要求4所述的方法,其特征在于,所述事务执行结束时,按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,包括:从所述重做日志中解析出表征所述事务执行结束的结束数据时,根据主库事务号和备库事务号的关联关系,获取所述结束数据包含的主库事务号对应的备库事务号;获取写入所述备库中包含有所述备库事务号的事务操作数据;按照所述事务的执行结果,对包含有所述备库事务号的事务操作数据进行相应的二次处理。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述事务操作数据中包含有所述一次处理时为其添加的不可见标记符;以及按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,包括:所述事务的执行结果为提交时,将所述事务操作数据的不可见标记符改写为提交标记符;所述事务的执行结果为回滚时,将所述事务操作数据的不可见标记符改写为回滚标记符;其中,所述提交标记符表征所述事务操作数据可见,所述回滚标记符表征所述事务操作数据不可见。7.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:在所述备库的提交日志中添加为所述事务申请的备库事务号;若从所述重做日志中未解析出表征所述事务执行结束的结束数据,则所述备库事务号添加执行中标记;若从所述重做日志中解析出表征所述事务执行结束的结束数据且所述结束数据为提交数据,则将所述执行中标记更新为提交类型标记;若从所述重做日志中解析出表征所述事务执行结束的结束数据且所述结束数据为回滚数据,则将所述执行中标记更新为回滚类型标记。8.根据权利要求7所述的方法,其特征在于,所述事务操作数据中包含有所述一次处理时为其添加的不可见标记符;以及按照所述事务的执行结果对写入所述备库的所述事务操作数据进行相应的二次处理,包括:从所述备库的提交日志中读取所述事务的备库事务号的标记;若所述标记为提交类型标记,则将所述事务操作数据的不可见标记符改写为提交标记符;若所述标记为回滚类型标记,则将所述事务操作数据的不可见标记符改写为回滚标记符;其中,所述提交标记符表征所述事务操作数据可见,所述回...

【专利技术属性】
技术研发人员:周正中
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1