数据同步监控方法及系统与流程

文档序号:11180785阅读:914来源:国知局
数据同步监控方法及系统与流程

本发明涉及数据处理领域,尤指一种数据同步监控方法及系统。



背景技术:

现有技术中,在goldengate里使用了心跳表机质来实现复制延时的监视工作,主要是在配置goldengate时加入一张表,在源端时时差入一条数据,记录插入时间,当这条数据被复制到目标端时就可以判断数据延时了多少,用于提醒用户数据是截到什么时间点的,或是让程序用来判断数据同步延时情况。goldengate软件是oracle公司推出的数据同步软件,在数据同步量比较大的时候,目标端单一的复制进程难以高效率的完成数据同步工作,因此会产生数据同步延时情况。业界普遍的优化方法就是增加复制进程,将需要同步的数据表分散到多个复制进程中进行数据同步,进而加快数据总体的同步。

用goldengate软件同步数据时有如下缺点:不拆分复制进程会导致大量的数据同步延时。拆分出的复制进程数量不够或者负载均衡配置的不好,会导致在源端同一个事物包的数据,在同步到目标端时,一部分数据已经写入数据库,而其余的部分还不能及时写入;拆分出足够多的复制进程可以消除数据同步延时,但其消耗的系统性能会比较大,因为goldengate是作为单独的软件运行在操作系统中;并且复制进程的管理上会比较麻烦。

另外,现有的心跳表虽然可以用于监控goldengate数据同步情况,很多时候是出于业务需要,如结算,在某一刻需要进行结算时,只有当数据同步完成时才能进行,就可以加入心跳表来判断数据同步是否存在延时,如果没有延时,就代表这一时刻之前的数据已经同步完成了;在goldengate中心跳表的使用致使单个复制进程在复制数据时存在瓶颈,例如在多个复制进程时,如果多个复制进程中都同步心跳数据同步到目标端心跳表,在目标端的心跳表中就会有多个数据同步延时时间的记录,程序因此无法判断数据同步延时情况。



技术实现要素:

本发明目的在于解决在使用数据同步心跳表监控数据同步延时,由于goldengate复制进程拆分,而导致无法监控拆分出来的复制进程的数据同步延时情况。

为达上述目的,本发明具体提供一种数据同步监控方法,所述监控方法包含:发送端向接收端发送同步数据;接收端获取同步数据的延迟时间,当所述延迟时间大于预定阈值时,向所述发送端发出进程拆分指令;发送端根据进程拆分指令,对发送同步数据的进程进行拆分,获得复数个进程,并通过所述进程共同发送同步数据;接收端接收到的同步数据后,向同步数据中加入标识信息;数据库根据所述标识信息对同步数据进行延迟处理后存储。

在上述数据同步监控方法中,优选的,当所述延迟时间大于预定阈值时,向所述发送端发出进程拆分指令还包含:接收端检测系统负荷情况,并根据所述系统负荷情况向所述发送端发出拆分至少一个进程的进程拆分指令。

在上述数据同步监控方法中,优选的,根据所述系统负荷情况向所述发送端发出拆分至少一个进程的进程拆分指令包含:当系统内存及cpu使用率均低于10%时,接收端向发送端发出拆分至少一个进程的进程拆分指令。

在上述数据同步监控方法中,优选的,所述发送端向接收端发送同步数据还包含:在同步数据中加入心跳表,所述心跳表包含发送端发送同步数据的初始时间。

在上述数据同步监控方法中,优选的,所述接收端获取同步数据的延迟时间包含;接收端接收到同步数据时,将所述心跳表中的初始时间与当前时间比较,获得延迟时间。

在上述数据同步监控方法中,优选的,所述标识信息为发送所述同步数据的进程的进程号字段列。

在上述数据同步监控方法中,优选的,所述接收端接收到的同步数据后,向同步数据中加入标识信息还包含:接收端获取复数个进程发送的同步数据的延迟时间,当所述延迟时间大于预定阈值时,向所述发送端发出对应进程的进程拆分指令。

在上述数据同步监控方法中,优选的,所述数据库根据所述标识信息对同步数据进行延迟处理后存储包含:数据库根据所述标识信息获得与所述标识信息相关进程的延迟时间信息,将所述延迟时间信息中最长的延迟时间作为延迟数据,根据所述延迟数据对所述相关进程发送的同步数据做延迟处理,并将处理后的同步数据合并后存储。

本发明还提供一种数据同步监控系统,所述系统包含接收端、发送端和数据库;所述发送端用于发送同步数据,以及根据进程拆分指令,对发送同步数据的进程进行拆分,获得复数个进程,并通过所述进程共同发送同步数据;所述接收端用于获取同步数据的延迟时间,当所述延迟时间大于预定阈值时,向所述发送端发出进程拆分指令,以及在接收到的同步数据后,向同步数据中加入标识信息;所述数据库用于根据所述标识信息对同步数据进行延迟处理后存储。

在上述数据同步监控系统中,优选的,所述接收端还包含监控模块,所述监控模块用于检测系统负荷情况,并根据所述系统负荷情况向所述发送端发出拆分至少一个进程的进程拆分指令。

通过本发明所提供的数据同步监控方法及系统,将视图概念引入心跳表中,最终实现goldgente复制进程的拆分优化,不仅降低数据延时情况的发生,还避免了业务程序上的修改,最终使得在业务高峰期时数据同步延时由原来的2小时降为5分钟以内。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1为本发明所提供的数据同步监控方法的流程示意图;

图2为本发明所提供的数据同步监控系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

请参考图1所示,本发明具体提供一种数据同步监控方法,所述监控方法包含:发送端向接收端发送同步数据;接收端获取同步数据的延迟时间,当所述延迟时间大于预定阈值时,向所述发送端发出进程拆分指令;发送端根据进程拆分指令,对发送同步数据的进程进行拆分,获得复数个进程,并通过所述进程共同发送同步数据;接收端接收到的同步数据后,向同步数据中加入标识信息;数据库根据所述标识信息对同步数据进行延迟处理后存储。其中,所述标识信息可为发送所述同步数据的进程的进程号字段列;当然实际使用时,也可为其他标识号,例如拆分进程a时,新拆分出来的进程则为a1、a2、a3等,如再次对a1拆分的话,则为a11、a12、a13等,本发明在此并不对其做过多限制。

在上述实施例中,当所述延迟时间大于预定阈值时,向所述发送端发出进程拆分指令还包含:接收端检测系统负荷情况,并根据所述系统负荷情况向所述发送端发出拆分至少一个进程的进程拆分指令;其中系统负荷情况包含系统的内存使用率,cpu使用率等,其目的在于判断系统性能,以此保证后期拆分进程后不会影响到系统的正常运行,具体的,例如当系统内存及cpu使用率均低于10%时,接收端向发送端发出拆分至少一个进程的进程拆分指令;此时,使用率较低,代表系统较为空闲,此刻可要求发送端拆分至少一个进程,为保证系统安稳运行,在该实施例中,优选的可进一步确认同步数据的延时是由于该进程性能达到瓶颈所致,如是,则对该进程进行拆分优化,当然为系统平稳运行考虑,每次拆分出一个进程即可;鉴于实际情况的不同,本领域相关技术人员也可对上述具体数值酌情调整,本发明在此并不做限制。

在上述实施例中,所述发送端向接收端发送同步数据主要是在同步数据中加入心跳表,所述心跳表包含发送端发送同步数据的初始时间。其后,接收端接收到同步数据时,将所述心跳表中的初始时间与当前时间比较,获得延迟时间。

在本发明一优选的实施例中,所述接收端接收到的同步数据后,向同步数据中加入标识信息还包含:接收端获取复数个进程发送的同步数据的延迟时间,当所述延迟时间大于预定阈值时,向所述发送端发出对应进程的进程拆分指令;亦即在拆分后,再次检测进程发送过来的同步数据的延迟时间,如该延迟时间依然大于预定阈值,如10分钟的话,在此对超出预定阈值的进程进行拆分;举例来说,当a的延迟时间超出预定阈值时,对a进行拆分,获得a1、a2、a3三个进程,在后期再次检测延迟时间时,发现a2、a3也超出预定阈值,此时进一步对a2、a3进行拆分,获得a21、a22、a23、a31等,依次类推直到系统负荷超出预定使用率,或上述进程中不再存在延迟时间超出预定阈值的进程时为止,当然在上述过程中,拆分进程时还需对该进程进行检测,确认上述延迟时间是因为进程性能达到瓶颈时才进行进程拆分,提高数据传输效率。

在上述实施例中,所述数据库根据所述标识信息对同步数据进行延迟处理后存储包含:数据库根据所述标识信息获得与所述标识信息相关进程的延迟时间信息,将所述延迟时间信息中最长的延迟时间作为延迟数据,根据所述延迟数据对所述相关进程发送的同步数据做延迟处理,并将处理后的同步数据合并后存储。

具体的,在实际工作中当变更d_gg_timestamp和d_gg两张心跳表的复制模式,首先停止二代数据库抽取和和投递进程,停止二代数据库应用进程,因归集库d_gg和d_gg_timestamp重命名会导致goldengate心跳作业代码失效,导致作业失败,因此在执行上述操作之前先把归集库的心跳作业暂停,归集库和查询库上创建表d_gg_stat,d_gg_log,归集库上为d_gg_stat和d_gg_log增加附加日志,归集库和查询库为新建表d_gg_stat初始化数据,归集库和查询库创建视图,ogg生成表结构定义文件,删除d_gg和d_gg_timestamp两个表的同步配置,去掉所有应用进程中的d_gg和d_gg_timestamp两个表的复制:maptiger.d_gg,targettiger.d_gg;maptiger.d_gg_timestamp,targettiger.d_gg_timestamp;其后再增加d_gg_stat和d_gg_log两个表的同步配置,修改归集库节点1中10个应用进程的配置文件,增加两个表的同步配置,进程名称及增加内容,启动二代数据库抽取和和投递进程,然后进行实施验证:检查所有ogg进程运行情况,检查二代归集qrdb1-qrdb2-qrdb3内,视图d_gg_timestamp、d_gg应该有最新的数据;然后,进行进程拆分,进程rett2和查询库应用进程recl2;实施操作开始时间点为00:10,需求在3:00前完成,否则会导致归集库日结作业失败;拆分归集库节点2应用进程,修改第二组交易库的应用进程rett2,记录进程当前的extseqno及rba,修改进程配置文件,初始化归集库数据,为三组交易库的t_lottery和t_lottery_info修改附加日志,停止extt和putt抽取和投递进程,删除并创建附加日志,修改extt2的配置,增加nocompressdeletes配置,启动extt2和putt2抽取和投递进程,为t_lottery_(info)和r_base新增应用进程,为三个新增进程复制源定义文件,新增应用进程rett21,改应用进程启动位置,启动rett2及新增的3个应用进程,实施验证,其都应该返回数据,并且每分钟会新进一条数据;此时统计各应用进程发送数据的延迟时间,将最长延迟时间作为参考时间,对上述进程发送的数据做延迟处理。

请参考图2所示,本发明还提供一种数据同步监控系统,所述系统包含接收端、发送端和数据库;所述发送端用于发送同步数据,以及根据进程拆分指令,对发送同步数据的进程进行拆分,获得复数个进程,并通过所述进程共同发送同步数据;所述接收端用于获取同步数据的延迟时间,当所述延迟时间大于预定阈值时,向所述发送端发出进程拆分指令,以及在接收到的同步数据后,向同步数据中加入标识信息;所述数据库用于根据所述标识信息对同步数据进行延迟处理后存储。

在上述数据同步监控系统中,所述接收端还包含监控模块,所述监控模块用于检测系统负荷情况,并根据所述系统负荷情况向所述发送端发出拆分至少一个进程的进程拆分指令;其中所述监控模块主要监控系统的内存使用率,cpu使用率等,其目的在于判断系统性能,以此保证后期拆分进程后不会影响到系统的正常运行,具体的,例如当系统内存及cpu使用率均低于10%时,接收端向发送端发出拆分至少一个进程的进程拆分指令;此时,使用率较低,代表系统较为空闲,此刻可要求发送端拆分至少一个进程,为保证系统安稳运行,在该实施例中,优选的可进一步确认同步数据的延时是由于该进程性能达到瓶颈所致,如是,则对该进程进行拆分优化,当然为系统平稳运行考虑,每次拆分出一个进程即可;鉴于实际情况的不同,本领域相关技术人员也可对上述具体数值酌情调整,本发明在此并不做限制;值得说明的是,在上述实施例中,本发明所提供的数据同步监控方法及系统主要应用于goldgente程序,当然其并不限于goldgente以外的系统使用。

通过本发明所提供的数据同步监控方法及系统,将视图概念引入心跳表中,最终实现goldgente复制进程的拆分优化,不仅降低数据延时情况的发生,还避免了业务程序上的修改,最终使得在业务高峰期时数据同步延时由原来的2小时降为5分钟以内。

显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1