本发明属于数据库领域,尤其是涉及一种基于现有网络设备的主备倒换判决方法。
背景技术:
1、在数据库主备集群中,当主节点故障时,高可用组件会根据判决算法从可用备节点中选出一台作为新的主节点提供业务。但是在只有一主一备的部署场景下,主节点并未发生故障,如果用于探测节点可用性的链路断链,高可用组件会认为原主节点发生故障而将备节点升主,这时集群中就出现了两个主节点,即出现脑裂现象。
技术实现思路
1、有鉴于此,本发明旨在提出一种基于现有网络设备的主备倒换判决方法,不增加额外服务器的情况下能够实现主备倒换。
2、为达到上述目的,本发明的技术方案是这样实现的:
3、一种基于现有网络设备的主备倒换判决方法,包括以下步骤:
4、s1、节点通过业务口网卡向dhcp服务器发送dhcp request请求消息;
5、s2、dhcp服务器收到dhcp request请求消息后进行判定,并将判定结果发送给节点;
6、s3、在步骤s2中,若节点收到dhcp ack消息,则高可用组件将vip绑定到节点业务口网卡,并将数据库实例提升成主机;
7、s4、在步骤s2中,若节点收到dhcp nack消息,则高可用组件将数据库实例设置成备机;
8、若绑定vip的网口发生网络故障,则按照故障处理策略进行主备倒换。
9、进一步的,在步骤s1中,在请求报文中绑定节点业务口mac地址和业务vip,租期时长等于ttl;
10、节点每隔一个loop_time发送一次请求消息。
11、进一步的,在步骤s2中,如果vip未被占用或正在被发送请求的节点占用,则让步骤s1中发出请求的节点继续使用当前vip,并回复一个dhcp ack消息;如果vip已被其他节点占用,则dhcp服务器向步骤s1中发出请求的节点回复dhcp nack否认消息。
12、进一步的,在步骤s3中,对于已是主机状态的节点,只需维持节点的主机状态,此时节点通过vip对外提供读写服务;
13、在步骤s4中,如果此前是主机,高可用还需要将vip从业务口网卡上解绑,并重启数据库实例。
14、进一步的,若绑定vip的网口发生网络故障,主节点在未收到dhcp ack的时间超过ttl后,高可用组件认为节点出现故障,故障处理策略包括:将vip从业务口网卡上解绑,并重启数据库实例,将该节点降级成备机。
15、进一步的,若主节点在未收到dhcp ack的时间超过ttl后,高可用组件认为节点出现故障,故障处理策略包括:将vip从业务口网卡上解绑,并重启数据库实例,将该节点降级成备机。
16、进一步的,dhcp在租期内未收到主节点发来的dhcp request请求,故障处理策略包括:dhcp服务器取消vip和主节点业务口mac的绑定,将vip变成可分配状态。
17、进一步的,dhcp服务器收到备节点发来的dhcp request消息,因此时vip变成可分配状态,向备节点回复一个dhcp ack消息,同时将vip和备节点的和业务口绑定,重置租期。
18、进一步的,备节点收到dhcp ack消息,高可用组件将vip绑定到业务口网卡,并将数据库实例提升成主机,此后该节点作为主机提供数据库服务。
19、进一步的,原主节点收到dhcp服务器回复的dhcp nack消息,将数据库实例设置成备机状态。
20、相对于现有技术,本发明所述的一种基于现有网络设备的主备倒换判决方法具有以下有益效果:
21、(1)本发明所述的一种基于现有网络设备的主备倒换判决方法,能够避免出现主备倒换时的脑裂现象;
22、(2)本发明所述的一种基于现有网络设备的主备倒换判决方法,通过dhcp服务器对vip分配请求的排他性,保证集群中只有一个实例能够拿到vip对外提供服务,避免双主的出现;
23、(3)本发明所述的一种基于现有网络设备的主备倒换判决方法,利用dhcp租期属性,租约到期后节点自动放弃vip,来保证网络故障时主实例自动降级;
24、(4)本发明所述的一种基于现有网络设备的主备倒换判决方法,通过现有网络设备进行判决,不需要增加额的外服务器。
1.一种基于现有网络设备的主备倒换判决方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于现有网络设备的主备倒换判决方法,其特征在于,在步骤s1中,在请求报文中绑定节点业务口mac地址和业务vip,租期时长等于ttl;
3.根据权利要求1所述的一种基于现有网络设备的主备倒换判决方法,其特征在于,在步骤s2中,如果vip未被占用或正在被发送请求的节点占用,则让步骤s1中发出请求的节点继续使用当前vip,并回复一个dhcp ack消息;如果vip已被其他节点占用,则dhcp服务器向步骤s1中发出请求的节点回复dhcp nack否认消息。
4.根据权利要求1所述的一种基于现有网络设备的主备倒换判决方法,其特征在于,在步骤s3中,对于已是主机状态的节点,只需维持节点的主机状态,此时节点通过vip对外提供读写服务;
5.根据权利要求1所述的一种基于现有网络设备的主备倒换判决方法,其特征在于,若绑定vip的网口发生网络故障,主节点在未收到dhcp ack的时间超过ttl后,高可用组件认为节点出现故障,故障处理策略包括:将vip从业务口网卡上解绑,并重启数据库实例,将该节点降级成备机。
6.根据权利要求1所述的一种基于现有网络设备的主备倒换判决方法,其特征在于,若主节点在未收到dhcp ack的时间超过ttl后,高可用组件认为节点出现故障,故障处理策略包括:将vip从业务口网卡上解绑,并重启数据库实例,将该节点降级成备机。
7.根据权利要求1所述的一种基于现有网络设备的主备倒换判决方法,其特征在于:dhcp在租期内未收到主节点发来的dhcp request请求,故障处理策略包括:dhcp服务器取消vip和主节点业务口mac的绑定,将vip变成可分配状态。
8.根据权利要求7所述的一种基于现有网络设备的主备倒换判决方法,其特征在于:dhcp服务器收到备节点发来的dhcp request消息,因此时vip变成可分配状态,向备节点回复一个dhcp ack消息,同时将vip和备节点的和业务口绑定,重置租期。
9.根据权利要求8所述的一种基于现有网络设备的主备倒换判决方法,其特征在于:备节点收到dhcp ack消息,高可用组件将vip绑定到业务口网卡,并将数据库实例提升成主机,此后该节点作为主机提供数据库服务。
10.根据权利要求9所述的一种基于现有网络设备的主备倒换判决方法,其特征在于:原主节点收到dhcp服务器回复的dhcp nack消息,将数据库实例设置成备机状态。