一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

PostgreSQL数据库流复制异常处理方法及装置与流程

2021-11-09 21:41:00 来源:中国专利 TAG:

postgresql数据库流复制异常处理方法及装置
技术领域
1.本发明属于数据库流异常处理技术领域,具体涉及一种postgresql数据库流复制异常处理方法及装置。


背景技术:

2.postgresql是一套企业级的、跨平台、高度可定制的、功能强大的开源数据库系统。postgresql的可靠性、稳定性、数据一致性等获得了数据库行业的肯定,是唯一能实现数据零丢失的开源数据库系统。随着postgresql的商用逐渐推动,在数据库市场上成为对标oracle,mysql等传统大型商业数据库的有力竞争者。
3.数据库系统中,数据的备份成为保证数据安全性的一个重要的后备手段;而随着数据库服务器的集群分布,数据库服务器之间可以协同工作,主服务器出现故障时,允许多台计算机提供相同的数据。
4.postgresql提供了流复制技术实现数据的同步,即备用服务器可以实时同步主服务器。首先主备数据库服务器间使用postgresql提供的tcp协议建立网络连接。主数据库的服务器在数据变动并产生wal记录后,立即将记录以tcp数据流的方式传送给备用数据库服务器,而不必等到预写日志文件被填充后成才进行传输。此种机制极大的缩减了主备服务器间的数据同步延迟,拥有更高效的可用度。流复制技术为数据库的热备、高可用性、负载均衡等提供了原生技术支持。postgresql流复制提供异步复制和同步复制两种方式。
5.postgresql流复制存在问题如下:
6.(一)postgresql流复制默认是异步的,如果主数据库服务器崩溃,则某些已被提交的事务可能还没有被复制到备用数据库服务器,这会导致数据丢失。
7.(二)同步复制能够保证一个事务的所有修改都能被传送到一台或者多台同步备用数据库服务器。在请求同步流复制时,一个写事务的每次提交将一直等待,直到收到一个确认表明该提交在主数据库服务器和备用数据库服务器上都已经被写入到磁盘上的事务日志中。此种方式保证主备服务器wal日志双双落盘才返回成功,但增加了主备数据库服务器间来回通讯确认的等待时间,延长了前台客户端请求事务的响应时间。
8.在开启同步复制模式情况下,备数据库节点的状态会直接影响到主数据库节点。若整个分布式集群架构所有备数据库节点同时崩溃且不能恢复的时候,主数据库节点进行写事务操作,此时主数据库节点收不到任何备用节点回复的确认,那么主数据库节点上的所有操作将会被挂住,一直到有备数据库节点恢复并发回确认回复后,主数据库节点才恢复正常,而此时如果主数据库节点是很重要的业务,此类挂死不能操作的现象对用户来说是极其致命的缺陷。
9.此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种postgresql数据库流复制异常处理方法及装置,是非常有必要的。


技术实现要素:

10.针对现有技术的上述现有postgresql数据库流复制的异步复制模式下,在主数据库节点崩溃时,若某些已被提交的事务还没有被复制到后备服务器,会导致数据丢失,而同步复制模式下所有后备数据库节点都崩溃的情况下,导致主数据库节点挂死缺陷,本发明提供一种postgresql数据库流复制异常处理方法及装置,以解决上述技术问题。
11.第一方面,本发明提供一种postgresql数据库流复制异常处理方法,包括如下步骤:
12.s1.在主备数据库节点异步模式,主流复制控制器在控制写入预写日志前后,分别向备用流复制控制器发送用户写事务命令消息和主预写日志写入完成同步消息,再控制主日志发送模块向备用日志接收模块发送预写日志,并接收备用流复制控制器在备数据库节点完成预写日志回放后返回的备预写日志写入完成同步消息;
13.s2.当出现异步模式的主数据库节点崩溃,且存在主预写日志写入完成同步消息,但无备预写日志写入完成同步消息时,备用流复制控制器控制备用数据库节点执行写事务操作接收到的用户写事务操作命令,实现和主数据库数据保持一致;
14.s3.在主备数据库节点同步模式,主流复制控制器按设定周期向各备用流复制控制器发送握手消息,并根据预设时间门限内是否接收到握手消息答复判断对应备用数据库节点崩溃与否;
15.s4.当出现同步模式的备用数据库节点均崩溃,根据主数据库节点空闲与否判断更改主备数据库节点模式或者构造备用日志接收模块返回给主日志发送模块的确认消息。
16.进一步地,步骤s1之前还包括如下步骤:
17.s1a.在主数据库节点配置主流复制控制器,在备用数据库节点配置备用流复制控制器,并设置各流复制控制器获取所在数据库节点的配置信息;
18.s1b.根据流复制控制器获取的数据库节点的配置信息判断当前工作模式;
19.若为异步模式,进入步骤s1;
20.若为同步模式,进入步骤s3。流复制控制器读取配置信息用于后续消息处理和异常处理中的模式判断以及主数据库节点及备用数据可节点定位。
21.进一步地,所述数据库节点配置信息包括本节点主从配置、异步/同步模式、ip配置以及对端ip。本节点主从配置即判断流复制控制器所在节点为主数据库节点还是备数据库节点,ip配置及对端ip用于定位与当前数据库节点通信的数据库节点。
22.进一步地,步骤s1具体步骤如下:
23.s11.在主备数据库节点异步模式,主流复制控制器在主数据库节点接收到用户写事务操作后,向备用流复制控制器同步发送用户写事务命令;
24.s12.主流复制控制器控制本地写入预写日志,并在本地预写日志写入完成后,向备用流复制控制器发送主预写日志写入完成同步消息;
25.s13.主流复制控制器控制主日志发送模块向备日志接收模块发送预写日志;
26.s14.备用流复制控制器将备用日志接收模块接收的预写日志发送到日志回放模块进行回放,并在日志回放完成后,向主流复制控制器发送备预写日志写入完成同步消息。用户写事务命令及主预写日志写入完成同步消息记录主数据库节点进行写入本地预写日志的时间节点,备预写日志写入完成同步消息记录备用数据库节点完成日志回放的时间节
点。
27.进一步地,步骤s11中,在主备数据库节点异步模式,主数据库节点的postgres模块接收到用户写事务操作后,通知主流复制控制器同步向备用流复制控制器发送用户写事务命令消息;
28.步骤s12中,在向备用流复制控制器发送主写入完成同步消息后,主流复制控制器通过postgres模块向用户返回预写日志在主数据库节点完成通知;
29.步骤s14中,备用流复制控制器向主流复制控制器发送备预写日志写入完成同步消息后,通过备用日志接收模块经主日志接收模块向主流复制控制器返回日志回放完成通知。postgres模块为postgres数据库与用户交换的模块,接收用户的写事务操作以及向用户返回写事务完成通知;主日志接收模块从主数据库节点启动,主要负责将主数据库节点产生的预写日志记录发送给作为备用数据库节点的下位机;备用日志接收模块则从备用数据库节点自动,对应的主日志发送模块与其进行通信,主要负责接收作为上位机的主日志发送模块发送的预写日志记录;日志回放模块从备用数据节点启动,主要负责将备用日志接收模块接收到的预写日志记录在备用数据库节点进行回放,异步达到主备数据库节点间的数据同步。在级联模式下,一台备用数据库节点可能同时启动三个模块,即既负责接收上位机的预写日志记录并回放,同时也将预写日志记录继续发往下位机。
30.进一步地,步骤s2具体步骤如下:
31.s21.在主备数据库节点异步模式,备用流复制控制器判断是否出现主数据库节点崩溃;
32.若是,进入步骤s22;
33.若否,返回步骤s21;
34.s22.备用流复制控制器检查与主流复制控制器的同步写事务操作记录;
35.s23.当存在主写入完成同步消息,但无对应的备预写日志写入完成同步消息时,备用流复制控制器执行写事务操作命令,以实现备用数据库节点数据和主数据库节点数据保持一致。原有异步复制模式时,postgres模块在主数据库完成本地预写日志写入,主数据库节点上提交事务时不需要等待备用数据库节点接收预写日志并完成日志回放时便返回成功;此时出现主数据库节点崩溃时,则会出现用户写事务在主数据库节点的日志写入完成,而备数据库节点并没有接受到主数据库节点同步的预写日志,从而主备数据不同步,本发明中,通过检查主写入完成同步消息和备预写日志写入完成同步消息及时发现异常,同步主备数据。
36.进一步地,步骤s3具体步骤如下:
37.s31.在主备数据库节点同步模式,主流复制控制器按照设定周期向所有备用流复制控制器发送握手消息;
38.s32.主流复制控制器判断是否存在备用流复制控制器超过预设时间门限未答复握手消息;
39.若是,进入步骤s33;
40.若否,返回步骤s31;
41.s33.主流复制控制器向运维管理平台发出告警,提示出现对应备用流复制控制器所在备用数据库节点崩溃的异常。通过握手消息及时发现出现异常的备用数据库节点。
42.进一步地,步骤s4具体步骤如下:
43.s41.当出现同步模式的备用流复制控制器均超过预设时间门限未答复握手消息,则判定所有备用数据库节点均崩溃;
44.s42.主流复制控制器判断主数据库节点是否存在正在进行的写事务操作;
45.若否,进入步骤s43;
46.若是,进入步骤s45;
47.s43.主流复制控制器将主数据库节点模式更改为异步模式;
48.s44.主流复制控制器判断是否有备用数据库节点从崩溃状态恢复;
49.若是,主流复制控制器将主数据库节点模式恢复为同步模式,返回步骤s31;
50.若否,返回步骤s44;
51.s45.主流复制控制器根据当前进行状态停止主数据库节点的主日志发送模块向备用日志发送模块发送预写日志的操作,并构造备用日志接收模块返回给主日志发送模块日志回放完成通知,返回步骤s43。同步复制时,postgres模块必须在收到主日志发送模块返回的确认信息后,才能给用户发送成功返回信息,但备用节点的状态会直接影响到主库,若整个分布式集群架构所有备用数据库节点同时崩溃且不能恢复的时候,主数据库节点进行写事务操作,此时主数据库节点收不到任何备用数据库节点回复的确认,那么主数据库节点上的所有操作将会被挂住,一直到有备用数据库节点恢复并发回确认回复后;主节数据库点才恢复正常。本发明中通过握手消息解决及时发现异常,并通过更改同步模式到异步,避免主数据库节点挂死。
52.第二方面,本发明提供一种postgresql数据库流复制异常处理装置,包括:
53.异步模式消息处理单元,用于在主备数据库节点异步模式,主流复制控制器在控制写入预写日志前后,分别向备用流复制控制器发送用户写事务命令和主写入完成同步消息,再控制主日志发送模块向备用日志接收模块发送预写日志,并接收备用流复制控制器在备数据库节点完成预写日志回放后返回的备预写日志写入完成同步消息;
54.异步模式异常处理单元,用于当出现异步模式的主数据库节点崩溃,且存在主预写日志写入完成同步消息,但无备预写日志写入完成同步消息时,备用流复制控制器控制备用数据库节点执行写事务操作,同步主备数据库节点数据;
55.同步模式消息处理单元,用于在主备数据库节点同步模式,主流复制控制器按设定周期向各备用流复制控制器发送握手消息,并根据预设时间门限内是否接收到握手消息答复判断对应备用数据库节点崩溃与否;
56.同步模式异常处理单元,用于当出现同步模式的备用数据库节点均崩溃,根据主数据库节点空闲与否判断更改主备数据库节点模式或者构造备用日志接收模块返回给主日志发送模块的确认消息。
57.进一步地,还包括:
58.流复制控制器配置单元,用于在主数据库节点配置主流复制控制器,在备用数据库节点配置备用流复制控制器,并设置各流复制控制器获取所在数据库节点的配置信息;
59.当前工作模式判断单元,用于根据流复制控制器获取的数据库节点的配置信息判断当前工作模式。
60.进一步地,异步模式消息处理单元包括:
61.写事务消息发送子单元,用于在主备数据库节点异步模式,主流复制控制器在主数据库节点接收到用户写事务命令后,向备用流复制控制器同步发送用户写事务命令消息;
62.写入完成同步消息发送子单元,用于主流复制控制器控制本地写入预写日志,并在本地预写日志写入完成后,向备用流复制控制器发送主预写日志写入完成同步消息;
63.预写日志下发子单元,用于主流复制控制器控制主日志发送模块向备日志接收模块发送预写日志;
64.备写入完成同步消息发送子单元,用于备用流复制控制器将备用日志接收模块接收的预写日志发送到日志回放模块进行回放,并在日志回放完成后,向主流复制控制器发送备预写日志写入完成同步消息。
65.进一步地,异步模式异常处理单元包括:
66.异步模式主数据库节点崩溃判断子单元,用于在主备数据库节点异步模式,备用流复制控制器判断是否出现主数据库节点崩溃;
67.同步写事务操作记录检查子单元,用于出现主数据库节点崩溃时,备用流复制控制器检查与主流复制控制器的同步写事务操作记录;
68.数据同步子单元,用于当存在主预写日志写入完成同步消息,但无对应的备预写日志写入完成同步消息时,备用流复制控制器执行写事务操作命令,以实现备用数据库节点数据和主数据库节点数据保持一致。
69.进一步地,同步模式消息处理单元包括:
70.握手消息发送子单元,用于在主备数据库节点同步模式,主流复制控制器按照设定周期向所有备用流复制控制器发送握手消息;
71.握手消息答复判断子单元,用于主流复制控制器判断是否存在备用流复制控制器超过预设时间门限未答复握手消息;
72.同步模式异常警告子单元,用于存在备用流复制控制器超过预设时间门限未答复握手消息时,主流复制控制器向运维管理平台发出告警,提示出现对应备用流复制控制器所在备用数据库节点崩溃的异常。
73.进一步地,同步模式异常处理单元包括:
74.备数据库全崩溃判定子单元,用于当出现同步模式的备用流复制控制器均超过预设时间门限未答复握手消息,则判定所有备用数据库节点均崩溃;
75.主数据库节点空闲判断子单元,主流复制控制器判断主数据库节点是否存在正在进行的写事务操作;
76.模式更改子单元,用于主数据库节点不存在正在进行的写事务操作时,主流复制控制器将主数据库节点模式更改为异步模式;
77.备用数据库节点恢复判断子单元,用于主流复制控制器判断是否有备用数据库节点从崩溃状态恢复;
78.模式恢复子单元,用于当有备用数据库节点从崩溃状态恢复时,主流复制控制器将主数据库节点模式恢复为同步模式;
79.返回消息构造子单元,用于主数据库节点存在正在进行的写事务操作时,主流复制控制器根据当前进行状态停止主数据库节点的主日志发送模块向备用日志发送模块发
送预写日志的操作,并构造备用日志接收模块返回给主日志发送模块日志回放完成通知。
80.本发明的有益效果在于,
81.本发明提供的postgresql数据库流复制异常处理方法及装置,实现在异步复制模式下,在主数据库节点崩溃,将某些已被提交的事务可能还没有被复制到备用数据库节点的数据,及时进行日志回放,同步主数据库节点和备用数据库节点的数据;实现在同步复制模式下,所有备用数据库节点都同时崩溃的极端情况下,防止主数据库节点挂死等待,保障用户能够正常进行后续操作。
82.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
83.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
84.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
85.图1是本发明的postgresql数据库流复制异常处理方法流程示意图一。
86.图2是本发明的postgresql数据库流复制异常处理方法流程示意图二。
87.图3是本发明的postgresql数据库异步模式数据过程示意图。
88.图4是本发明的postgresql数据库流复制异常处理装置示意图。
89.图中,1

异步模式消息处理单元;1.1

写事务消息发送子单元;1.2

写入完成同步消息发送子单元;1.3

预写日志下发子单元;1.4

备写入完成同步消息发送子单元;2

异步模式异常处理单元;2.1

异步模式主数据库节点崩溃判断子单元;2.2

同步写事务操作记录检查子单元;2.3

数据同步子单元;3

同步模式消息处理单元;3.1

握手消息发送子单元;3.2

握手消息答复判断子单元;3.3

同步模式异常警告子单元;4

同步模式异常处理单元;4.1

备数据库全崩溃判定子单元;4.2

主数据库节点空闲判断子单元;4.3

模式更改子单元;4.4

备用数据库节点恢复判断子单元;4.5

模式恢复子单元;4.6

返回消息构造子单元;5

流复制控制器配置单元;6

当前工作模式判断单元。
具体实施方式
90.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
91.实施例1:
92.如图1所示,本发明提供一种postgresql数据库流复制异常处理方法,包括如下步骤:
93.s1.在主备数据库节点异步模式,主流复制控制器在控制写入预写日志前后,分别向备用流复制控制器发送用户写事务命令和主写入完成同步消息,再控制主日志发送模块
向备用日志接收模块发送预写日志,并接收备用流复制控制器在备数据库节点完成预写日志回放后返回的备预写日志写入完成同步消息;
94.s2.当出现异步模式的主数据库节点崩溃,备用流复制控制器检测备用数据库节点状态,若存在主预写日志写入完成同步消息,但无备预写日志写入完成同步消息时,备用流复制控制器控制备用数据库节点执行用户写事务操作命令,实现和主数据库数据保持一致;
95.s3.在主备数据库节点同步模式,主流复制控制器按设定周期向各备用流复制控制器发送握手消息,并根据预设时间门限内是否接收到握手消息答复判断对应备用数据库节点崩溃与否;
96.s4.当出现同步模式的备用数据库节点均崩溃,根据主数据库节点空闲与否判断更改主备数据库节点模式或者构造备用日志接收模块返回给主日志发送模块的确认消息。
97.实施例2:
98.如图2所示,本发明提供一种postgresql数据库流复制异常处理方法,其特征在于,包括如下步骤:
99.s1a.在主数据库节点配置主流复制控制器,在备用数据库节点配置备用流复制控制器,并设置各流复制控制器获取所在数据库节点的配置信息;所述数据库节点配置信息包括本节点主从配置、异步/同步模式、ip配置以及对端ip;
100.s1b.根据流复制控制器获取的数据库节点的配置信息判断当前工作模式;
101.若为异步模式,进入步骤s1;
102.若为同步模式,进入步骤s3;
103.s1.在主备数据库节点异步模式,主流复制控制器在控制写入预写日志前后,分别向备用流复制控制器发送用户写事务命令和主写入完成同步消息,再控制主日志发送模块向备用日志接收模块发送预写日志,并接收备用流复制控制器在备数据库节点完成预写日志回放后返回的备预写日志写入完成同步消息;具体步骤如下:
104.s11.在主备数据库节点异步模式,主流复制控制器在主数据库节点接收到用户写事务操作后,向备用流复制控制器同步发送用户写事务命令;
105.s12.主流复制控制器控制本地写入预写日志,并在本地预写日志写入完成后,向备用流复制控制器发送主写入完成同步消息;
106.s13.主流复制控制器控制主日志发送模块向备日志接收模块发送预写日志;
107.s14.备用流复制控制器将备用日志接收模块接收的预写日志发送到日志回放模块进行回放,并在日志回放完成后,向主流复制控制器发送备预写日志写入完成同步消息;
108.s2.当出现异步模式的主数据库节点崩溃,备用流复制控制器检测备用数据库节点状态,若存在主预写日志写入完成同步消息,但无备预写日志写入完成同步消息时,备用流复制控制器控制备用数据库节点执行接收到的用户写事务操作,实现和主数据库数据保持一致;具体步骤如下:
109.s21.在主备数据库节点异步模式,备用流复制控制器判断是否出现主数据库节点崩溃;
110.若是,进入步骤s22;
111.若否,返回步骤s21;
112.s22.备用流复制控制器检查与主流复制控制器的同步写事务操作记录;
113.s23.当存在主预写日志写入完成同步消息,但无对应的备预写日志写入完成同步消息时,备用流复制控制器执行写事务操作命令,以实现备用数据库节点数据和主数据库节点数据保持一致;
114.s3.在主备数据库节点同步模式,主流复制控制器按设定周期向各备用流复制控制器发送握手消息,并根据预设时间门限内是否接收到握手消息答复判断对应备用数据库节点崩溃与否;具体步骤如下:
115.s31.在主备数据库节点同步模式,主流复制控制器按照设定周期向所有备用流复制控制器发送握手消息;
116.s32.主流复制控制器判断是否存在备用流复制控制器超过预设时间门限未答复握手消息;
117.若是,进入步骤s33;
118.若否,返回步骤s31;
119.s33.主流复制控制器向运维管理平台发出告警,提示出现对应备用流复制控制器所在备用数据库节点崩溃的异常;
120.s4.当出现同步模式的备用数据库节点均崩溃,根据主数据库节点空闲与否判断更改主备数据库节点模式或者构造备用日志接收模块返回给主日志发送模块的确认消息;具体步骤如下:
121.s41.当出现同步模式的备用流复制控制器均超过预设时间门限未答复握手消息,则判定所有备用数据库节点均崩溃;
122.s42.主流复制控制器判断主数据库节点是否存在正在进行的写事务操作;
123.若否,进入步骤s43;
124.若是,进入步骤s45;
125.s43.主流复制控制器将主数据库节点模式更改为异步模式;
126.s44.主流复制控制器判断是否有备用数据库节点从崩溃状态恢复;
127.若是,主流复制控制器将主数据库节点模式恢复为同步模式,返回步骤s31;
128.若否,返回步骤s44;
129.s45.主流复制控制器根据当前进行状态停止主数据库节点的主日志发送模块向备用日志发送模块发送预写日志的操作,并构造备用日志接收模块返回给主日志发送模块日志回放完成通知,返回步骤s43。
130.在上述实施例2中,如图3所示,步骤s11中,在主备数据库节点异步模式,主数据库节点的postgres模块接收到用户写事务操作后,通知主流复制控制器同步向备用流复制控制器发送用户写事务命令;
131.步骤s12中,在向备用流复制控制器发送主写入完成同步消息后,主流复制控制器通过postgres模块向用户返回预写日志在主数据库节点完成通知;
132.步骤s14中,备用流复制控制器向主流复制控制器发送备预写日志写入完成同步消息后,通过备用日志接收模块经主日志接收模块向主流复制控制器返回日志回放完成通知。
133.实施例3:
134.如图4所示,本发明提供一种postgresql数据库流复制异常处理装置,包括:
135.异步模式消息处理单元1,用于在主备数据库节点异步模式,主流复制控制器在控制写入预写日志前后,分别向备用流复制控制器发送用户写事务命令和主写入完成同步消息,再控制主日志发送模块向备用日志接收模块发送预写日志,并接收备用流复制控制器在备数据库节点完成预写日志回放后返回的备预写日志写入完成同步消息;异步模式消息处理单元1包括:
136.写事务消息发送子单元1.1,用于在主备数据库节点异步模式,主流复制控制器在主数据库节点接收到用户写事务操作后,向备用流复制控制器同步发送用户写事务命令;
137.写入完成同步消息发送子单元1.2,用于主流复制控制器控制本地写入预写日志,并在本地预写日志写入完成后,向备用流复制控制器发送主写入完成同步消息;
138.预写日志下发子单元1.3,用于主流复制控制器控制主日志发送模块向备日志接收模块发送预写日志;
139.备写入完成同步消息发送子单元1.4,用于备用流复制控制器将备用日志接收模块接收的预写日志发送到日志回放模块进行回放,并在日志回放完成后,向主流复制控制器发送备预写日志写入完成同步消息;
140.异步模式异常处理单元2,用于当出现异步模式的主数据库节点崩溃,备用流复制控制器检测备用数据库节点状态,若存在主预写日志写入完成同步消息,但无备预写日志写入完成同步消息时,备用流复制控制器控制备用数据库节点执行写事务操作,同步主备数据库节点数据;异步模式异常处理单元2包括:
141.异步模式主数据库节点崩溃判断子单元2.1,用于在主备数据库节点异步模式,备用流复制控制器判断是否出现主数据库节点崩溃;
142.同步写事务操作记录检查子单元2.2,用于出现主数据库节点崩溃时,备用流复制控制器检查与主流复制控制器的同步写事务操作记录;
143.数据同步子单元2.3,用于当存在主预写日志写入完成同步消息,但无对应的备预写日志写入完成同步消息时,备用流复制控制器执行写事务操作命令,以实现备用数据库节点数据和主数据库节点数据保持一致;
144.同步模式消息处理单元3,用于在主备数据库节点同步模式,主流复制控制器按设定周期向各备用流复制控制器发送握手消息,并根据预设时间门限内是否接收到握手消息答复判断对应备用数据库节点崩溃与否;同步模式消息处理单元3包括:
145.握手消息发送子单元3.1,用于在主备数据库节点同步模式,主流复制控制器按照设定周期向所有备用流复制控制器发送握手消息;
146.握手消息答复判断子单元3.2,用于主流复制控制器判断是否存在备用流复制控制器超过预设时间门限未答复握手消息;
147.同步模式异常警告子单元3.3,用于存在备用流复制控制器超过预设时间门限未答复握手消息时,主流复制控制器向运维管理平台发出告警,提示出现对应备用流复制控制器所在备用数据库节点崩溃的异常;
148.同步模式异常处理单元4,用于当出现同步模式的备用数据库节点均崩溃,根据主数据库节点空闲与否判断更改主备数据库节点模式或者构造备用日志接收模块返回给主日志发送模块的确认消息;同步模式异常处理单元4包括:
149.备数据库全崩溃判定子单元4.1,用于当出现同步模式的备用流复制控制器均超过预设时间门限未答复握手消息,则判定所有备用数据库节点均崩溃;
150.主数据库节点空闲判断子单元4.2,主流复制控制器判断主数据库节点是否存在正在进行的写事务操作;
151.模式更改子单元4.3,用于主数据库节点不存在正在进行的写事务操作时,主流复制控制器将主数据库节点模式更改为异步模式;
152.备用数据库节点恢复判断子单元4.4,用于主流复制控制器判断是否有备用数据库节点从崩溃状态恢复;
153.模式恢复子单元4.5,用于当有备用数据库节点从崩溃状态恢复时,主流复制控制器将主数据库节点模式恢复为同步模式;
154.返回消息构造子单元4.6,用于主数据库节点存在正在进行的写事务操作时,主流复制控制器根据当前进行状态停止主数据库节点的主日志发送模块向备用日志发送模块发送预写日志的操作,并构造备用日志接收模块返回给主日志发送模块日志回放完成通知;
155.流复制控制器配置单元5,用于在主数据库节点配置主流复制控制器,在备用数据库节点配置备用流复制控制器,并设置各流复制控制器获取所在数据库节点的配置信息;
156.当前工作模式判断单元6,用于根据流复制控制器获取的数据库节点的配置信息判断当前工作模式。
157.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献