CN109992381A - 进程拆分判别方法、装置、设备及介质 - Google Patents
进程拆分判别方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN109992381A CN109992381A CN201711491534.9A CN201711491534A CN109992381A CN 109992381 A CN109992381 A CN 109992381A CN 201711491534 A CN201711491534 A CN 201711491534A CN 109992381 A CN109992381 A CN 109992381A
- Authority
- CN
- China
- Prior art keywords
- extraction
- statistical information
- information
- split
- processes
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种进程拆分判别方法、装置、设备及介质。该方法包括:响应于业务量增大,判断是否存在进程性能问题;在存在进程性能问题的情况下,采集进程统计信息;基于所采集的进程统计信息,分析所述进程性能问题的原因是否与进程数量有关;以及在所述进程性能问题的原因与进程数量有关的情况下,判定需要执行进程拆分。由此,通过实时关注进程数据同步情况,及时的自动判别,以对进程做出有效的拆分,防止突发的业务变更导致数据同步延时而影响数据的及时性和一致性,同时避免人工干预。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种进程拆分判别方法、装置、设备及介质。
背景技术
Oracle Golden Gate 12c以前的goldengate各个进程处理trail文件是串行处理,当源端一个大事务提交后因网络带宽等问题影响该事务提交后的其他小事务传输。在使用Goldengate作为复制解决方案时,随着负载的增加,进程组件常常是最先出现性能瓶颈的。为了适应不断增加的负载,就需要拆分进程来实现并行复制。
在目前的goldengate运维中,基本处于一种被动滞后运维的方式。现有的方法依赖于数据库管理员(Database Administrator,简称DBA)长期积累的维护经验及技术水平。在实际情况中,随着业务的变更,不能在第一时间判别业务的变化所带来的数据变化,直到goldengate进程出现延时才去针对分析应该如何处理或拆分,待发现问题时数据同步已经延迟,无法提前做好应对措施。
综上所述,需要一种能够实时有效地判别和拆分进程的方案。
发明内容
本发明实施例提供了进程拆分判别方法、装置、设备及介质,通过程序自动判别是否需要拆分进程,以便于及时自动地对进程做出有效的拆分,防止突发的业务变更导致数据同步延时而影响数据的及时性和一致性,同时避免人工干预。
第一方面,本发明实施例提供了一种进程拆分判别方法,方法包括:响应于业务量增大,判断是否存在进程性能问题;在存在进程性能问题的情况下,采集进程统计信息;基于所采集的进程统计信息,分析所述进程性能问题的原因是否与进程数量有关;以及在所述进程性能问题的原因与进程数量有关的情况下,判定需要执行进程拆分。
第二方面,本发明实施例提供了一种进程拆分判别装置,装置包括:性能识别单元,用于响应于业务量增大,判断是否存在进程性能问题;信息采集单元,用于在存在进程性能问题的情况下,采集进程统计信息;性能分析单元,用于基于所采集的进程统计信息,分析所述进程性能问题的原因是否与进程数量有关;以及拆分判定单元,用于在所述进程性能问题的原因与进程数量有关的情况下,判定需要执行进程拆分。
第三方面,本发明实施例提供了一种计算设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
本发明实施例提供的进程拆分判别方法、装置、设备及介质,通过实时关注进程数据同步情况,及时、自动地判别进程是否需要拆分、如何拆分,并对进程做出有效的拆分,防止突发的业务变更导致数据同步延时而影响数据的及时性和一致性,并且避免了对于DBA经验的依赖。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明一个实施例的进程拆分判别方法的流程示意图;
图2示出了根据本发明一个实施例的进程拆分判别装置的示意性框图;
图3示出了根据本发明一个实施例的GoldenGate基于程序判别自动拆分进程的流程图;
图4示出了本发明实施例提供的计算设备的硬件结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源端数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标端数据库,从而实现源数据库与目标数据库同步。
主库业务发生改变后,GoldenGate运行配置无法满足业务的改变时,GoldenGate进程将发生性能问题,常常表现为extract(抽取)/replicat(复制)进程产生较大延迟。
为了适应不断增加的负载,就需要拆分进程来实现并行复制。因为Oracle GoldenGate(OGG)中的Extract/Replicat都是独立的,进程拆分的方式一般分为两种一种是用GoldenGate提供的@RANGE函数作表内的拆分,通过对表上主键列作hash算法将该表上发生的变更均分到多个进程上来降低单个进程的负载;另一种是将复制的表划分成几组,使用多个进程来分别复制其中的一组表。
在GoldenGate进程发生性能问题时,现有的方法是需要DBA介入调整GoldenGate进程配置。从业务变化到最终DBA介入往往历时数小时甚至数天,无法提前防止GoldenGate进程出现性能问题。
因此,现有的方法依赖于DBA长期积累的维护经验及技术水平,并且,当GoldenGate进程出现性能问题时才介入而无法提前做好应对措施。
有鉴于此,本发明提出了一种用于GoldenGate的进程判别拆分方案,通过收集统计信息、优化执行计划、拆分进程等手段,使得GoldenGate进程能及时应对业务系统变更带来的数据变更,提高了GoldenGate进程数据复制效率,降低了复制延迟。
在进程出现性能问题时,现有方案是不拆分进程或者由维护人员手工拆分进程,本发明可以通过收集统计信息,判别进程如何拆分,做到自动化,减少人工干预,提高工作效率,及时避免因数据量大而进程拆分不及时影响数据的一致性和实时性。
如下将结合附图及实施例详细说明本发明的进程拆分判别方案。
图1示出了根据本发明一个实施例的进程拆分判别方法的流程示意图。
参见图1,在步骤S110,响应于业务量增大,判断是否存在进程性能问题。
在业务发生变更时,相应的数据量会发生变化。对于当业务量增大,OGG的进程数不满足性能需求的问题,源端数据库与目标端数据库的数据未实现同步,则GoldenGate存在性能问题,例如延迟。
因此,优选地,本发明可以实时监控业务变化情况,实时关注GoldenGate进程数据同步情况,实时判断是否存在延迟等性能问题。
在不存在例如延迟等性能问题时,判定进程性能良好,此时不做任何处理,例如不拆分进程,继续运行程序。
在步骤S120,在存在进程性能问题的情况下,采集进程统计信息。
这里的进程可以包括抽取进程和/或复制进程。
对于抽取进程,例如可以采集抽取进程执行抽取命令时统计的抽取进程统计信息,例如抽取进程参数配置、对应的Trail文件信息、进程的检查点信息、执行info,detail命令的相对字节地址节地址、与其生成Trail文件所用的时间等等。
对于复制进程,例如可以采集复制进程的热点表信息和检查点信息等的复制进程统计信息等等。
在步骤S130,基于所采集的进程统计信息,分析所述进程性能问题的原因是否与进程数量有关。
在步骤S140,在所述进程性能问题的原因与进程数量有关的情况下,判定需要执行进程拆分。
本发明的进程拆分主要涉及抽取进程拆分和复制进程拆分,如下分别对其进程自动判别和拆分进行详细描述。
(1)抽取进程
对于抽取进程,可以通过比较进程需要吞吐量与进程当前实际吞吐量,来判定进程性能问题是否与其进程数量有关。
具体地,可以基于抽取进程统计信息,分别计算所述抽取进程的进程需要吞吐量和当前实际吞吐量,在所述进程需要吞吐量大于所述当前实际吞吐量的情况下,判定所述进程性能问题与进程数量有关;而在进程需要吞吐量小于所述当前实际吞吐量的情况下,判定进程性能问题与进程数量无关。
在一个优选实施例中,当前实际吞吐量可以是所述抽取进程起始两次执行info,detail命令得出的相对字节地址(Relative Byte Address,RBA)的差值、与其生成一个Trail文件所用的时间的比值。
例如,可以通过如下公式计算当前实际吞吐量:
E=(B-A)/X/1024/1024/1024GB/min
其中,A为第一次执行info,detail命令所得的RBA,B为第二次执行info,detail命令所得的RBA,E为最终计算出来的当前实际吞吐量。
在一个优选实施例中,进程需要吞吐量可以是所述抽取进程的Trail文件转换系数均值与其单位时间抽取日志量的乘积。其中,Trail文件转换系数均值是基于所述抽取进程解析redo日志产生的预定trail文件量与预定redo日志量的比值确定的。
例如,可以通过如下公式计算Trail文件转换系数均值
其中,St为trail文件量,Sr为redo日志量,i为每次采集的次数,n为总次数。Trail文件转换系数为解析单位redo日志产生的trail文件量与单位redo日志量的比值。
Redo日志量可以通过sql从数据库中查得日志量大小和redo切换频率计算。这样,单位时间抽取的日志量就可以计算为T=日志总量/时间=GB/min
由此,根据日志量T和trail文件转换系数均值计算需要的程序吞吐量W,进程需要吞吐量即为
若进程需要吞吐量小于其当前实际吞吐量,即W<E,可判定所述进程性能与抽取进程数量无关,判断该抽取进程不会出现延时,无需拆分;若进程需要的吞吐量大于其当前实际吞吐量,即W>E,可判定所述进程性能与抽取进程数量有关,判断得出该抽取进程会出现延时的情况,需要做拆分处理。
在判定需要执行抽取进程拆分的情况下,对需要拆分的原抽取进程进行拆分处理。
在进行拆分前,为避免直接拆分造成的其它故障,程序自动停掉所有进程后,需判断trail文件是否已经被完全传送到目标端,例如可以在目标端根据trail文件生成的时间及文件大小是否增长判断其是否完全被传送到目标端。当trail文件已被完全传送的情况下,可进行拆分处理。
拆分时,例如可以基于采集的原抽取进程的抽取进程统计信息以及该原抽取进程的参数配置信息,将原抽取进程拆分为多个新抽取进程。
具体地,例如可以将所述原抽取进程的关键信息复制到所述新抽取进程,所述关键信息包括所述原抽取进程的参数配置信息、其对应的trail文件信息以及原抽取进程的检查点信息,基于所述抽取统计信息,将关联的数据拆分到一个新抽取进程中。
为避免拆分后导致的其它故障,关联可以包括但不限于是:所述新抽取进程对应于所述数据的schema;所述数据是DML/DDL中相关联的表;或者所述数据是同一个表中的连续区块。
在抽取进程启动前,还需要自动检测原抽取进程和新抽取进程的检查点信息,在确认原抽取进程与新抽取进程的检查点信息一致的情况下,启动新抽取进程。
随后再次运行程序,并检验其效率。当出现业务量变化(例如业务量增大)时,再次按照如上的方法实现对抽取进程的自动判别和拆分。
(2)复制进程
对于复制进程,可以基于采集的复制进程的热点表信息和检查点信息等复制进程统计信息,判定复制进程的进程性能问题是否为IO问题、统计信息过旧问题、和/或索引缺失问题,在其进程性能问题是IO问题、统计信息过旧问题和/或索引缺失问题时,判定复制进程的进程性能问题与进程数量无关,而在复制进程的进程性能问题不是IO问题、统计信息过旧问题、和/或索引缺失问题的情况下,判定所述复制进程的进程性能问题的原因与进程数量有关。
当进程性能问题与进程数量有关的情况下,判定需要对该复制进程执行拆分处理。在判定需要执行复制进程拆分的情况下,则执行拆分处理。
具体地,例如可以将所统计的热点表信息分为第一热点表信息和第二热点表信息,并将所述第一热点表信息和第二热点表信息分别放到两组新复制进程中,其中,新复制进程与需要拆分的原复制进程的进程检查点信息一致。
在新复制进程与原复制进程的进程检查点信息一致的情况下,即可启动新复制进程。随后再次运行程序,并检验其效率。当出现业务量变化(例如业务量增大)时,再次按照如上的方法实现对复制进程的自动判别和拆分。
至此,已经结合图1的方法流程图详细说明了本发明的进程自动判别和拆分方案。
另外本发明的进程拆分判别方法还可以由一种进程拆分判别装置实现。图2示出了根据本发明一个实施例的进程拆分判别装置的示意性框图。其中,进程拆分判别装置200的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图2所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
图2所示的进程拆分判别装置200可以用来实现图1所示的进程拆分判别方法,下面仅就进程拆分判别装置200可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文结合图1的描述,这里不再赘述。
参见图2,本发明的进程拆分判别装置200可以包括性能识别单元210、信息采集单元220、性能分析单元230和拆分判定单元240。
性能识别单元210可以响应于业务量增大,判断是否存在进程性能问题。信息采集单元220可以在存在进程性能问题的情况下,采集进程统计信息。性能分析单元230可以基于所采集的进程统计信息,分析所述进程性能问题的原因是否与进程数量有关。拆分判定单元240可以在所述进程性能问题的原因与进程数量有关的情况下,判定需要执行进程拆分。
优选地,上述进程可以包括抽取进程和复制进程。
对于抽取进程,所述进程统计信息包括抽取进程执行抽取命令时统计的抽取进程统计信息,性能分析单元230可以基于所述抽取进程统计信息,分别计算所述抽取进程的进程需要吞吐量和当前实际吞吐量,在所述进程需要吞吐量大于所述当前实际吞吐量的情况下,判定所述进程性能与进程数量有关。
优选地,当前实际吞吐量可以是所述抽取进程起始两次执行info,detail命令的相对字节地址节地址的差值、与其生成一个Trail文件所用的时间的比值。所述进程需要吞吐量是所述抽取进程的Trail文件转换系数均值与其单位时间抽取日志量的乘积,所述Trail文件转换系数均值是所述抽取进程解析Redo日志产生的预定Trail文件量与预定Redo日志量的比值。
优选地,可以通过如下公式计算所述Trail文件转换系数均值
其中,St为trail文件量,Sr为redo日志量,i为每次采集的次数,n为总次数。Trail文件转换系数为解析单位redo日志产生的trail文件量与单位redo日志量的比值。
优选地,进程拆分判别装置200还可以包括拆分单元250。在判定需要执行抽取进程拆分的情况下,拆分单元250可以基于采集的原抽取进程的抽取统计信息以及该原抽取进程的参数配置信息,将原抽取进程拆分为多个新抽取进程。
具体地,拆分单元250可以将所述原抽取进程的关键信息复制到所述新抽取进程,所述关键信息包括所述原抽取进程的参数配置信息、其对应的trail文件信息以及原抽取进程的检查点信息,基于所述抽取统计信息,将关联的数据拆分到一个新抽取进程中。
优选地,所述关联包括如下的至少一项:所述新抽取进程对应于所述数据的schema;所述数据是DML/DDL中相关联的表;或者所述数据是同一个表中的连续区块。
进程拆分判别装置200还可以包括进程启动单元260。在所述原抽取进程与所述新抽取进程的检查点信息一致的情况下,进程启动单元260启动新抽取进程。
对于复制进程,所述进程统计信息包括复制进程的热点表信息和检查点信息的复制进程统计信息,性能分析单元230可以基于所述复制进程统计信息,判定所述复制进程的进程性能问题是否为IO问题、统计信息过旧问题、和/或索引缺失问题,并在在所述进程性能问题不是IO问题、统计信息过旧问题、和/或索引缺失问题的情况下,判定所述复制进程的进程性能问题的原因与进程数量有关。
优选地,在判定需要执行复制进程拆分的情况下,拆分单元250可以将所统计的热点表信息分为第一热点表信息和第二热点表信息,并将所述第一热点表信息和第二热点表信息分别放到两组新复制进程中,所述新复制进程与需要拆分的原复制进程的进程检查点信息一致。
优选地,在所述原复制进程与所述新复制进程的检查点信息一致的情况下,进程启动单元260启动新复制进程。
由此,通过实时关注Goldengate进程数据同步情况,及时的自动对进程做出有效的拆分,防止突发的业务变更导致数据同步延时而影响数据的及时性和一致性。通过脚本自动拆分抽取进程和复制进程,也无需人工干预。
为了更好地理解本发明,如下将结合图3所示的应用示例对本发明的自动判别和拆分方案进行详细阐述。
对于当业务量增大,OGG的进程数不满足性能需求的问题,本应用示例通过判断抽取进程和复制进程是否存在性能问题,若不存在性能问题,则不做任何处理,继续运行。若抽取或者复制进程存在延迟这种性能问题,则通过本发明提出的自动计算和评估方法,对抽取或者复制进程进行自动拆分处理。
图3示出了根据本发明一个实施例的Goldengate基于程序判别自动拆分进程的流程图。
参见图3,OGG正常运行,如果出现业务变化,则进入步骤S310,判断是否存在性能问题,例如延迟这种性能问题。
如果不存在例如延迟等的性能问题,则说明现已有的进程可使得源端数据库和目标端数据库的数据同步,程序性能良好,则无需拆分进程,进入步骤S320中,继续运行OGG程序即可。
在存在例如延迟的性能问题的情况下,分别进入步骤S330和步骤S340。
下面分别针对抽取进程拆分、复制进程拆分场景分别说明。
1、对于抽取进程:
在步骤S330采集抽取进程数据,即本发明上述的抽取进程统计信息。
在步骤S331,基于采集的抽取进程统计信息,计算现有抽取进程的当前实际吞吐量即TRAIL文件量E以及其进程需要吞吐量W。
本步骤中计算出的程序进程吞吐量与计算的进程需要的吞吐量做比较,用于判断程序是否需要拆分。
本步骤中的当前实际吞吐量E计算方法例如可以是通过统计出进程处理某个trail文件所用的时间(X minute),用起始两次info,detail命令得出Relative ByteAddress(相对字节地址,RBA)相减来计算当前实际吞吐量的详细信息。
例如,可以通过如下公式计算:
E=(B-A)/X/1024/1024/1024GB/min
其中,A为第一次执行命令的rba,B为第二次执行所得的rba,E为最终计算出来的当前实际吞吐量。
本步骤中可以分别计算trail文件转换系数均值K以及单位时间日志量,基于它们确定进程需要吞吐量。
例如,从程序部署开始后,周期性采样,计算转换系数均值
其中,St为tail文件量,Sr为redo日志量,i为每次采集的次数,n为总次数。Trail文件转换系数为解析单位redo日志产生的trail文件量与单位redo日志量的比值。
Redo日志量可通过sql从数据库中查得日志量大小,和redo切换频率计算。
因此,单位时间日志量T=日志总量/时间=GB/min
由此,根据单位时间日志量T和trail文件转换系数均值计算进程需要吞吐量W:
之后,即可根据抽取进程需要的吞吐量及其实际吐量之间的关系确定是否需要拆分。
在步骤S332,比较E和W,判断进程性能问题是否与抽取进程数量有关。
若进程需要吞吐量W小于当前实际吞吐量E的情况下,即W<E,说明现有抽取进程,可判断该抽取进程不会出现延时,无需拆分,则进入步骤S320,继续运行程序。
若进程需要吞吐量W大于其当前实际吞吐量E的情况下,即W>E,可判断得出该抽取进程会出现延时的情况,需要做拆分处理,进入步骤S333。
在步骤S333,对需要拆分的进程,进行拆分处理。
(1)、拆分前,程序自动停掉所有进程并在目标端根据trail文件生成的时间及文件大小是否增长判断其是否完全被传送到目标端。
为避免拆分后导致其他的故障,自动拆分装置将按照以下规则进行拆分:
1)程序将获取现已有进程的参数配置、对应的trail文件信息以及进程的检查点信息,自动复制上述关键信息至新进程,根据第一步中所收集的统计信息,通过schema进行区分,指定新进程负责其对应的schema或者对某个schema下的部分表进行拆分。
2)将DML/DDL中相关联的表放在同一个进程中,确保数据的完整性。
3)同一个表中的数据,使用@RANGE函数拆分到多个进程。
(2)、新进程启动前,程序将自动检测新旧进程的检查点信息,确认一致再行启动。
之后,进入步骤S334,启动新抽取进程。
在步骤S350中,再次运行程序,并检验效率。在再次发现业务变化的情况下,可再次执行上述的本发明如上的自动判别和拆分方案,实现对进程的实时处理,避免人工干预。
2、对于复制进程:
在步骤S340,收集数据分析复制进程性能异常的原因,即本发明上述的复制进程统计信息,以决定是否拆分进程。
在步骤S341,分析所采集的复制进程统计信息。判断进程性能问题是否为IO问题、统计信息过旧问题或是索引缺失问题。
若瓶颈在于IO,拆分进程会增大IO开销,从而增大延迟,拆分;
统计信息过旧可能会导致Replicat进程复制时产生不佳的执行计划,此时应当收集起统计信息,使之生成正确的执行计划,不拆分;
索引缺失往往导致Replicat进程复制效率低下,产生较大延迟,应当创建合理的索引,不进行拆分;
否则,则判定进程性能问题与进程数量有关,需要进行复制进程拆分,进入步骤S342。
在步骤S342,自动拆分复制进程,自动脚本将确保同一个trail不要被3个rep进程同时读取,防止产生磁盘争用。
具体拆分过程例如可以如下:
(1)可以通过stats命令统计热点表信息,将热点表分为两组;
(2)停止需要拆分的进程并记录检查点信息;
(3)添加新Replicat进程,将热点表分别放到两组Replicat进程中;
(4)修改新添加进程检查点信息,使其和未拆分前进程保持一致;
之后,在步骤S343,启动Replicat进程.。
在步骤S350中,再次运行程序,并检验效率。在再次发现业务变化的情况下,可再次执行上述的本发明如上的自动判别和拆分方案,实现对进程的实时处理,避免人工干预。
通过使用本提案提供的Goldengate基于程序判别自动拆分进程的方法,可以实时监控业务量变化,实时分析判断是否需要抽取和复制进程是否需要拆分。
根据在生产环境中实际使用,主库批量更新数据累计20GB,不使用本提案装置,延时到达2小时。
下面过程为根据本提案装置拆分过程及结果;
(1)获取当前实际吞吐量:
E=(B-A)/X/1024/1024/1024GB/min
E=(1101005067-1380)/28/1024/1024/1024=0.037GB/min
(2)多次统计trail文件转换系数K的均值为0.2
(3)从数据库查得redo日志量为:
T=8.0GB/28min=0.286GB/min
(4)extract进程处理redo日志需要的吞吐量,即进程需要吞吐量:
W=T*k=0.286GB/min*0.2=0.057GB/min
满足拆分条件W>E,程序自动统计热点数据表,将其拆分到2组抽取进程中,使进程延迟从2小时下降到28分钟,性能提升4倍。
至此已经结合图3所示应用示例详细说明了本发明的进程拆分判别方案。
通过本发明实现了进程拆分自动判别以及进程自动拆分方案:
(1)通过实时关注Goldengate进程数据同步情况,通过实现模型和演算公式自动判别Goldengate进程是否拆分的,并及时的自动对进程做出有效的拆分,防止突发的业务变更导致数据同步延时而影响数据的及时性和一致性。
(2)可以通过程序判别Goldengate进程是否需要拆分、如何拆分,通过自动脚本自动拆分抽取进程和复制进程,无需人工干预,避免了对于DBA经验的依赖。
另外,结合图1描述的本发明实施例的进程拆分判别方法可以由计算设备来实现。图4示出了本发明实施例提供的计算设备的硬件结构示意图。
计算设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在数据处理装置的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。在特定实施例中,存储器402包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种进程拆分判别方法。
在一个示例中,计算设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将计算设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
另外,结合上述实施例中的进程拆分判别方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种进程拆分判别方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (13)
1.一种进程拆分判别方法,其特征在于,所述方法包括:
响应于业务量增大,判断是否存在进程性能问题;
在存在进程性能问题的情况下,采集进程统计信息;
基于所采集的进程统计信息,分析所述进程性能问题的原因是否与进程数量有关;以及
在所述进程性能问题的原因与进程数量有关的情况下,判定需要执行进程拆分。
2.根据权利要求1所述的方法,其特征在于,对于抽取进程,所述进程统计信息包括抽取进程执行抽取命令时统计的抽取进程统计信息,所述基于所采集的进程统计信息,分析所述进程性能问题的原因是否与进程数量有关,包括:
基于所述抽取进程统计信息,分别计算所述抽取进程的进程需要吞吐量和当前实际吞吐量;以及
在所述进程需要吞吐量大于所述当前实际吞吐量的情况下,判定所述进程性能与进程数量有关。
3.根据权利要求2所述的方法,其特征在于,
所述当前实际吞吐量是所述抽取进程起始两次执行info,detail命令的相对字节地址节地址的差值、与其生成一个Trail文件所用的时间的比值;并且/或者
所述进程需要吞吐量是所述抽取进程的Trail文件转换系数均值与其单位时间抽取日志量的乘积,所述Trail文件转换系数均值是所述抽取进程解析Redo日志产生的预定Trail文件量与预定Redo日志量的比值。
4.根据权利要求3所述的方法,其特征在于,通过如下公式计算所述Trail文件转换系数均值
其中,St为trail文件量,Sr为redo日志量,i为每次采集的次数,n为总次数。
5.根据权利要求1所述的方法,其特征在于,在判定需要执行抽取进程拆分的情况下,所述方法还包括:
基于采集的原抽取进程的抽取统计信息以及该原抽取进程的参数配置信息,将原抽取进程拆分为多个新抽取进程。
6.根据权利要求5所述的方法,其特征在于,所述将原抽取进程拆分为多个新抽取进程,包括:
将所述原抽取进程的关键信息复制到所述新抽取进程,所述关键信息包括所述原抽取进程的参数配置信息、其对应的trail文件信息以及原抽取进程的检查点信息;以及
基于所述抽取统计信息,将关联的数据拆分到一个新抽取进程中。
7.根据权利要求6所述的方法,其特征在于,所述关联包括如下的至少一项:
所述新抽取进程对应于所述数据的schema;
所述数据是DML/DDL中相关联的表;或者
所述数据是同一个表中的连续区块。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述原抽取进程与所述新抽取进程的检查点信息一致的情况下,启动新抽取进程。
9.根据权利要求1所述的方法,其特征在于,对于复制进程,所述进程统计信息包括复制进程的热点表信息和检查点信息的复制进程统计信息,所述基于所采集的进程统计信息,分析所述进程性能问题的原因是否与进程数量有关,包括:
基于所述复制进程统计信息,判定所述复制进程的进程性能问题是否为IO问题、统计信息过旧问题、和/或索引缺失问题;以及
在所述进程性能问题不是IO问题、统计信息过旧问题、和/或索引缺失问题的情况下,判定所述复制进程的进程性能问题的原因与进程数量有关。
10.根据权利要求9所述的方法,其特征在于,在判定需要执行复制进程拆分的情况下,所述方法还包括:
将所统计的热点表信息分为第一热点表信息和第二热点表信息;以及
将所述第一热点表信息和第二热点表信息分别放到两组新复制进程中,所述新复制进程与需要拆分的原复制进程的进程检查点信息一致。
11.一种进程拆分判别装置,其特征在于,所述装置包括:
性能识别单元,用于响应于业务量增大,判断是否存在进程性能问题;
信息采集单元,用于在存在进程性能问题的情况下,采集进程统计信息;
性能分析单元,用于基于所采集的进程统计信息,分析所述进程性能问题的原因是否与进程数量有关;以及
拆分判定单元,用于在所述进程性能问题的原因与进程数量有关的情况下,判定需要执行进程拆分。
12.一种计算设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-10中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711491534.9A CN109992381A (zh) | 2017-12-30 | 2017-12-30 | 进程拆分判别方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711491534.9A CN109992381A (zh) | 2017-12-30 | 2017-12-30 | 进程拆分判别方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109992381A true CN109992381A (zh) | 2019-07-09 |
Family
ID=67111046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711491534.9A Pending CN109992381A (zh) | 2017-12-30 | 2017-12-30 | 进程拆分判别方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992381A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051278A (zh) * | 2019-12-27 | 2021-06-29 | 中国移动通信集团湖北有限公司 | 一种数据复制进程延时的处理方法和系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573056A (zh) * | 2015-01-22 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于oracle数据库大数据量在线迁移的方法 |
CN104850460A (zh) * | 2015-06-02 | 2015-08-19 | 上海斐讯数据通信技术有限公司 | 一种服务程序线程管理方法 |
CN105045681A (zh) * | 2015-07-10 | 2015-11-11 | 上海爱数软件有限公司 | 一种Oracle多通道并行备份及恢复方法 |
CN105095327A (zh) * | 2014-05-23 | 2015-11-25 | 深圳市珍爱网信息技术有限公司 | 一种分布式etl系统及调度方法 |
CN106095828A (zh) * | 2016-06-01 | 2016-11-09 | 积成电子股份有限公司 | 一种基于用电信息采集终端的曲线数据存储方案 |
US20160371319A1 (en) * | 2015-06-19 | 2016-12-22 | Sap Se | Synchronization on reactivation of asynchronous table replication |
CN106407231A (zh) * | 2015-08-03 | 2017-02-15 | 天脉聚源(北京)科技有限公司 | 一种数据多线程导出方法及系统 |
CN106777270A (zh) * | 2016-12-28 | 2017-05-31 | 中国民航信息网络股份有限公司 | 一种基于提交点时间线同步的异构数据库复制并行执行系统及方法 |
CN107231435A (zh) * | 2017-07-13 | 2017-10-03 | 中体彩科技发展有限公司 | 数据同步监控方法及系统 |
-
2017
- 2017-12-30 CN CN201711491534.9A patent/CN109992381A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095327A (zh) * | 2014-05-23 | 2015-11-25 | 深圳市珍爱网信息技术有限公司 | 一种分布式etl系统及调度方法 |
CN104573056A (zh) * | 2015-01-22 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于oracle数据库大数据量在线迁移的方法 |
CN104850460A (zh) * | 2015-06-02 | 2015-08-19 | 上海斐讯数据通信技术有限公司 | 一种服务程序线程管理方法 |
US20160371319A1 (en) * | 2015-06-19 | 2016-12-22 | Sap Se | Synchronization on reactivation of asynchronous table replication |
CN105045681A (zh) * | 2015-07-10 | 2015-11-11 | 上海爱数软件有限公司 | 一种Oracle多通道并行备份及恢复方法 |
CN106407231A (zh) * | 2015-08-03 | 2017-02-15 | 天脉聚源(北京)科技有限公司 | 一种数据多线程导出方法及系统 |
CN106095828A (zh) * | 2016-06-01 | 2016-11-09 | 积成电子股份有限公司 | 一种基于用电信息采集终端的曲线数据存储方案 |
CN106777270A (zh) * | 2016-12-28 | 2017-05-31 | 中国民航信息网络股份有限公司 | 一种基于提交点时间线同步的异构数据库复制并行执行系统及方法 |
CN107231435A (zh) * | 2017-07-13 | 2017-10-03 | 中体彩科技发展有限公司 | 数据同步监控方法及系统 |
Non-Patent Citations (1)
Title |
---|
朱祥: ""Oracle GoldenGate的性能研究及在证券业的应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051278A (zh) * | 2019-12-27 | 2021-06-29 | 中国移动通信集团湖北有限公司 | 一种数据复制进程延时的处理方法和系统 |
CN113051278B (zh) * | 2019-12-27 | 2023-04-07 | 中国移动通信集团湖北有限公司 | 一种数据复制进程延时的处理方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104348667B (zh) | 基于告警信息的故障定位方法 | |
CN108959400B (zh) | 银行系统历史数据清理方法及装置 | |
CN107016018B (zh) | 数据库索引创建方法及装置 | |
CN106209405B (zh) | 故障诊断方法及装置 | |
CN107147639A (zh) | 一种基于复杂事件处理的实时安全预警方法 | |
CN107016019B (zh) | 数据库索引创建方法及装置 | |
CN105721193A (zh) | 一种系统信息监控的方法和设备 | |
US10261967B2 (en) | Data extraction | |
CN104268216A (zh) | 一种基于互联网信息的数据清洗系统 | |
CN103473076A (zh) | 一种代码版本的发布方法及系统 | |
CN113239365B (zh) | 一种基于知识图谱的漏洞修复方法 | |
CN105095330A (zh) | 一种基于压缩包内容的文件格式识别方法及系统 | |
CN107231435A (zh) | 数据同步监控方法及系统 | |
CN113505048A (zh) | 基于应用系统画像的统一监控平台及实现方法 | |
CN112468339A (zh) | 告警处理方法、系统、装置和存储介质 | |
CN102385632A (zh) | 一种日志自动分类通知方法及系统 | |
CN109992381A (zh) | 进程拆分判别方法、装置、设备及介质 | |
JP2003216457A (ja) | エラーログ収集解析エージェントシステム | |
CN113609393A (zh) | 一种基于数据服务和数据管理的数字化平台 | |
CN111475520B (zh) | 一种对区块数据进行自动化监控和告警的方法及系统 | |
CN105138612A (zh) | 数据一致性差异原因的分析和定位的方法及系统 | |
CN111831545A (zh) | 测试用例生成方法、生成装置、计算机设备和存储介质 | |
US8037077B2 (en) | Computer-readable recording medium, method, and apparatus for creating message patterns | |
CN110457323B (zh) | 数据表的处理方法及装置 | |
CN109408480B (zh) | 基于oracle多节点rac日志基于scn对齐读取的方法及系统 |
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 |
Application publication date: 20190709 |
|
RJ01 | Rejection of invention patent application after publication |