Open ma6174 opened 9 years ago
数据库采用一个master两个slave方式部署,分别设置priority为3,2,1,当master数据库受到毁灭性的破坏(比如文件误删,系统挂掉)之后,master已经完全不可用,此时两个slave会进行选举,priority为2的slave会被选为master。此时数据库处在一个危险状态,如果再有任何一个数据库挂掉那么整个集群将变只读。
如何修复?要分几种情况:
数据库当发生重新选举的时候,会导致数据库短时无master而不能正常提供服务。根据经验,在集群中增加一个节点是安全的,不会触发重新选举。但是删除节点会导致重新选举。不管是添加还是删除节点,都会或多或少的导致数据库出现慢请求。还有一个问题是当需要移除一个节点的时候,最好先将该节点停掉再移除,因为测试发现不停机直接移除导致数据库出现不可用和慢请求的个数远比停机操作多。
从上面的分析看,网上有人为了节省,只设置了一个master和一个slave,再加一个选举节点,当某个非选举节点挂掉之后有很大可能性是无法恢复的。所以集群中至少应该设置3个数据节点。
数据库采用一个master两个slave方式部署,分别设置priority为3,2,1,当master数据库受到毁灭性的破坏(比如文件误删,系统挂掉)之后,master已经完全不可用,此时两个slave会进行选举,priority为2的slave会被选为master。此时数据库处在一个危险状态,如果再有任何一个数据库挂掉那么整个集群将变只读。
如何修复?要分几种情况:
数据库当发生重新选举的时候,会导致数据库短时无master而不能正常提供服务。根据经验,在集群中增加一个节点是安全的,不会触发重新选举。但是删除节点会导致重新选举。不管是添加还是删除节点,都会或多或少的导致数据库出现慢请求。还有一个问题是当需要移除一个节点的时候,最好先将该节点停掉再移除,因为测试发现不停机直接移除导致数据库出现不可用和慢请求的个数远比停机操作多。
从上面的分析看,网上有人为了节省,只设置了一个master和一个slave,再加一个选举节点,当某个非选举节点挂掉之后有很大可能性是无法恢复的。所以集群中至少应该设置3个数据节点。