System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及计算机,具体而言,涉及一种数据库同步延迟处理方法、装置、电子设备及存储介质。
技术介绍
1、基于日志事务的重做是实现主数据库到从数据库的数据同步的一种常见方法,它利用主数据库事务日志中的变更信息来重放这些变更,并在从数据库上执行相同的操作,从而保持数据的一致性。但是,受到硬件或网络环境的限制,从主数据库到从数据库的数据同步往往会伴随着同步延迟,影响数据同步的效率。
2、因此,如何快速解决主从数据库之间的同步延迟,是需要关注的问题。
技术实现思路
1、本申请实施例的目的在于提供一种数据库同步延迟处理方法、装置、电子设备及存储介质,能够快速解决主从数据库之间的同步延迟,提高数据同步的效率。
2、为了实现上述目的,本申请实施例采用的技术方案如下:
3、第一方面,本申请实施例提供了一种数据库同步延迟处理方法,所述方法包括:
4、轮询检测主数据库到从数据库的数据同步是否发生同步延迟;
5、若发生所述同步延迟,则从所述从数据库获取重做线程执行信息和从所述主数据库获取ddl变更信息;
6、根据所述重做线程执行信息和所述ddl变更信息,确定同步延迟类型;
7、根据所述同步延迟类型调整所述从数据库中重做线程的执行方式,以恢复所述同步延迟。
8、可选地,所述轮询检测主数据库到从数据库的数据同步是否发生同步延迟的步骤,包括:
9、从所述从数据库获取同步延迟时间,其中,所述同步延迟时
10、判断所述同步延迟时间是否超过第一预设阈值;
11、若是,则确定发生同步延迟;
12、若否,则确定未发生同步延迟,在等待设定时长后返回执行从所述从数据库获取同步延迟时间的步骤。
13、可选地,所述同步延迟类型包括重做线程阻塞和重做线程资源竞争;所述重做线程执行信息包括重做线程阻塞信息和重做线程等待信息;
14、所述根据所述重做线程执行信息和所述ddl变更信息,确定同步延迟类型的步骤,包括:
15、根据所述重做线程阻塞信息,判断所述从数据库中是否存在执行状态处于排他模式等待状态的重做线程;
16、若所述从数据库中存在执行状态处于排他模式等待状态的重做线程,则根据所述ddl变更信息,判断所述主数据库中是否存在被阻塞对象的ddl变更操作;
17、若所述主数据库中存在被阻塞对象的ddl变更操作,则确定所述同步延迟的类型为所述重做线程阻塞;
18、若所述从数据库中不存在执行状态处于排他模式等待状态的重做线程或者所述主数据库中不存在被阻塞对象的ddl变更操作,则根据所述重做线程等待信息,判断所述从数据库中是否存在处于并行重做事务转发的重做线程;
19、若所述从数据库中存在处于并行重做事务转发的重做线程,则确定所述同步延迟的类型为所述重做线程资源竞争。
20、可选地,所述重做线程阻塞信息包括所述从数据库中发生的每个重做线程阻塞事件,所述重做线程阻塞事件包括事件发生时间和阻塞锁模式;
21、所述根据所述重做线程阻塞信息,判断所述从数据库中是否存在执行状态处于排他模式等待状态的重做线程的步骤,包括:
22、从所述重做线程阻塞信息中获取所述事件发生时间最接近同步延迟检测时间的目标重做线程阻塞事件;
23、判断所述目标重做线程阻塞事件中的所述阻塞锁模式是否为排他模式;
24、若是,则确定所述从数据库中存在执行状态处于排他模式等待状态的重做线程;
25、若否,则确定所述从数据库中不存在执行状态处于排他模式等待状态的重做线程。
26、可选地,所述ddl变更信息包括所述主数据库中发生的每个ddl变更事件,所述ddl变更事件包括事件执行时间;
27、所述根据所述ddl变更信息,判断所述主数据库中是否存在被阻塞对象的ddl变更操作的步骤,包括:
28、判断所述ddl变更信息中是否存在所述事件执行时间处于同步延迟检测时间前设定时间范围内的ddl变更事件;
29、若是,则确定所述主数据库中存在被阻塞对象的ddl变更操作;
30、若否,则确定所述主数据库中不存在被阻塞对象的ddl变更操作。
31、可选地,所述从数据库中的重做线程为多个,所述重做线程等待信息包括每个所述重做线程的等待类型和等待时间;
32、所述根据所述重做线程等待信息,判断所述从数据库中是否存在处于并行重做事务转发的重做线程的步骤,包括:
33、判断所述重做线程等待信息中每个等待类型为并行重做事务转发的重做线程的等待时间之和是否超过第二预设阈值;
34、若是,则确定所述从数据库中存在处于并行重做事务转发的重做线程;
35、若否,则确定所述从数据库中不存在处于并行重做事务转发的重做线程。
36、可选地,所述重做线程阻塞事件还包括阻塞对象id;
37、在根据所述重做线程阻塞信息,判断所述从数据库中是否存在执行状态处于排他模式等待状态的重做线程之后,还包括:
38、若所述从数据库中存在执行状态处于排他模式等待状态的重做线程,则根据所述目标重做线程阻塞事件中的阻塞对象id,确定使重做线程处于排他模式等待状态的阻塞源头进程;
39、所述根据所述同步延迟的类型调整重做线程的执行方式,以恢复所述同步延迟的步骤,包括:
40、若所述同步延迟类型为重做线程阻塞,则结束所述阻塞源头进程;
41、若所述同步延迟类型为重做线程资源竞争,则将处于并行重做事务转发的重做线程调整为单线程。
42、第二方面,本申请实施例还提供了一种数据库同步延迟处理装置,所述装置包括:
43、检测模块,用于轮询检测主数据库到从数据库的数据同步是否发生同步延迟;
44、获取模块,用于若发生所述同步延迟,则从所述从数据库获取重做线程执行信息和从所述主数据库获取ddl变更信息;
45、确定模块,用于根据所述重做线程执行信息和所述ddl变更信息,确定同步延迟类型;
46、处理模块,用于根据所述同步延迟类型调整所述从数据库中重做线程的执行方式,以恢复所述同步延迟。
47、第三方面,本申请实施例还提供了一种电子设备,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现上述第一方面中的数据库同步延迟处理方法。
48、第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面中的数据库同步延迟处理方法。
49、相对现有技术,本申请实施例提供的一种数据库同步延迟处理方法、装置、电子设备及存储介质,在检本文档来自技高网...
【技术保护点】
1.一种数据库同步延迟处理方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述轮询检测主数据库到从数据库的数据同步是否发生同步延迟的步骤,包括:
3.如权利要求1所述的方法,其特征在于,所述同步延迟类型包括重做线程阻塞和重做线程资源竞争;所述重做线程执行信息包括重做线程阻塞信息和重做线程等待信息;
4.如权利要求3所述的方法,其特征在于,所述重做线程阻塞信息包括所述从数据库中发生的每个重做线程阻塞事件,所述重做线程阻塞事件包括事件发生时间和阻塞锁模式;
5.如权利要求3所述的方法,其特征在于,所述DDL变更信息包括所述主数据库中发生的每个DDL变更事件,所述DDL变更事件包括事件执行时间;
6.如权利要求3所述的方法,其特征在于,所述从数据库中的重做线程为多个,所述重做线程等待信息包括每个所述重做线程的等待类型和等待时间;
7.如权利要求4所述的方法,其特征在于,所述重做线程阻塞事件还包括阻塞对象ID;
8.一种数据库同步延迟处理装置,其特征在于,所述装置包括:
< ...【技术特征摘要】
1.一种数据库同步延迟处理方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述轮询检测主数据库到从数据库的数据同步是否发生同步延迟的步骤,包括:
3.如权利要求1所述的方法,其特征在于,所述同步延迟类型包括重做线程阻塞和重做线程资源竞争;所述重做线程执行信息包括重做线程阻塞信息和重做线程等待信息;
4.如权利要求3所述的方法,其特征在于,所述重做线程阻塞信息包括所述从数据库中发生的每个重做线程阻塞事件,所述重做线程阻塞事件包括事件发生时间和阻塞锁模式;
5.如权利要求3所述的方法,其特征在于,所述ddl变更信息包括所述主数据库中发生的每个ddl变更事件,所述ddl变更事件包括事件执...
【专利技术属性】
技术研发人员:王栋,罗金,王兵,葛美玲,
申请(专利权)人:上海恒生聚源数据服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。